
Just-Metadataは、IPアドレスに関するメタデータを収集・分析するツールです。大規模なデータセット内のシステム間の関係性を見つけ出そうと試みます。
Just-Metadataは、大量のIPアドレスに関するインテリジェンス情報を受動的に収集し、通常は見えない関係性を推測するために使用できるツールです。Just-Metadataには「gather」モジュールがあり、これを使用してフレームワークに読み込まれたIPに関するメタデータをインターネット上の複数のリソースから収集します。また、「analysis」モジュールもあり、読み込まれたデータを分析し、読み込まれたシステム間の潜在的な関係性を特定するさまざまな操作を実行します。
Just-Metadataを使用すると、読み込まれたIPアドレスがある上位「X」個の州、都市、タイムゾーンなどをすばやく見つけることができます。国別にIPアドレスを検索することもできます。すべてのIPを検索して、VirusTotalによってコールバックに使用されていると特定されたものを見つけることもできます。読み込まれたIPの中にAnimus Projectによって攻撃の一部として文書化されたものがあるかどうかを確認したい場合も、Just-Metadataで可能です。
さらに、利用可能なデータに基づいて、読み込まれたIP間の他の関係性を見つけるための新しい分析モジュールを簡単に作成できます。新しい情報収集モジュールも同様に簡単に追加できます!
理想的には、セットアップスクリプトを実行するだけで必要なものがすべてインストールされるはずです。
Shodan情報収集モジュールを使用するには、Shodan APIキーが必要です。これは約9ドルかかりますが、それだけの価値はあります:)。
現時点では、Just-MetadataはIPアドレスを1行に1つずつ記述した単一のテキストファイルを読み取るように設計されています。このファイルは任意のソース(C2コールバックIP、Webサーバーログなど)から作成してください。ファイルを用意したら、以下のようにJust-Metadataを起動します。
./Just-Metadata.py
help - フレームワーク内で使用可能なコマンド一覧とその説明を表示するには、"help"コマンドを入力します。
load <filename> - loadコマンドは追加のパラメータとして、Just-MetadataにIPアドレスを読み込ませたいファイル名を指定します。このコマンドはファイルを開き、ファイル内のすべてのIPをフレームワークに読み込みます。
例: load ipaddresses.txt
save - saveコマンドは、Just-Metadataの現在の作業状態を保存するために使用します。これは、IPに関する情報を収集した後、その状態をディスクに保存して後で作業を再開したい場合など、複数のケースで役立ちます。"save"と入力するだけで、Just-Metadataは状態をディスクに保存し、保存された状態のファイル名を表示します。
import <statefile> - importコマンドは、以前に保存したJust-Metadataの状態をフレームワークに読み込むために使用します。保存されていたすべてのIPと、それらのIPアドレスについて収集されたすべての情報が読み込まれます。このコマンドは追加のパラメータとして、読み込みたい状態ファイルの名前を指定します。
例: import goodfile.state
list <module type> - listコマンドは、Just-Metadataに読み込まれているモジュールの種類を一覧表示するために使用します。このコマンドは追加のパラメータとして、"analysis"または"gather"を指定します。Just-Metadataは、ユーザーが指定した種類のモジュールをすべて表示します。
例: list analysis
例: list gather
gather <gather module name> - gatherコマンドは、指定されたモジュールを実行し、そのソースから情報を収集するようJust-Metadataに指示します。これを使用して、地理情報、VirusTotal、whoisなどを収集できます。すべてモジュールに依存します。収集されたデータはフレームワークのメモリ内に保存され、"save"コマンドでディスクに保存することもできます。
例: gather geoinfo
例: gather virustotal
analyze <analysis module name> - analyzeコマンドは、フレームワークに読み込まれたデータに対して分析モジュールを実行するようJust-Metadataに指示します。これらのモジュールを使用すると、同じSSH鍵やSSL公開鍵証明書、証明書チェーンを共有するIPアドレスを見つけることができます。また、悪意のある実行ファイルによる同じコールバックに使用されたIPアドレスを見つけるためにも使用できます。
ip_info <IP Address> - このコマンドは、特定のIPアドレスに関するすべての情報をダンプするために使用します。現在は、分析モジュールを実行した後に使用されます。例えば、同じSSH鍵を共有するIPアドレスを特定した後、それらのIPに関するすべての情報をダンプできます。そのIPがマルウェアに使用されたことがあるか、どこに位置するかなどがわかります。
export - exportコマンドは、現在フレームワークに読み込まれているすべてのIPアドレスについて収集されたすべての情報をCSVにダンプします。
Justin Warner (@sixdub) 氏に、開発の初期段階でフィードバックや設計アイデアを提供していただき、また相談相手として協力していただいたことに感謝します。