hacktricks/src/pentesting-web/domain-subdomain-takeover.md

82 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ドメイン/サブドメインのテイクオーバー
{{#include ../banners/hacktricks-training.md}}
## ドメインテイクオーバー
もし、**スコープ内のサービスによって使用されている**ドメインdomain.tldを発見し、**会社**がその**所有権**を**失っている**場合、あなたはそれを**登録**し(十分に安価であれば)、会社に知らせることができます。このドメインが**GET**パラメータや**Referer**ヘッダーを介してセッションクッキーのような**機密情報**を受信している場合、これは確実に**脆弱性**です。
### サブドメインテイクオーバー
会社のサブドメインが**登録されていない名前の第三者サービス**を指している場合、あなたがこの**第三者サービス**で**アカウント**を**作成**し、使用中の**名前**を**登録**できれば、サブドメインテイクオーバーを実行できます。
可能なテイクオーバーをチェックするための辞書を持ついくつかのツールがあります:
- [https://github.com/EdOverflow/can-i-take-over-xyz](https://github.com/EdOverflow/can-i-take-over-xyz)
- [https://github.com/blacklanternsecurity/bbot](https://github.com/blacklanternsecurity/bbot)
- [https://github.com/punk-security/dnsReaper](https://github.com/punk-security/dnsReaper)
- [https://github.com/haccer/subjack](https://github.com/haccer/subjack)
- [https://github.com/anshumanbh/tko-sub](https://github.com/anshumanbh/tko-subs)
- [https://github.com/ArifulProtik/sub-domain-takeover](https://github.com/ArifulProtik/sub-domain-takeover)
- [https://github.com/SaadAhmedx/Subdomain-Takeover](https://github.com/SaadAhmedx/Subdomain-Takeover)
- [https://github.com/Ice3man543/SubOver](https://github.com/Ice3man543/SubOver)
- [https://github.com/antichown/subdomain-takeover](https://github.com/antichown/subdomain-takeover)
- [https://github.com/musana/mx-takeover](https://github.com/musana/mx-takeover)
- [https://github.com/PentestPad/subzy](https://github.com/PentestPad/subzy)
- [https://github.com/Stratus-Security/Subdominator](https://github.com/Stratus-Security/Subdominator)
- [https://github.com/NImaism/takeit](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を介して第三者サービス**に指す場合、例えばG**ithubのサブドメイン**`sohomdatta1.github.io`)のように、攻撃者は**自分自身の第三者ページ**この場合はGihub上を**作成**し、`something.testing.com`がそこを指していると言うことができます。なぜなら、**CNAMEワイルドカード**により、攻撃者は**被害者のドメインに対して任意のサブドメインを生成し、自分のページに指すことができる**からです。
この脆弱性の例は、CTFのレポートで見つけることができます[https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api)
## サブドメインテイクオーバーの悪用
サブドメインテイクオーバーは、インターネット上の特定のドメインに対するDNSスプーフィングであり、攻撃者がドメインのAレコードを設定し、ブラウザが攻撃者のサーバーからのコンテンツを表示することを可能にします。この**透明性**は、ブラウザがフィッシングに対してドメインを脆弱にします。攻撃者はこの目的のために[_typosquatting_](https://en.wikipedia.org/wiki/Typosquatting)や[_Doppelganger domains_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger)を使用することがあります。特に脆弱なのは、フィッシングメールのURLが正当であるように見えるドメインであり、ドメインの固有の信頼性により、ユーザーを欺き、スパムフィルターを回避します。
詳細についてはこの[投稿を確認してください](https://0xpatrik.com/subdomain-takeover/)
### **SSL証明書**
SSL証明書は、攻撃者が[_Let's Encrypt_](https://letsencrypt.org/)のようなサービスを介して生成した場合、これらの偽のドメインの正当性を高め、フィッシング攻撃をより説得力のあるものにします。
### **クッキーセキュリティとブラウザの透明性**
ブラウザの透明性は、[同一生成元ポリシー](https://en.wikipedia.org/wiki/Same-origin_policy)のようなポリシーによって管理されるクッキーセキュリティにも及びます。クッキーは、セッションを管理し、ログイントークンを保存するために使用されることが多く、サブドメインテイクオーバーを通じて悪用される可能性があります。攻撃者は、ユーザーを侵害されたサブドメインに誘導することで**セッションクッキーを収集**し、ユーザーデータとプライバシーを危険にさらすことができます。
### **メールとサブドメインテイクオーバー**
サブドメインテイクオーバーのもう一つの側面は、メールサービスに関するものです。攻撃者は**MXレコード**を操作して、正当なサブドメインからメールを受信または送信し、フィッシング攻撃の効果を高めることができます。
### **高次のリスク**
さらなるリスクには**NSレコードのテイクオーバー**が含まれます。攻撃者がドメインの1つのNSレコードを制御すると、彼らはトラフィックの一部を自分の制御下にあるサーバーに向けることができます。このリスクは、攻撃者がDNSレコードのTTL生存時間を高く設定する場合に増幅され、攻撃の持続時間を延ばします。
### CNAMEレコードの脆弱性
攻撃者は、もはや使用されていないか、廃止された外部サービスを指す未請求のCNAMEレコードを悪用する可能性があります。これにより、信頼されたドメインの下にページを作成し、フィッシングやマルウェアの配布をさらに促進することができます。
### **緩和戦略**
緩和戦略には以下が含まれます:
1. **脆弱なDNSレコードの削除** - サブドメインがもはや必要ない場合に効果的です。
2. **ドメイン名の請求** - 関連するクラウドプロバイダーでリソースを登録するか、期限切れのドメインを再購入します。
3. **脆弱性の定期的な監視** - [aquatone](https://github.com/michenriksen/aquatone)のようなツールは、脆弱なドメインを特定するのに役立ちます。組織はまた、DNSレコードの作成がリソースの作成の最終ステップであり、リソースの破棄の最初のステップであることを確認するために、インフラ管理プロセスを見直すべきです。
クラウドプロバイダーにとって、ドメイン所有権の確認はサブドメインテイクオーバーを防ぐために重要です。例えば、[GitLab](https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/)のように、この問題を認識し、ドメイン検証メカニズムを実装しているプロバイダーもあります。
## 参考文献
- [https://0xpatrik.com/subdomain-takeover/](https://0xpatrik.com/subdomain-takeover/)
- [https://www.stratussecurity.com/post/subdomain-takeover-guide](https://www.stratussecurity.com/post/subdomain-takeover-guide)
{{#include ../banners/hacktricks-training.md}}