
Subdomain-Enumeration-Tool, asynchrone DNS-Pakete, verwendet pcap, um 1600,000 Subdomains in 1 Sekunde zu scannen
English | Deutsch
KSubdomain ist ein Subdomain-Brute-Force-Tool, das auf statusloser Technologie basiert und beispiellose Scan-Geschwindigkeit und extrem geringen Speicherverbrauch bietet. Es verwendet Raw-Sockets, um direkt auf den Netzwerkadapter zuzugreifen, den Systemkernel-Stack zu umgehen und mit einem zuverlässigen Status-Tabellen-Wiederholungsmechanismus die Vollständigkeit der Ergebnisse zu gewährleisten. Unterstützt Windows, Linux, macOS und ist das bevorzugte Werkzeug für die großflächige DNS-Asset-Erkennung.
--interface für mehrere Netzwerkkarten – Bandbreitenbündelung, Nutzung mehrerer eingehender IPs.EnumStream/VerifyStream für die Echtzeitverarbeitung der Ergebnisse.4‑Kern-CPU, 5 Mbit/s Bandbreite, Test mit 100.000 Wörterbuch-Einträgen:
| Tool | Methode | Dauer | Erfolge |
|---|---|---|---|
| KSubdomain | pcap über Netzwerkkarte | ~30 s | 1397 |
| massdns | pcap/socket | ~3 min 29 s | 1396 |
| dnsx | socket | ~5 min 26 s | 1396 |
Gehe zu Releases und lade die neueste Version für dein System herunter.
Abhängigkeiten installieren:
libpcap-dev installieren.git clone https://github.com/boy-hack/ksubdomain.git
cd ksubdomain
# Empfehlenswert: Version via ldflags einfließen lassen
go build -ldflags "-X github.com/boy-hack/ksubdomain/v2/pkg/core/conf.Version=v2.x.y" \
-o ksubdomain ./cmd/ksubdomain
Oder mit go install:
go install github.com/boy-hack/ksubdomain/v2/cmd/ksubdomain@latest
Hinweis: Das Programm benötigt Root‑/
CAP_NET_RAW-Berechtigungen (Raw-Socket-Betrieb).
Verwendung:
ksubdomain [globale Optionen] <Befehl> [Befehlsoptionen]
Befehle:
enum, e Enumerations-Modus: Subdomain-Brute-Force für eine Hauptdomain
verify, v Verifikations-Modus: Prüft, ob eine Liste von Domains aufgelöst wird
test Testet die maximale Sende-Geschwindigkeit der lokalen Netzwerkkarte
device Zeigt verfügbare Netzwerkkarten an
help, h Zeigt Hilfe an
Globale Optionen:
--help, -h Hilfe anzeigen
--version, -v Versionsinformation ausgeben
Überprüft, ob die angegebene Domain-Liste DNS-Einträge besitzt.
Optionen:
--domain, -d Domain angeben (wiederholbar)
--filename, -f Domain-Liste aus Datei lesen
--stdin Von Standardeingabe lesen
--bandwidth, -b Bandbreitenbegrenzung, z. B. 5m, 10m, 100m (Standard 3m)
--resolvers, -r DNS-Server angeben (Standard: integrierte)
--output, -o Ausgabedatei-Pfad
--format, -f Ausgabeformat: txt (Standard), json, csv, jsonl
--silent, -s Ruhiger Modus – nur Domain ausgeben (kein Banner/Log)
--only-domain, --od Nur Domain ausgeben, keine IP/Einträge
--retry Anzahl Wiederholungen, -1 = unendlich (Standard 3)
--timeout Timeout pro Abfrage in Sekunden (Standard 6)
--interface, -e Netzwerkkartenname angeben (wiederholbar für parallelen Versand)
--wildcard-filter Wildcard-Filter: none (Standard), basic, advanced
--predict Subdomain-Vorhersagemodus aktivieren
--quiet, -q Keine Ausgabe auf dem Bildschirm (nur Datei)
--color, -c Farbige Ausgabe
# Einzelne/mehrere Domains verifizieren
./ksubdomain v -d www.example.com -d mail.example.com
# Aus Datei lesen, als txt speichern
./ksubdomain v -f domains.txt -o output.txt
# Pipe-Eingabe, Bandbreite 10M, ruhiger Modus – an nachgelagerte Tools weiterreichen
cat domains.txt | ./ksubdomain v --stdin -b 10m -s --od | httpx -silent
# Erweiterter Wildcard-Filter, JSONL-Ausgabe
./ksubdomain v -f domains.txt --wildcard-filter advanced --format jsonl -o output.jsonl
# Paralleler Versand über mehrere Netzwerkkarten (Bandbreitenbündelung)
./ksubdomain v -f domains.txt --interface eth0 --interface eth1
Brute-Force für Subdomains einer angegebenen Domain mittels Wörterbuch und Vorhersage-Algorithmus.
Optionen:
--domain, -d Ziel-Hauptdomain (wiederholbar)
--domain-list, --ds Datei mit mehreren Hauptdomains
--filename, -f Wörterbuch-Datei (Standard: integriertes Wörterbuch)
--use-ns-records NS-Einträge der Domain auslesen und als DNS-Resolver hinzufügen
(Restliche Optionen wie im verify-Modus)
# Einzelne Domain enumerieren (mit integriertem Wörterbuch)
./ksubdomain e -d example.com
# Mit eigenem Wörterbuch
./ksubdomain e -d example.com -f subdomains.txt -o result.txt
# Vorhersage-Modus + erweiterter Wildcard-Filter
./ksubdomain e -d example.com --predict --wildcard-filter advanced
# Batch-Enumeration mehrerer Hauptdomains
./ksubdomain e --domain-list roots.txt -b 10m --format jsonl -o result.jsonl
# Pipe an httpx
./ksubdomain e -d example.com --od -s | httpx -silent
# Maximale Sende-Geschwindigkeit der Netzwerkkarte testen
./ksubdomain test
# Verfügbare Netzwerkkarten anzeigen
./ksubdomain device
Kein manuelles Setzen von --timeout nötig. Die Engine passt die Timeout-Grenzen dynamisch basierend auf gemessenen RTT-Werten an (exponentiell gewichteter gleitender Mittelwert, EWMA α=0,125). Dies reduziert Fehlalarme und vermeidet unnötiges Warten.
Durch wiederholtes Angeben von --interface können mehrere Netzwerkkarten gleichzeitig Pakete senden. Mehrere Goroutinen teilen sich denselben domainChan und konsumieren konkurrierend – natürlicher Lastausgleich:
./ksubdomain e -d example.com --interface eth0 --interface eth1 -b 20m
Mit --predict sagt das Tool basierend auf bereits gefundenen Subdomains mögliche verwandte Subdomains voraus und erhöht so die Erkennungsrate.
none: Kein Filter (Standard)basic: Einfacher Filter – entfernt offensichtliche Wildcard-IPsadvanced: Erweiterter Filter – mehrdimensionale Analyse