1.ドメイン/サブドメインの脆弱性
調査はsubjack、Amass、dnsreconなどで行える。
1.1. Subdomain Takeover
サブドメイン乗っ取りはサブドメインがDNSに登録されているが、対応するサービスやホスティング先が存在しない場合、攻撃者がそのホスティングを再取得してサブドメインを乗っ取れる脆弱性のこと。
一番多い例だとCNAMEレコードで指定されているドメインを攻撃者が取得することにより、対象組織のサブドメインを攻撃者が乗っ取れる。
例:
blog.example.com
が CNAMEレコードで GitHub Pages(exampleuser.github.io
)に向けられているが、GitHub 上に該当するリポジトリが削除されてる場合に発生する
上記の場合、攻撃者はexampleuserのアカウントを作成することでサブドメインを乗っ取ることができる。
考えられる悪影響は以下の通り。
- Cookieの窃取
- CORSのByPass
- セッションの乗っ取り
- フィッシングサイトとして悪用
1.2. Dangling DNS / Orphaned DNS
Dangling DNSはDNSで設定されている外部サービスのリソースが削除されているにもかかわらず、DNSレコードが残っている状態を指す。
1.3. DNSの誤設定による脆弱性
1.3.1. ワイルドカードサブドメインの誤設定
*.example.com
のようにすべてのサブドメインを受け入れるように設定されているが、適切なフィルタリングや認証が行われていないもの。
考えられる悪影響は以下の通り。
- 任意のサブドメインでの攻撃(XSS,Cookieスコープの悪用)
- ホストヘッダインジェクション
1.3.2. CNAMEの設定ミス
CNAMEレコードが存在しているが、リンク先が適切に保守されていないか、第三者のサービスになっている場合に発生。
1.3.3. サブドメインでのオープンリダイレクトの悪用
サブドメイン上の/redirect?url=https://evil.com
のようなリダイレクト機能を悪用され、外部のフィッシングサイトに誘導されるもの。
1.3.4. Session/Cookie スコープの誤設定
.example.com
に対してCookieを設定すると、a.example.com
やb.example.com
からもそのCookieが読み取れてしまうもの。
サブドメインが攻撃者に乗っ取られているとセッションハイジャックされる可能性がある。
1.3.5. DNSリバインディング攻撃
一見すると正規のドメインに見えるが、内部IP(例: 127.0.0.1, 192.168.x.x)に名前解決されるようにして、内部リソースへアクセスさせる攻撃。
1.3.6. ドメインの失効と再取得
一度使われたカスタムドメイン(例: oldcompany-service.com
)が期限切れで失効した場合、第三者が再取得できてしまう。