
HTTPSサイトのSSL証明書からサブドメインを抽出します。
GSANは、HTTPSサーバーから直接SSL証明書に含まれるSubject Alternative Names(SAN)を抽出できるツールであり、DNS名(サブドメイン)や仮想サーバーを提供します。
これはCertificate Transparencyログに依存せず、サーバーに直接接続して証明書からSANを抽出します。これは内部サーバーや自己署名証明書を分析する際に特に便利です。
pip(または推奨されるpipx)を使用して、システムに多くの依存関係を汚染しないようにします。
$ pipx install --user gsan
Dockerを使用してインストールおよび実行することもできます。
$ docker run --rm -i francc3sco/gsan <DOMAIN>
基本的な使い方は、HTTPSサーバーのドメインをツールに渡すだけで、証明書内で見つかったサブドメインのリストを返します。
$ gsan microsoft.com
microsoft.com [126]:
- microsoft.com
- successionplanning.microsoft.com
- explore-security.microsoft.com
...
- wwwbeta.microsoft.com
- gigjam.microsoft.com
- mspartnerira.microsoft.com
...
別の方法として、xargsコマンドを使用して、スキャンするドメインのリストが含まれたテキストファイルを渡すことができます。
$ cat domains.txt | xargs gsan
google.com [93]:
- google.fr
...
- google.com.au
amazon.com [37]:
- uedata.amazon.com
...
- origin-www.amazon.com.au
youtube.com [93]:
- google.fr
...
- google.com.au
Docker版を使用している場合は、次のようにして同様のことができます。
$ cat domains.txt | xargs docker run --rm -i francc3sco/gsan
gsanをshodanなどの他のツールと組み合わせて、IP|DOMAIN:PORT形式に従っている限り、ドメインまたはIPアドレスのリストからSANのリストを取得できます。
$ shodan search --fields ip_str,port --separator : --limit 100 https | cut -d : -f 1,2 | xargs gsan --timeout 1
207.21.195.58 [1]:
- orielstat.com
162.159.135.42 [4]:
- temp927.kinsta.cloud
- temp312.kinsta.cloud
34.230.178.151 [2]:
- procareltc.com
- clarest.com
20.62.53.137 [1]:
- budget.lis.virginia.gov
199.60.103.228 [3]:
- hscoscdn40.net
- sites-proxy.hscoscdn40.net
...
--outputフラグを使用してファイルに出力することもできます。これは、後でNmapなどの他のツールに出力を渡すのに便利です。
$ gsan microsoft.com --output microsoft.txt | nmap -iL microsoft.txt
または、大量のドメインリストがある場合:
$ cat domains.txt | xargs gsan --output domains.txt | nmap -iL domains.txt
または、世界を混沌に陥れたい場合:
$ shodan search --fields ip_str,port --separator : --limit 1000 has_ipv6:false https | \
cut -d : -f 1,2 | \
xargs gsan --timeout 1 --output sans.txt && \
sudo nmap -sS -F -vvv -iL sans.txt -oX import_to_metasploit.xml