このコーナーでは、現役のペネトレーションテスト技術者が、使えるセキュリティツールを、ペンテストの現場の視点から紹介します。名称: metagoofil配布制限: フリーウェア商用版の有無: 無類似ツール: tracetcpDL URL: http://www.edge-security.com/metagoofil.php対応OS: Unix系OS、OSX、Windows分野 Googleハッキングコマンド一覧:(1) 基本項目と概要今回、紹介する「metagoofil」は、以前紹介した、「SiteDigger」とは少し毛色の違うGoogleハッキングツールである。「metagoofil」はその名の示す通り、公開されているドキュメントのメタデータを収集するものである。収集可能なドキュメントの種類は下記の通りである。・pdf … アドビシステムズのDTPソフトで作成されたドキュメントファイル。Portable Document Formatの略・doc … マイクロソフト社の「Word」で作成されたドキュメントファイル。Documentの略。・xls … マイクソフト社の「Excel」で作成されたブックファイル。eXceL Sheetの略・ppt … マイクソフト社の「Power Point」で作成されたプレゼンテーションファイル。PowerPoint Presentationの略・sdw … サンマイクロシステムズ社の「StarOffice Writer Document」で作成されたドキュメントファイル・mdb … マイクロソフトの「Access」及び、「MSQuery」によって作成されたデータベースファイル。Microsoft DataBaseの略・sdc … サンマイクロシステムズ社の「StarOffice Calc」で作成されたブックファイル。・odp … Open Officeで作成されたプレゼンテーションファイル。Opendocument Document Presentationの略・ods … Open Officeで作成されたブックファイル。Opendocument Document Spreadsheetの略また、「metagoofil」はドキュメントのメタデータだけではなく、ドキュメントファイルそのものもダウンロードし、さらに、その中にある情報から、ユーザ名やパス(ファイルパス)と思われる情報をピックアップする機能を持っている。(2) コマンドサンプルツールの使用方法に入る前に必要なライブラリと修正箇所について解説しておこう。「metagoofil」は、「libextractor」というメタデータを任意のファイルから抽出するライブラリを使用するため、「libextractor」がシステムにインストールされていない場合は、インストールする必要がある。libextractorhttp://www.gnu.org/software/libextractor/また、インストールを行っても「metagoofil」実行時に「libextractor.so.1」が存在しないというエラーメッセージが表示される場合がある。その場合は、「/usr/local/lib/libextractor.so.1」のシンボリックリンクを「/usr/lib」に作成するとよいだろう。「metagoofil」はPythonという開発言語で記述されているのでテキストエディタでソースコードを読むことができる。ソースコードの24行目付近に「extract」コマンドのパスが記述されている箇所があるのだが、ここを使用する環境に応じて書き換える必要がある。「extract」コマンドまでのパスを調べるには「whereis」コマンドを使用して調べるとよいだろう。ちなみに筆者の環境では以下のように変更した。#Win##extcommand='c:extractor\binextract.exe -l libextractor_ole2'#OSX#extcommand='/opt/local/bin/extract'#Cygwin#extcommand='/cygdrive/c/extractor/bin/extract.exe'extcommand='/usr/local/bin/extract'それでは、実際に使ってみよう。実行する際のオプションは以下の通りである。-d: domain to searchドキュメントファイルを検索するドメインを指定。-f: filetype to download (all,pdf,doc,xls,ppt,odp,ods, etc)検索するファイルタイプを指定。-l: limit of results to work with (default 100)結果の上限数を指定。-o: output file, html format.結果のレポートファイル(html)の出力ファイル名を指定。-t: target directory to download files.ドキュメントファイルをダウンロードするディレクトリ名を指定。上記を基に、●●.jpというドメインに対して(-d)「metagoofil」が検索可能なドキュメントファイルすべてを(-f)上限10の検索結果を基に(-l)●●.jp.htmlというファイル名で保存し(-o)ダウンロードファイルは●●.jp-dirという名前のディレクトリに保存する(-t)場合は、以下のように実行する。./metagoofil -d ●●.jp -f all -l 10 -o ●●.jp.html -t ●●.jp-dir実行すると以下のように順次結果が出力される。[+] Command extract found, proceeding with leeching[+] Searching in ●●.jp for: pdf[+]Total results in google: 3030[+]Limit: 10[+] Searching results: 0[ 1/10 ] http://www.●●.jp/pdf/a.pdf[ 2/10 ] http://www.●●.jp/pdf/b.pdf[ 3/10 ] http://www.●●.jp/pdf/c.pdf〜 略 〜[+] Searching in ●●.jp for: doc[+]Total results in google: 4[+]Limit: 4[+] Searching results: 0[+] Directory nttdata already exist, reusing it[ 1/4 ] http://www.●●.jp/doc/a.doc[ 2/4 ] http://www.●●.jp/doc/b.doc[ 3/4 ] http://www.●●.jp/doc/c.doc〜 略 〜Usernames found:================Microsoft ExcelXelo PDFLibrarytsujiAdobe Illustrator 10.0.3Paths found:============C:Documents and SettingsAdministratorCスクトップぜaiwebseminor上記のように発見されたファイルについては、「-t」オプションで指定したディレクトリにすべて保存される。図1:https://www.netsecurity.ne.jp/images/article/metagoofil01.jpgそして、そのファイルから発見された情報については、上記のように、「Usernames found:」でユーザ名と思われるもの、「Paths found:」でパス(ファイルパス)と思われるものが抽出され表示される。結果一覧については、「-o」オプションで指定したファイルで保存されるため、後から確認可能である。また、結果一覧はHTMLファイルで生成されるため、リンクから目的のドキュメントファイルを開くこともでき非常に便利である。図2:https://www.netsecurity.ne.jp/images/article/metagoofil02.jpg(3)使用例とTIPS、検査者の視点から「metagoofil」は、以前、紹介した「SiteDigger」から一つ掘り下げた視点での調査を行っていることがお分かりいただけただろうか。ペネトレーションの現場では、Webサービスに代表される外部のサービスを利用した情報収集は行われてきたが、「Googleハッキング」の登場により、以前よりも効率よく検索することができるようになった。今回紹介したツールは「Googleハッキング」の…【執筆:NTTデータ・セキュリティ株式会社 辻 伸弘】【関連記事】現役ペンテスト技術者が選ぶ 使えるセキュリティツール(18)「SiteDigger」https://www.netsecurity.ne.jp/3_11570.html──※ この記事は Scan購読会員向け記事をダイジェスト掲載しました購読会員登録案内 http://www.ns-research.jp/cgi-bin/ct/p.cgi?w02_ssw