SSL/TLS 証明書からサブドメインを発見する

発行されたすべての TLS 証明書は公開の Certificate Transparency (CT) ログに記録され、各証明書の SANs フィールドには対象ドメインが列挙されます。ターゲットドメインを CT で検索することは、ステージングホスト・内部パネル・開発環境など DNS スキャンでは見つからないものまで含めて、最も信頼できる受動的サブドメイン列挙手法です。

なぜ CT ログでサブドメインが見えるのか

CA は TLS 証明書発行時に複数の CT ログに送信する必要があります(Chrome と Safari は記録のない証明書を信頼しません)。証明書の Subject Alternative Names (SANs) 拡張には対象 hostname が列挙されます。証明書と SANs は両方、公開ログに永続的に記録されます。

結果:誰かが staging.example.com、internal.example.com、admin-old-2019.example.com に TLS 証明書を発行すれば、その hostname は永遠に公開発見可能になります — ホストが廃止されても、DNS が解決しなくても、証明書が失効していても。

ステップバイステップ

1. ブラウザで試す

下のフォームでドメインを検索 — CT Radar はそのドメインとサブドメインに発行されたすべての証明書を返します。

Try: ···

2. パイプ可能な出力に CLI を使う

# install
$ go install github.com/imfht/ct-radar@latest
$ export CT_RADAR_KEY=<your-key>

# enumerate
$ ct-radar example.com
api.example.com
admin.example.com
internal.example.com
staging.example.com
dev-old.example.com
... 847 unique subdomains

3. httpx にパイプして稼働中のものを探す

$ ct-radar example.com | httpx -silent
https://api.example.com [200]
https://staging.example.com [403]
https://admin.example.com [401]
... 124 live hosts

4. 能動的列挙と組み合わせる

# CT (passive) + subfinder (passive DNS) + amass (active brute force)
$ {
    ct-radar example.com;
    subfinder -d example.com -silent;
    amass enum -passive -d example.com;
  } | sort -u | httpx -silent
... 1,247 live hosts

ヒントと制限

検索から始める

無料枠は 1 日 100 検索。検索バーは登録不要。

証明書を検索 →