ODIN
ネットワークの観察、検出、調査


現在のバージョン: v2.0.0 "Huginn"
ODINは、インテリジェンス収集、資産発見、およびレポート作成を自動化するPythonツールです。最新の開発状況についてはdevブランチを確認してください。フィードバックをお待ちしています。
詳細やインストールとセットアップの手順については、GitHub Wikiを参照してください。
ODINでできること
ODINは、レッドチームが使用する基本的な偵察タスクを自動化し、ドメイン、IPアドレス、インターネット公開システムなどのネットワーク資産を発見・収集することを目的としています。ODINの主な機能はデータ管理とレポート作成です。データはデータベースに整理され、必要に応じてHTMLレポートや、データを可視化するためのNeo4jグラフデータベースに変換できます。
ODINはこれを複数のフェーズで実行します:
フェーズ1 - 資産発見
- Full Contactマーケティングデータベースなどのソースから基本組織情報を収集します。
- DNS Dumpster、Netcraft、TLS証明書をチェックして、提供されたドメインのサブドメインを発見します。
- ソケット接続とDNSレコードを介してドメインとサブドメインをIPアドレスに解決します。
- RDAP、whois、その他のデータソースから、所有権や組織データなどすべてのIPアドレスに関する情報を収集します。
- Shodanでドメインを検索し、IPアドレスを調べて、オペレーティングシステム、サービスバナー、開放ポートなどの追加データを収集します。
- ドメインとサブドメインの乗っ取りやドメインフロンティングの可能性をチェックします。
フェーズ2 - 従業員発見
- 対象組織のメールアドレスと従業員名を収集します。
- 検索エンジンとTwitter APIを介して従業員をソーシャルメディアプロフィールに関連付けます。
- 発見したメールアドレスをTroy HuntのHave I Been Pwnedでクロスチェックします。
フェーズ3 - クラウドおよびWebサービス
- 対象ドメイン配下のOfficeファイルとPDFを探し、ダウンロードしてメタデータを抽出します。
- 組織に関連するキーワードを使用してAWS S3バケットとDigital Ocean Spacesを検索します。
- 発見されたWebサービスのスクリーンショットを取得し、サービスの簡単な初期レビューを行います。
フェーズ4 - レポート作成
- すべてのデータをSQLite3データベースに保存し、データを簡単にクエリできるようにします。
- デフォルトのSQLクエリを使用してHTMLレポートを生成し、Webブラウザでデータを簡単に閲覧できるようにします。
- 発見されたすべてのエンティティ(IPアドレス、ドメイン、サブドメイン、ポート、証明書)を関係(例:RESOLVES_TO、HAS_PORT)で結びつけるNeo4jグラフデータベースを作成します。
これらすべての終了時には、データを閲覧・可視化するための複数の方法が得られます。MATCH (n) RETURN n(すべてを表示)のような単純なNeo4jクエリでも、組織の外部境界の魅力的なグラフを作成し、資産がどのようにリンクされているかを簡単に確認できます。Neo4j wikiページには、より優れたクエリ例が含まれています。