
Gleichzeitiger DNS-Takeover-Scanner, der CNAME-, NS-, AXFR-, SPF-, MX-, SRV- und stale A-Record-Anfälligkeiten über Cloud-Anbieter hinweg erkennt, mit mehrstufiger Kettenanalyse.
DNS Takeover Scanner
Subjack ist ein in Go geschriebener DNS-Takeover-Scanner, der eine Liste von Domains parallel scannt und solche identifiziert, die übernommen werden können. Dank der Geschwindigkeit und Effizienz von Go zeichnet sich dieses Tool besonders beim Massentesting aus. Überprüfe die Ergebnisse immer manuell, um False Positives auszuschließen.
Subjack erkennt:
include:-Direktiven, die E-Mail-Spoofing ermöglichenErfordert Go
go install github.com/haccer/subjack@latest
Vorkompilierte Binärdateien für Linux, macOS und Windows sind auch auf der Releases-Seite verfügbar — praktisch für kleine VPSes, bei denen das Kompilieren langsam ist.
subjack -w subdomains.txt -t 100 -timeout 30 -o results.txt -ssl
| Flag | Beschreibung | Standard |
|---|---|---|
-d | Einzelne zu prüfende Domain | |
-w | Pfad zur Wortliste der Subdomains | |
-t | Anzahl gleichzeitiger Threads | 10 |
-timeout | Sekunden, die vor dem Verbindungs-Timeout gewartet wird | 10 |
-o | Ergebnisse in Datei ausgeben (für JSON-Ausgabe die Endung .json verwenden) | |
-ssl | HTTPS-Verbindungen erzwingen (kann die Genauigkeit erhöhen) | false |
-a | Anfragen an jede URL senden, nicht nur an die mit identifizierten CNAMEs (empfohlen) | false |
-m | Tote CNAME-Records auch dann markieren, wenn die Domain nicht zur Registrierung verfügbar ist | false |
-r | Pfad zu einer Liste von DNS-Resolvern (eine IP oder host:port pro Zeile, fällt bei Fehler auf 8.8.8.8 zurück) | |
-ns | Auf NS-Takeovers prüfen (abgelaufene NS-Domains + verwaiste Cloud-DNS-Delegierungen) | false |
-ar | Auf veraltete A-Records prüfen, die auf tote IPs zeigen (erfordert möglicherweise root für ICMP) | false |
-axfr | Auf Zonentransfers (AXFR) inklusive NS-Bruteforce prüfen | false |
-mail | Auf SPF-Include- und MX-Record-Takeovers prüfen | false |
-srv | Auf SRV-Record-Takeovers prüfen (fügt ~28 DNS-Abfragen pro Domain hinzu) | false |
-v | Mehr Informationen pro Anfrage anzeigen | false |
Subjack kann Domains von stdin lesen, was das Weiterleiten der Ausgabe anderer Tools erleichtert:
subfinder -d example.com | subjack -ssl -o results.json
cat domains.txt | subjack -t 20 -o results.txt
Mit dem Flag -ns führt subjack zwei Arten von Nameserver-Takeover-Prüfungen durch:
Abgelaufene NS-Domains: Prüft, ob einer der Nameserver einer Domain abgelaufen und zum Kauf verfügbar ist. Ein Angreifer, der einen abgelaufenen Nameserver registriert, kann die vollständige Kontrolle über alle DNS-Einträge dieser Domain übernehmen — er kann jeden Record auf ein beliebiges Ziel zeigen lassen, E-Mails abfangen, Zertifikate ausstellen und mehr.
Verwaiste NS-Delegierungen: Erkennt, wenn die NS-Records einer Domain auf Cloud-DNS-Anbieter zeigen, die gehostete Zone aber gelöscht wurde. Subjack fragt jeden Nameserver direkt nach einem SOA-Record ab — wenn alle SERVFAIL oder REFUSED zurückgeben, ist die Zone verschwunden und möglicherweise beanspruchbar. Unterstützte Anbieter:
ns-*.awsdns-*)ns-cloud-*.googledomains.com)ns*-*.azure-dns.*)ns*.digitalocean.com)ns*.vultr.com)ns*.linode.com)subjack -w subdomains.txt -ns -o results.json
Mit dem Flag -ar löst subjack A-Records auf und prüft, ob die IP-Adresse tatsächlich noch aktiv ist. Wenn ein Unternehmen einen Cloud-Server abschaltet, aber vergisst, den DNS-A-Record zu entfernen, wird die IP zurück in den Pool des Anbieters gegeben. Ein Angreifer kann neue Instanzen bei diesem Anbieter starten, bis er dieselbe IP erhält, und so die Kontrolle über die Subdomain erlangen.
Subjack identifiziert nach Möglichkeit den Cloud-Anbieter (AWS, GCP, Azure, DigitalOcean, Linode, Vultr, Oracle), was das Anvisieren der richtigen Plattform erleichtert. Die Erkennung verwendet ICMP-Ping (erfordert root) mit einem TCP-Fallback auf den Ports 80/443.
sudo subjack -w subdomains.txt -ar -o results.json
Ergebnisse werden als STALE A RECORD markiert und sollten manuell überprüft werden — eine nicht antwortende IP bedeutet nicht immer, dass sie wieder beanspruchbar ist.
Mit dem Flag -axfr versucht subjack DNS-Zonentransfers (AXFR), die sämtliche DNS-Records einer Domain offenlegen können. Subjack geht über das reine Testen der offiziellen Nameserver der Domain hinaus — es bruteforct auch gängige Nameserver-Hostnamen (ns1, dns-0, ns-backup usw.), da versteckte oder vergessene Nameserver oft ungesichert bleiben, selbst nachdem die primären abgesichert wurden.
subjack -d example.com -axfr -o results.json
subjack -w domains.txt -axfr -o results.json
Ergebnisse werden als ZONE TRANSFER markiert, zusammen mit dem anfälligen Nameserver und der Anzahl der offengelegten Records.
Mit dem Flag -mail prüft subjack auf zwei E-Mail-basierte Takeover-Vektoren:
SPF-Include-Takeover: Parst SPF-TXT-Records und prüft, ob include:-Domains abgelaufen und zur Registrierung verfügbar sind. Ein Angreifer, der die eingebundene Domain registriert, kann vollständig authentifizierte E-Mails im Namen des Ziels versenden und dabei SPF und DMARC umgehen.
MX-Record-Takeover: Prüft, ob MX-Record-Ziele abgelaufen und zur Registrierung verfügbar sind. Ein Angreifer, der den Mailserver kontrolliert, kann sämtliche eingehende E-Mails abfangen — Passwort-Resets, 2FA-Codes und mehr.
subjack -w domains.txt -mail -o results.json
CNAME-Chain-Takeover läuft automatisch bei jedem Scan: Es folgt mehrstufigen CNAME-Ketten (bis zu 10 Ebenen tief) und prüft, ob ein Zwischenziel beanspruchbar ist. Die Standard-CNAME-Erkennung prüft nur den ersten Hop — Ketten erfassen tiefere Takeover-Möglichkeiten.
SRV-Record-Takeover ist optional über das Flag -srv, da das Abfragen der gängigen SRV-Positionen (SIP, XMPP, LDAP, Kerberos, IMAP, CalDAV usw.) etwa 28 DNS-Abfragen pro Domain hinzufügt: