ドメイン/サブドメインのテイクオーバー
Reading time: 11 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
ドメインテイクオーバー
もし、スコープ内のサービスによって使用されているドメイン(domain.tld)を発見し、会社がその所有権を失っている場合、登録を試みることができます(十分に安価であれば)そして会社に知らせることができます。このドメインがGETパラメータやRefererヘッダーを介してセッションクッキーのような機密情報を受信している場合、これは確実に脆弱性です。
サブドメインテイクオーバー
会社のサブドメインが登録されていない名前の第三者サービスを指している場合、あなたがこの第三者サービスでアカウントを作成し、使用中の名前を登録できれば、サブドメインテイクオーバーを実行できます。
可能なテイクオーバーを確認するための辞書を持つツールがいくつかあります:
- https://github.com/EdOverflow/can-i-take-over-xyz
- https://github.com/blacklanternsecurity/bbot
- https://github.com/punk-security/dnsReaper
- https://github.com/haccer/subjack
- https://github.com/anshumanbh/tko-sub
- https://github.com/ArifulProtik/sub-domain-takeover
- https://github.com/SaadAhmedx/Subdomain-Takeover
- https://github.com/Ice3man543/SubOver
- https://github.com/antichown/subdomain-takeover
- https://github.com/musana/mx-takeover
- https://github.com/PentestPad/subzy
- https://github.com/Stratus-Security/Subdominator
- https://github.com/NImaism/takeit
DNSワイルドカードによるサブドメインテイクオーバー生成
ドメインでDNSワイルドカードが使用されている場合、そのドメインの異なるアドレスが明示的に指定されていないすべての要求されたサブドメインは同じ情報に解決されます。これはA IPアドレスやCNAMEなどです。
例えば、*.testing.com
が1.1.1.1
にワイルドカードされている場合、not-existent.testing.com
は1.1.1.1
を指します。
しかし、IPアドレスを指す代わりに、システム管理者がCNAMEを介して第三者サービスに指す場合、例えばGithubのサブドメイン(sohomdatta1.github.io
)のように、攻撃者は自分自身の第三者ページ(この場合はGihub)を作成し、something.testing.com
がそこを指していると言うことができます。なぜなら、CNAMEワイルドカードが攻撃者に被害者のドメインに対して任意のサブドメインを生成することを許可するからです。
この脆弱性の例はCTFのレポートで見つけることができます:https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api
サブドメインテイクオーバーの悪用
サブドメインテイクオーバーは、特定のドメインに対するDNSスプーフィングであり、攻撃者がドメインのAレコードを設定できるようにし、ブラウザが攻撃者のサーバーからのコンテンツを表示することを可能にします。この透明性はブラウザにおいてドメインをフィッシングに対して脆弱にします。攻撃者はこの目的のためにtyposquattingやDoppelganger domainsを使用することがあります。特に脆弱なのは、フィッシングメールのURLが正当であるように見えるドメインであり、ドメインの固有の信頼性によりユーザーを欺き、スパムフィルターを回避します。
詳細についてはこの投稿を確認してください
SSL証明書
SSL証明書は、Let's Encryptのようなサービスを介して攻撃者によって生成される場合、これらの偽のドメインの正当性を高め、フィッシング攻撃をより説得力のあるものにします。
クッキーセキュリティとブラウザの透明性
ブラウザの透明性は、同一生成元ポリシーのようなポリシーによって管理されるクッキーセキュリティにも及びます。クッキーは、セッションを管理し、ログイントークンを保存するために使用されることが多く、サブドメインテイクオーバーを通じて悪用される可能性があります。攻撃者は侵害されたサブドメインにユーザーを誘導することによってセッションクッキーを収集し、ユーザーデータとプライバシーを危険にさらすことができます。
CORSバイパス
すべてのサブドメインがメインドメインまたは他のサブドメインからCORSリソースにアクセスできる可能性があります。これを攻撃者が悪用して機密情報にアクセスすることができます。
CSRF - Same-Siteクッキーのバイパス
サブドメインが、クッキーのSame-Site
属性によって防止されていたドメインまたは他のサブドメインにクッキーを送信することが許可されている可能性があります。ただし、適切に実装されている場合、anti-CSRFトークンはこの攻撃を防ぐことができます。
OAuthトークンのリダイレクト
侵害されたサブドメインがOAuthフローのredirect_uri
URLで使用されることが許可されている可能性があります。これを攻撃者が悪用してOAuthトークンを盗むことができます。
CSPバイパス
侵害されたサブドメイン(またはすべてのサブドメイン)が、例えばCSPのscript-src
で使用されることが許可されている可能性があります。これを攻撃者が悪用して悪意のあるスクリプトを注入し、潜在的なXSS脆弱性を悪用することができます。
メールとサブドメインテイクオーバー
サブドメインテイクオーバーのもう一つの側面は、メールサービスに関するものです。攻撃者はMXレコードを操作して、正当なサブドメインからメールを受信または送信し、フィッシング攻撃の効果を高めることができます。
高次のリスク
さらなるリスクにはNSレコードのテイクオーバーが含まれます。攻撃者がドメインの1つのNSレコードを制御すると、彼らはトラフィックの一部を自分の制御下にあるサーバーに向けることができます。このリスクは、攻撃者がDNSレコードのTTL(Time to Live)を高く設定することで増幅され、攻撃の持続時間が延長されます。
CNAMEレコードの脆弱性
攻撃者は、もはや使用されていないか、廃止された外部サービスを指す未請求のCNAMEレコードを悪用する可能性があります。これにより、彼らは信頼されたドメインの下にページを作成し、フィッシングやマルウェアの配布をさらに促進することができます。
緩和戦略
緩和戦略には以下が含まれます:
- 脆弱なDNSレコードの削除 - サブドメインがもはや必要ない場合に効果的です。
- ドメイン名の請求 - 関連するクラウドプロバイダーでリソースを登録するか、期限切れのドメインを再購入します。
- 脆弱性の定期的な監視 - aquatoneのようなツールは、脆弱なドメインを特定するのに役立ちます。組織はまた、インフラ管理プロセスを見直し、DNSレコードの作成がリソース作成の最終ステップであり、リソース破棄の最初のステップであることを確認する必要があります。
クラウドプロバイダーにとって、ドメイン所有権の確認はサブドメインテイクオーバーを防ぐために重要です。例えば、GitLabのように、この問題を認識し、ドメイン確認メカニズムを実装しているプロバイダーもあります。
参考文献
- https://0xpatrik.com/subdomain-takeover/
- https://www.stratussecurity.com/post/subdomain-takeover-guide
- https://www.hackerone.com/blog/guide-subdomain-takeovers-20
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。