
Extrair subdomínios de certificados SSL em sites HTTPS.
GSAN é uma ferramenta que pode extrair Nomes Alternativos do Sujeito (SAN) encontrados em Certificados SSL diretamente de servidores HTTPS, fornecendo nomes DNS (subdomínios) ou servidores virtuais.
Ela não depende de logs de Transparência de Certificados; conecta-se diretamente ao servidor e extrai os SANs do certificado, o que pode ser especialmente útil ao analisar servidores internos ou certificados autoassinados.
Use pip (ou pipx – recomendado) para evitar contaminar seu sistema com várias dependências.
$ pipx install --user gsan
Você também pode instalar e executar usando Docker.
$ docker run --rm -i francc3sco/gsan <DOMAIN>
O uso básico é apenas passar o domínio de um servidor HTTPS para a ferramenta, e ela retornará uma lista de subdomínios encontrados no certificado.
$ gsan microsoft.com
microsoft.com [126]:
- microsoft.com
- successionplanning.microsoft.com
- explore-security.microsoft.com
...
- wwwbeta.microsoft.com
- gigjam.microsoft.com
- mspartnerira.microsoft.com
...
Alternativamente, você pode passar um arquivo de texto com uma lista de domínios para analisar usando o comando 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
Se estiver usando a versão dockerizada, pode obter o mesmo resultado fazendo:
$ cat domains.txt | xargs docker run --rm -i francc3sco/gsan
Você pode combinar gsan com outras ferramentas, como Shodan, para obter uma lista de SANs encontrados em uma lista de domínios ou endereços IP, desde que respeite o formato IP|DOMÍNIO:PORTA.
$ 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
...
Você também pode gerar a saída para um arquivo usando a opção --output, o que pode ser útil para então passar a saída para outras ferramentas, como Nmap.
$ gsan microsoft.com --output microsoft.txt | nmap -iL microsoft.txt
Ou, se tiver uma grande lista de domínios:
$ cat domains.txt | xargs gsan --output domains.txt | nmap -iL domains.txt
Ou, se quiser que o caos tome conta do mundo:
$ 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