
Script de reconnaissance passive et de cartographie de la surface d'attaque basé sur Bash, utilisant uniquement des API publiques et des outils Linux standards (curl, dig, openssl, nmap, python3).
_ _ _ _ _ _______
| \ | | | | | |/ / ____|
| \| | | | | ' /| _|
| |\ | |_| | . \| |___
|_| \_|\___/|_|\_\_____|
N U K E // recon & attack surface mapper
-----------------------------------------
Script bash de reconnaissance passive + cartographie de surface d'attaque utilisant uniquement des API publiques + outils Linux standards (curl, dig, openssl, nmap, python3).
Toute la sortie est écrite dans un unique fichier .txt : nuke_<domain>.txt.
Aucune dépendance à subfinder, ffuf, gobuster, subjs, getJS, jshunter ou js_snitch.
| # | Module | Source / Technique |
|---|---|---|
| 1 | Sous-domaines via CT | crt.sh |
| 2 | Sous-domaines via CT alternatif | crt.name |
| 3 | Sous-domaines (optionnel, nécessite une clé) | SecurityTrails API |
| 4 | Sous-domaines + URLs + IPs | OTX AlienVault |
| 5 | Domaines + IPs + ASN/Serveur | urlscan.io |
| 6 | Sous-domaines + siblings + IPs (nécessite une clé) | VirusTotal v2 |
| 7 | Sous-domaines consolidés | Union + déduplication sur toutes les sources |
| 8 | DNS (TXT/SPF, A, AAAA, NS, MX, SOA + AXFR) | dns.google (DoH) + dig/host — équivalent à dnsrecon -d |
| 9 | WHOIS | RDAP via rdap.org |
| 10 | IPs / Reverse DNS / RDAP-IP / statut HTTP | dns.google PTR + rdap.org/ip + curl -I |
| 11 | Hash de favicon (recherche Shodan) + vérification SSL de l'IP | murmur3 standard Shodan local (http.favicon.hash) + openssl + nmap --script ssl-cert |
| 12 | Fichiers JS + endpoints extraits | Analyse de <script src> + regex de chemins/URLs (remplace subjs/getJS/jshunter) |
| 13 | URLs historiques | Wayback Machine CDX |
| 14 | Découverte d'IP d'origine (contournement CDN/WAF) | Corrèle DNS + OTX + urlscan + VT + SPF + Shodan, filtre via RDAP org + test d'en-tête Host: |
| 15 | Dirscan intégré | Wordlist curée à fort signal, parallèle (pas besoin de ffuf/gobuster) |
Points forts :
pip install), avec des dorks prêts à l'emploi : http.favicon.hash:X.ip4:/include:/a/mx) — fuite d'infra / d'IP d'origine.?api=, admin, token, .bak, .sql, .env, .git)..git/HEAD, .env, backup.zip, phpinfo.php, actuator/env, swagger/, graphql, jenkins/, etc.bash, curl, grep, sed, awk, sort, trdig ou host → pour AXFRpython3 → pour le hash murmur3 de favicon (standard Shodan)nmap → pour nmap --script ssl-cert -p 443 <IP>openssl → pour l'inspection du CN/SAN du certificatFonctionne sur Kali, Ubuntu, Debian, WSL2.
git clone https://github.com/AnkhCorp/Nuke.sh.git
cd Nuke.sh
chmod +x nuke.sh
# Basique (100% gratuit, sans clés)
bash nuke.sh example.com
# Avec clés (via arguments)
bash nuke.sh example.com SECURITYTRAILS_KEY VIRUSTOTAL_KEY
# Avec clés via env (recommandé — ne jamais committer les clés)
export SECURITYTRAILS_API_KEY="your_key"
export VT_APIKEY="your_key"
export SHODAN_API_KEY="your_key" # optional
export ZOOMEYE_KEY="your_key" # optional
bash nuke.sh example.com
Variables d'environnement prises en charge :
| Variable | Requise ? | Où l'obtenir |
|---|---|---|
SECURITYTRAILS_API_KEY | Non | https://securitytrails.com/app/signup |
VT_APIKEY | Non | https://www.virustotal.com/gui/my-apikey |
SHODAN_API_KEY | Non | https://account.shodan.io |
ZOOMEYE_KEY | Non | https://www.zoomeye.hk |
URLSCAN_SIZE | Non (défaut 1000) | Ex. export URLSCAN_SIZE=10000 pour le max |
Sortie :
nuke_example.com.txt
===================================================================
== 7. CONSOLIDATED SUBDOMAINS (all sources)
===================================================================
crt.sh=45 | crt.name=38 | securitytrails=52 | otx=20 | urlscan=15 | virustotal=30
[UNIQUE total]: https://raw.githubusercontent.com/ankhcorp/nuke.sh/main/87
admin.example.com
api.example.com
...
===================================================================
== 14. ORIGIN IP DISCOVERY (consolidated)
===================================================================
[All candidate IPs (current DNS + OTX + urlscan + VT + SPF + Shodan)]:
https://raw.githubusercontent.com/ankhcorp/nuke.sh/main/1.2.3.4
5.6.7.8
...
IP: 1.2.3.4 | RDAP_ORG: CLOUDFLARENET
IP: 5.6.7.8 | RDAP_ORG: LOCAWEB
# Shodan — certificate
shodan search 'Ssl.cert.subject.CN:"example.com" 200 --fields ip_str'
# Shodan — favicon
shodan search 'http.favicon.hash:123456789'
# ZoomEye
ssl:"example.com" # at https://www.zoomeye.hk/
# Manual
https://crt.name/v1/search?apex=example.com
https://favicon-hash.kmsec.uk/
https://viewdns.info/iphistory/?domain=example.com
https://mxtoolbox.com/SuperTool.aspx
https://urlscan.io/search/#domain:example.com
Vérification manuelle d'une IP d'origine candidate :
curl -sk -H 'Host: example.com' https://<CANDIDATE_IP>/ | head -n 20
echo | openssl s_client -connect <CANDIDATE_IP>:443 -servername example.com 2>/dev/null | openssl x509 -noout -subject -ext subjectAltName
nmap --script ssl-cert -p 443 <CANDIDATE_IP>
Si le certificat répond avec CN/SAN=example.com (ou que le titre/Serveur correspond au site), c'est la vraie IP.
| Outil | Raison du remplacement |
|---|---|
subfinder | Remplacé par crt.sh + crt.name + OTX + urlscan + VT + SecurityTrails (tout via API, rien à installer) |
webanalyze | Une détection fiable des technologies nécessite une API payante (Wappalyzer/BuiltWith) — hors périmètre |
subjs / getJS | Remplacé par l'extraction intégrée de <script src> (section 12) |
jshunter | Remplacé par la regex d'endpoints intégrée (section 12) |
js_snitch | Pas d'équivalent en API publique |
dnsrecon -d | Équivalent en section 8 (NS/MX/SOA/AXFR via DoH + dig) |
httpx-toolkit | Équivalent partiel en section 10 (statut/serveur par hôte) |
ffuf / gobuster | Dirscan intégré avec wordlist curée + xargs -P (section 15) — pour du fuzzing complet, utilisez SecLists : ffuf -u https://TARGET/FUZZ -w raft-medium-directories.txt |
À utiliser uniquement contre des cibles que vous êtes autorisé à tester (vos propres actifs, programmes de bug bounty dans le périmètre, pentests sous contrat).
L'auteur n'est pas responsable d'un usage abusif.
MIT — utilisation, modification et partage libres.
Les PRs sont les bienvenues ! Idées de roadmap :
--only-ips / --only-subsamass / anubis