序文#
通常、侵入テストの情報収集フェーズでは、対象企業のルートドメインを収集し、登録済みのドメインは ICP 登録番号の逆引きや Whois データのクエリを使用して取得できますが、未登録のドメインにはいくつかの特殊な収集方法があります。
対象のルートドメイン資産を収集するために、HTTP の特徴を使用する方法があります。FOFA や Shodan などのセキュリティ関連の検索エンジンを使用して、対象企業に関連するルートドメインを発見することができます。
注意点として、これらの方法で収集されたルートドメイン資産がテスト対象に属しているとは限らないことに注意してください。これらの方法はオプションの拡張機能としてのみ使用されるべきです。これらの方法を使用する際には、収集された情報を慎重に扱う必要があります。
証明書#
FOFA の構文
cert.subject.org="target" && is_domain=true
デモの例
数字証明書では、発行者、サブジェクト、組織、CommonName などのフィールドが重要な役割を果たしています。
- 発行者 (Issuer): 証明書を署名および発行したエンティティを示すフィールドです。発行者フィールドには、空でない識別可能な名前 (DN) が含まれている必要があります。
- サブジェクト (Subject): サブジェクトフィールドは、サブジェクト公開鍵フィールドに関連付けられた公開鍵に関連するエンティティを示します。サブジェクト名は、サブジェクトフィールドおよび / または subjectAltName 拡張で運ばれることがあります。
- 組織 (O): 組織名は、証明書を保持する組織または会社を識別します。
- CommonName (CN): 一般名は、個人の場合は個人の名前、サーバー証明書の場合は通常はドメイン名です。
HTTP ヘッダー#
Content-Security-Policy-Report-Only
ヘッダーは、ウェブサイトがクロスオリジンリクエストをどのように処理するかに関する情報を提供することができますが、企業のルートドメインに関する詳細な情報を直接提供する可能性はありません。
Content-Security-Policy-Report-Only
を使用することで、対象企業に関連するルートドメインを収集することができます。
FOFA の構文
host="target.com" && header="Content-Security-Policy-Report-Only"
デモの例
同様のヘッダーには Content-Security-Policy、Set-Cookie などもあり、これらのヘッダーにも対象企業に関連するルートドメインが含まれる可能性があります。
NS サーバー#
一部の場合、企業内のドメインは企業内の人員のみがアクセスできれば十分であり、独自の DNS サーバーを使用することで実現できます。
企業内部で構築された NS サーバーに直接アクセスすることはできませんが、以前に解決レコードが存在したことを示すデータを使用して、共有 DNS サーバーの情報をクエリすることができます。
HackerTarget Find Shared DNS Serversツールを使用することで、企業の共有 DNS サーバーを検索することができます。
企業の NS サーバーをクエリする前に、ドメインの NS サーバーをクエリして、NS サーバーの IP アドレスまたはホスト名を取得する必要があります。
$ nslookup -type=ns qq.com
qq.com nameserver = ns1.qq.com.
qq.com nameserver = ns2.qq.com.
qq.com nameserver = ns4.qq.com.
qq.com nameserver = ns3.qq.com.