
Estrai i sottodomini dai certificati SSL nei siti HTTPS.
GSAN è uno strumento in grado di estrarre i Subject Alternative Names (SAN) trovati nei certificati SSL direttamente da server https, che possono fornirti nomi DNS (sottodomini) o server virtuali.
Non si basa sui log di Certificate Transparency, si connette direttamente al server ed estrae i SAN dal certificato, il che può essere particolarmente utile quando si analizzano server interni o certificati autofirmati.
Usa pip (o pipx - consigliato) per evitare di contaminare il sistema con un mucchio di dipendenze.
$ pipx install --user gsan
Puoi anche installarlo ed eseguirlo usando Docker.
$ docker run --rm -i francc3sco/gsan <DOMAIN>
L'utilizzo base consiste nel passare il dominio di un server HTTPS allo strumento, che restituirà un elenco di sottodomini trovati nel certificato.
$ gsan microsoft.com
microsoft.com [126]:
- microsoft.com
- successionplanning.microsoft.com
- explore-security.microsoft.com
...
- wwwbeta.microsoft.com
- gigjam.microsoft.com
- mspartnerira.microsoft.com
...
In alternativa, puoi passare un file di testo con un elenco di domini da scansionare usando il 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 stai usando la versione dockerizzata, puoi ottenere lo stesso risultato facendo:
$ cat domains.txt | xargs docker run --rm -i francc3sco/gsan
Puoi combinare gsan con altri strumenti come shodan per ottenere un elenco di SAN trovati in un elenco di domini o indirizzi IP, purché rispetti il formato IP|DOMINIO: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
...
Puoi anche salvare l'output in un file usando il flag --output, che può essere utile per passare l'output ad altri strumenti come Nmap.
$ gsan microsoft.com --output microsoft.txt | nmap -iL microsoft.txt
Oppure, se hai una lunga lista di domini:
$ cat domains.txt | xargs gsan --output domains.txt | nmap -iL domains.txt
Oppure, se vuoi che il caos prenda il mondo:
$ 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