12 KiB
ドメイン/サブドメインのテイクオーバー
{% hint style="success" %}
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する: HackTricks Training GCP Red Team Expert (GRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
Trickestを使用して、世界で最も高度なコミュニティツールによって駆動されるワークフローを簡単に構築し、自動化します。
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=domain-subdomain-takeover" %}
ドメインテイクオーバー
もし、スコープ内のサービスによって使用されているドメイン(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レコードを設定できるようにし、ブラウザが攻撃者のサーバーからのコンテンツを表示することを可能にします。この透明性はブラウザにおいてドメインをフィッシングに対して脆弱にします。攻撃者はこの目的のためにタイポスクワッティングやドッペルゲンガードメインを使用することがあります。特に脆弱なのは、フィッシングメールのURLが正当であるように見えるドメインであり、ユーザーを欺き、ドメインの固有の信頼性によりスパムフィルターを回避します。
詳細についてはこの投稿を確認してください
SSL証明書
SSL証明書は、Let's Encryptのようなサービスを介して攻撃者によって生成される場合、これらの偽ドメインの正当性を高め、フィッシング攻撃をより説得力のあるものにします。
クッキーセキュリティとブラウザの透明性
ブラウザの透明性は、同一オリジンポリシーのようなポリシーによって管理されるクッキーセキュリティにも及びます。クッキーは、セッションを管理し、ログイントークンを保存するために使用されることが多く、サブドメインテイクオーバーを通じて悪用される可能性があります。攻撃者は、侵害されたサブドメインにユーザーを誘導することでセッションクッキーを収集し、ユーザーデータとプライバシーを危険にさらすことができます。
メールとサブドメインテイクオーバー
サブドメインテイクオーバーのもう一つの側面は、メールサービスに関するものです。攻撃者はMXレコードを操作して、正当なサブドメインからメールを受信または送信し、フィッシング攻撃の効果を高めることができます。
高次のリスク
さらなるリスクにはNSレコードのテイクオーバーが含まれます。攻撃者がドメインの1つのNSレコードを制御すると、彼らは自分の制御下にあるサーバーにトラフィックの一部を指示する可能性があります。このリスクは、攻撃者がDNSレコードの高い**TTL(生存時間)**を設定する場合、攻撃の期間が延長されるため、さらに増大します。
CNAMEレコードの脆弱性
攻撃者は、もはや使用されていないか、廃止された外部サービスを指す未請求のCNAMEレコードを悪用する可能性があります。これにより、信頼されたドメインの下にページを作成し、フィッシングやマルウェアの配布をさらに促進することができます。
緩和戦略
緩和戦略には以下が含まれます:
- 脆弱なDNSレコードの削除 - サブドメインがもはや必要ない場合に効果的です。
- ドメイン名の請求 - 関連するクラウドプロバイダーでリソースを登録するか、期限切れのドメインを再購入します。
- 脆弱性の定期的な監視 - aquatoneのようなツールは、脆弱なドメインを特定するのに役立ちます。組織はまた、DNSレコードの作成がリソース作成の最終ステップであり、リソース破棄の最初のステップであることを確認するために、インフラ管理プロセスを見直すべきです。
クラウドプロバイダーにとって、ドメイン所有権の確認はサブドメインテイクオーバーを防ぐために重要です。一部のプロバイダー、例えばGitLabは、この問題を認識し、ドメイン確認メカニズムを実装しています。
参考文献
- https://0xpatrik.com/subdomain-takeover/
- https://www.stratussecurity.com/post/subdomain-takeover-guide
Trickestを使用して、世界で最も高度なコミュニティツールによって駆動されるワークフローを簡単に構築し、自動化します。
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=domain-subdomain-takeover" %}
{% hint style="success" %}
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する: HackTricks Training GCP Red Team Expert (GRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。