
Scanner de prise de contrôle DNS concurrent détectant les vulnérabilités de CNAME, NS, AXFR, SPF, MX, SRV et d'enregistrements A obsolètes chez les fournisseurs cloud, avec analyse de chaîne multi-niveaux.
Scanner de prise de contrôle DNS
Subjack est un scanner de prise de contrôle DNS écrit en Go, conçu pour analyser une liste de domaines en parallèle et identifier ceux qui peuvent être détournés. Grâce à la rapidité et à l'efficacité de Go, cet outil se démarque vraiment pour les tests de masse. Vérifiez toujours les résultats manuellement pour écarter les faux positifs.
Subjack détecte :
include: SPF permettant l'usurpation d'e-mailsNécessite Go
go install github.com/haccer/subjack@latest
subjack -w subdomaines.txt -t 100 -timeout 30 -o resultats.txt -ssl
Subjack peut lire les domaines depuis l'entrée standard, ce qui facilite le pipe avec d'autres outils :
subfinder -d exemple.com | subjack -ssl -o resultats.json
cat domaines.txt | subjack -t 20 -o resultats.txt
Avec le drapeau -ns, subjack effectue deux types de vérifications de prise de contrôle de serveur de noms :
Domaines NS expirés : Vérifie si l'un des serveurs de noms d'un domaine a expiré et est disponible à l'achat. Un attaquant qui enregistre un serveur de noms expiré peut prendre le contrôle total de tout le DNS de ce domaine — il peut pointer n'importe quel enregistrement n'importe où, intercepter les e-mails, délivrer des certificats, etc.
Délégations NS pendantes : Détecte quand les enregistrements NS d'un domaine pointent vers des fournisseurs DNS cloud mais que la zone hébergée a été supprimée. Subjack interroge chaque serveur de noms directement pour un enregistrement SOA — si tous renvoient SERVFAIL ou REFUSED, la zone a disparu et est potentiellement réclamable. Fournisseurs supportés :
ns-*.awsdns-*)ns-cloud-*.googledomains.com)ns*-*.azure-dns.*)ns*.digitalocean.com)ns*.vultr.com)ns*.linode.com)subjack -w sous-domaines.txt -ns -o resultats.json
Avec le drapeau -ar, subjack résout les enregistrements A et vérifie si l'adresse IP est réellement active. Quand une entreprise supprime un serveur cloud mais oublie de supprimer l'enregistrement DNS A, l'IP est libérée dans le pool du fournisseur. Un attaquant peut créer de nouvelles instances chez ce fournisseur jusqu'à obtenir la même IP, prenant ainsi le contrôle du sous-domaine.
Subjack identifie le fournisseur cloud (AWS, GCP, Azure, DigitalOcean, Linode, Vultr, Oracle) quand c'est possible, facilitant le ciblage de la bonne plateforme. La détection utilise le ping ICMP (nécessite root) avec une solution de repli TCP sur les ports 80/443.
sudo subjack -w sous-domaines.txt -ar -o resultats.json
Les résultats sont marqués comme ENREGISTREMENT A OBSOLÈTE et doivent être vérifiés manuellement — une IP qui ne répond pas ne signifie pas toujours qu'elle est récupérable.
Avec le drapeau -axfr, subjack tente des transferts de zone DNS (AXFR) qui peuvent exposer l'ensemble des enregistrements DNS d'un domaine. Subjack va au-delà du simple test des serveurs de noms officiels du domaine — il bruteforce également les noms d'hôte courants des serveurs de noms (ns1, dns-0, ns-backup, etc.) car des serveurs de noms cachés ou oubliés sont souvent laissés non sécurisés même après que les serveurs principaux ont été verrouillés.
subjack -d exemple.com -axfr -o resultats.json
subjack -w domaines.txt -axfr -o resultats.json
Les résultats sont marqués comme TRANSFERT DE ZONE avec le serveur de noms vulnérable et le nombre d'enregistrements exposés.
Avec le drapeau -mail, subjack vérifie deux vecteurs de prise de contrôle liés aux e-mails :
Prise de contrôle SPF include : Analyse les enregistrements TXT SPF et vérifie si des domaines include: sont expirés et disponibles à l'enregistrement. Un attaquant qui enregistre le domaine inclus peut envoyer des e-mails entièrement authentifiés comme s'ils provenaient de la cible, contournant SPF et DMARC.
Prise de contrôle via enregistrement MX : Vérifie si des cibles d'enregistrement MX sont expirées et disponibles à l'enregistrement. Un attaquant qui contrôle le serveur de messagerie peut intercepter tous les e-mails entrants — réinitialisations de mot de passe, codes 2FA, etc.
subjack -w domaines.txt -mail -o resultats.json
Ces vérifications s'exécutent automatiquement sur chaque scan :
Prise de contrôle de chaîne CNAME : Suit les chaînes CNAME à plusieurs niveaux (jusqu'à 10) et vérifie si une cible intermédiaire est réclamable. La détection CNAME standard ne vérifie que le premier saut — les chaînes permettent de détecter des opportunités de prise de contrôle plus profondes.
Prise de contrôle d'enregistrement SRV : Vérifie les enregistrements SRV courants (SIP, XMPP, LDAP, Kerberos, IMAP, CalDAV, etc.) pour des cibles expirées et disponibles à l'enregistrement.
Vous pouvez utiliser scanio.sh qui est une sorte de script de preuve de concept pour localiser en masse les sous-domaines vulnérables à partir des résultats de Rapid7's Project Sonar. Ce script analyse et grep les données pour trouver les enregistrements CNAME souhaités et crée une grande liste de sous-domaines à vérifier avec subjack pour savoir s'ils sont vulnérables à une prise de contrôle hostile. Veuillez l'utiliser de manière responsable.
Votre liste de mots doit contenir une liste de sous-domaines, un par ligne :
assets.xen.world
assets.github.com
b.xen.world
big.example.com
cdn.xen.world
dev.xen.world
dev2.twitter.com
Informations supplémentaires sur les prises de contrôle DNS :
| Drapeau | Description | Par défaut |
|---|
-d | Domaine unique à vérifier | |
-w | Chemin vers la liste de sous-domaines | |
-t | Nombre de threads simultanés | 10 |
-timeout | Secondes d'attente avant timeout de connexion | 10 |
-o | Écrire les résultats dans un fichier (utiliser .json pour la sortie JSON) | |
-ssl | Forcer les connexions HTTPS (peut augmenter la précision) | false |
-a | Envoyer des requêtes à toutes les URL, pas seulement celles avec CNAME identifié (recommandé) | false |
-m | Marquer les enregistrements CNAME morts même si le domaine n'est pas disponible à l'enregistrement | false |
-r | Chemin vers une liste de résolveurs DNS (une IP par ligne, utilise 8.8.8.8 en cas d'échec) | |
-ns | Vérifier les prises de contrôle NS (domaines NS expirés + délégations cloud DNS pendantes) | false |
-ar | Vérifier les enregistrements A obsolètes pointant vers des IP mortes (peut nécessiter root pour ICMP) | false |
-axfr | Vérifier les transferts de zone (AXFR) incluant le bruteforce NS | false |
-mail | Vérifier les prises de contrôle SPF include et MX | false |
-v | Afficher plus d'informations par requête | false |