
Extraire les sous-domaines des certificats SSL sur les sites HTTPS.
GSAN est un outil qui peut extraire les Noms Alternatifs du Sujet (SAN) présents dans les certificats SSL directement à partir des serveurs https, ce qui peut vous fournir des noms DNS (sous-domaines) ou des serveurs virtuels.
Il ne repose pas sur les logs de transparence des certificats ; il se connecte directement au serveur et extrait les SAN du certificat, ce qui peut être particulièrement utile lorsque vous analysez des serveurs internes ou des certificats auto-signés.
Utilisez pip (ou pipx - recommandé) pour éviter de contaminer votre système avec un tas de dépendances.
$ pipx install --user gsan
Vous pouvez également l'installer et l'exécuter via Docker.
$ docker run --rm -i francc3sco/gsan <DOMAINE>
L'utilisation de base consiste simplement à passer le domaine d'un serveur HTTPS à l'outil, qui retournera une liste des sous-domaines trouvés dans le certificat.
$ gsan microsoft.com
microsoft.com [126]:
- microsoft.com
- successionplanning.microsoft.com
- explore-security.microsoft.com
...
- wwwbeta.microsoft.com
- gigjam.microsoft.com
- mspartnerira.microsoft.com
...
Alternativement, vous pouvez passer un fichier texte contenant une liste de domaines à analyser en utilisant la commande 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 vous utilisez la version dockerisée, vous pouvez obtenir le même résultat en faisant :
$ cat domains.txt | xargs docker run --rm -i francc3sco/gsan
Vous pouvez combiner gsan avec d'autres outils comme shodan pour obtenir une liste de SAN trouvés dans une liste de domaines ou d'adresses IP, à condition de respecter le format IP|DOMAINE:PORT.
$ 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
...
Vous pouvez également écrire la sortie dans un fichier en utilisant l'option --output, ce qui peut être utile pour ensuite passer le résultat à d'autres outils comme Nmap.
$ gsan microsoft.com --output microsoft.txt | nmap -iL microsoft.txt
Ou, si vous avez une grande liste de domaines :
$ cat domains.txt | xargs gsan --output domains.txt | nmap -iL domains.txt
Ou, si vous voulez que le chaos règne sur le monde :
$ 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