
PowerMetaは、特別に細工されたGoogleとBingの検索を使用して、特定のドメインに関連するさまざまなウェブサイトで公開されているファイルを検索します。その後、対象ドメインからそれらのファイルをダウンロードできます。ファイルを取得した後、関連するメタデータをPowerMetaで分析できます。メタデータでよく見られる興味深い情報としては、ユーザー名、ドメイン、ソフトウェアタイトル、コンピューター名などがあります。
PowerMetaは、特別に作成されたGoogleおよびBing検索を使用して、特定のドメインに対してさまざまなウェブサイトで公開されているファイルを検索します。その後、ターゲットドメインからそれらのファイルをダウンロードできます。ファイルを取得した後、それらに関連するメタデータをPowerMetaで分析できます。メタデータによく見られる興味深い情報には、ユーザー名、ドメイン、ソフトウェアタイトル、コンピューター名などがあります。
多くの組織では、外部ウェブサイトに公開されたファイルが見つかることがよくあります。これらのファイルには、ユーザー名、ドメイン、ソフトウェアタイトル、コンピューター名など、攻撃者にとって有益な機密情報が含まれている場合があります。PowerMetaは、"site:targetdomain.com filetype:pdf" のような検索文字列を使用して、特定のドメイン上のファイルをBingとGoogleの両方で検索します。デフォルトでは、"pdf, docx, xlsx, doc, xls, pptx, ppt" を検索します。
PowerMetaは、Phil Harvey氏のExiftoolを使用してファイルからメタデータ情報を抽出します。このリポジトリにあるものではなく、彼のサイトから直接バイナリをダウンロードしたい場合は、こちらから入手できます:http://www.sno.phy.queensu.ca/~phil/exiftool/。実行時には、exiftool実行可能ファイルがPowerMeta.ps1と同じディレクトリにあることを確認してください。デフォルトでは、'Author' と 'Creator' フィールドのみを抽出します。これらのフィールドには通常ユーザー名が保存されています。ただし、-ExtractAllToCsv フラグを指定すると、ファイルのすべてのメタデータを抽出できます。
PowerShell バージョン 3.0 以降
現在、Googleのアンチボット対策は非常に厳しくなっており、結果を直接スクレイピングすることはほぼ不可能なため、PowerMeta.ps1を使用しても結果が混在する可能性があります。これを回避する最も簡単な方法は、GoogleのAPIを使用することです。ここに、「PowerMeta-API.ps1」という新しいスクリプトを追加しました。これにより、それが可能になります。
以下に手順を説明します。
手順1: Google Cloud Projectを作成する
手順2: Custom Search APIを有効にする
手順3: APIキーを作成する
手順4: カスタム検索エンジンを作成する
次のように実行します:
.\PowerMeta-API.ps1 -TargetDomain "targetdomain.com" -ApiKey "<API key>" -SearchEngineId "<search engine ID>" -ExtractAllToCsv allmetadata.csv
C:\> powershell.exe -exec bypass
PS C:\> Import-Module PowerMeta.ps1
このコマンドは、'targetdomain.com' ドメイン上のファイル拡張子が pdf、docx、xlsx、doc、xls、pptx、または pptx で終わるファイルについて、GoogleおよびBing検索を開始します。このリストの作成が完了すると、ターゲットドメインからファイルをダウンロードするかどうかをユーザーに確認します。ファイルのダウンロード後、それらのファイルからメタデータを抽出するかどうかを再度確認します。
PS C:\> Invoke-PowerMeta -TargetDomain targetdomain.com
このコマンドは、'targetdomain.com' ドメイン上のファイル拡張子が pdf または xml で終わるファイルについて、GoogleおよびBing検索を開始します。その後、ターゲットドメインから自動的にダウンロードし、メタデータを抽出します。
PS C:\> Invoke-PowerMeta -TargetDomain targetdomain.com -FileTypes "pdf, xml" -Download -Extract
このコマンドは、'targetdomain.com' ドメイン上のファイル拡張子が pdf、docx、xlsx、doc、xls、pptx、または pptx で終わるファイルについて、GoogleおよびBing検索を開始し、見つかったファイルのリンクを "target-domain-links.txt" というファイルにディスクに書き込みます。
PS C:\> Invoke-PowerMeta -TargetDomain targetdomain.com -TargetFileList target-domain-links.txt
このコマンドは、'targetdomain.com' ドメイン上のファイル拡張子が pdf、docx、xlsx、doc、xls、pptx、または pptx で終わるファイルについて、GoogleおよびBing検索を開始しますが、最初の2ページのみを検索します。すべてのメタデータ(デフォルトフィールドだけでなく)は、all-target-metadata.csv というCSVに保存されます。
PS C:\> Invoke-PowerMeta -TargetDomain targetdomain.com -MaxSearchPages 2 -ExtractAllToCsv all-target-metadata.csv
このコマンドは、"\2017-03-031-144953" フォルダ内のすべてのファイルからすべてのメタデータを抽出し、それを all-target-metadata.csv というCSVに保存します。
PS C:\> ExtractMetadata -OutputDir .\2017-03-031-144953\ -ExtractAllToCsv all-target-metadata.csv
TargetDomain - ファイルを検索するターゲットドメイン。
FileTypes - 検索するファイル拡張子のカンマ区切りリスト。デフォルトではPowerMetaは "pdf, docx, xlsx, doc, xls, pptx, ppt" を検索します。
OutputList - ウェブ検索で見つかったリンクのリストを出力するファイル。
OutputDir - ダウンロードしたすべてのファイルを保存するディレクトリ。
TargetFileList - ダウンロードするファイルリンクのリスト。
Download - 対話的なプロンプトの代わりに、このフラグを渡すと見つかったファイルを自動ダウンロードします。
Extract - 対話的なプロンプトの代わりに、このフラグを渡すと見つかったファイルからメタデータを自動抽出します。
ExtractAllToCsv - すべてのメタデータ(デフォルトフィールドだけでなく)を、このフラグで指定されたCSVに抽出します。
UserAgent - PowerMetaが使用するデフォルトのUser Agentを変更します。
MaxSearchPages - 各検索エンジンで検索する最大ページ数。