
Extraer subdominios de certificados SSL en sitios HTTPS.
GSAN es una herramienta que puede extraer Nombres Alternativos del Sujeto (SAN) encontrados en Certificados SSL directamente desde servidores https, lo que puede proporcionarte nombres DNS (subdominios) o servidores virtuales.
No depende de los registros de Certificate Transparency, se conecta directamente al servidor y extrae los SAN del certificado, lo que puede ser especialmente útil cuando estás analizando servidores internos o certificados autofirmados.
Usa pip (o pipx - recomendado) para evitar contaminar tu sistema con un montón de dependencias.
$ pipx install --user gsan
También puedes instalar y ejecutarlo usando Docker.
$ docker run --rm -i francc3sco/gsan <DOMAIN>
El uso básico es simplemente pasar el dominio de un servidor HTTPS a la herramienta, y devolverá una lista de subdominios encontrados en el 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, puedes pasar un archivo de texto con una lista de dominios a escanear usando el 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
Si estás usando la versión dockerizada, puedes lograr lo mismo haciendo:
$ cat domains.txt | xargs docker run --rm -i francc3sco/gsan
Puedes combinar gsan con otras herramientas como shodan para obtener una lista de SAN encontrados en una lista de dominios o direcciones IP, siempre que respetes el formato IP|DOMINIO:PUERTO.
$ 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
...
También puedes enviar la salida a un archivo usando la opción --output, lo que puede ser útil para luego pasar la salida a otras herramientas como Nmap.
$ gsan microsoft.com --output microsoft.txt | nmap -iL microsoft.txt
O, si tienes una lista grande de dominios:
$ cat domains.txt | xargs gsan --output domains.txt | nmap -iL domains.txt
O, si quieres que el caos se apodere del 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