
Strumento di enumerazione dei sottodomini, pacchetti DNS asincroni, utilizza pcap per scansionare 1.600.000 sottodomini in 1 secondo.
English | 中文
KSubdomain è uno strumento di brute force per sottodomini basato su tecnologia stateless, che offre una velocità di scansione senza precedenti e un consumo di memoria estremamente ridotto. Utilizza socket raw per operare direttamente sulla scheda di rete, bypassando lo stack di protocollo del kernel del sistema, e si affida a un affidabile meccanismo di re-invio con tabella di stato per garantire l'integrità dei risultati. Supporta Windows, Linux e macOS ed è lo strumento ideale per rilevamento su larga scala di asset DNS.
--interface ripetuto per specificare più schede, accumulando larghezza di banda e utilizzando più IP di uscita.EnumStream/VerifyStream per elaborare i risultati in tempo reale.Test con CPU 4 core, banda 5 Mbps, dizionario da 100.000 voci:
| Strumento | Metodo | Tempo | Successi |
|---|---|---|---|
| KSubdomain | Invio su scheda di rete con pcap | ~30 secondi | 1397 |
| massdns | pcap/socket | ~3 minuti e 29 secondi | 1396 |
| dnsx | socket | ~5 minuti e 26 secondi | 1396 |
Vai alle Release e scarica l'ultima versione per il tuo sistema.
Dipendenze:
libpcap-devgit clone https://github.com/boy-hack/ksubdomain.git
cd ksubdomain
# Si consiglia di iniettare il numero di versione tramite ldflags
go build -ldflags "-X github.com/boy-hack/ksubdomain/v2/pkg/core/conf.Version=v2.x.y" \
-o ksubdomain ./cmd/ksubdomain
Oppure usa go install:
go install github.com/boy-hack/ksubdomain/v2/cmd/ksubdomain@latest
Nota: Richiede privilegi di root /
CAP_NET_RAW(per l'uso di socket raw per la cattura di pacchetti)
Utilizzo:
ksubdomain [opzioni globali] <comando> [opzioni del comando]
Comandi:
enum, e Modalità enumerazione: brute force dei sottodomini di un dominio principale
verify, v Modalità verifica: verifica se un elenco di domini viene risolto
test Testa la velocità massima di invio della scheda di rete locale
device Mostra le informazioni sulle schede di rete disponibili
help, h Mostra l'aiuto
Opzioni globali:
--help, -h Mostra l'aiuto
--version, -v Stampa le informazioni sulla versione
Verifica se l'elenco di domini fornito ha record di risoluzione DNS.
Opzioni:
--domain, -d Specifica il dominio (ripetibile)
--filename, -f Legge l'elenco dei domini da un file
--stdin Legge dall'input standard
--bandwidth, -b Limite di banda, es. 5m, 10m, 100m (default 3m)
--resolvers, -r Specifica i server DNS (default usa quelli interni)
--output, -o Percorso del file di output
--format, -f Formato output: txt (default), json, csv, jsonl
--silent, -s Modalità silenziosa, mostra solo i domini (nessun banner o log)
--only-domain, --od Mostra solo il dominio, senza IP/record
--retry Numero di tentativi, -1 per tentativi infiniti (default 3)
--timeout Timeout in secondi per ogni query (default 6)
--interface, -e Specifica il nome della scheda di rete (ripetibile, per invio concorrente su più schede)
--wildcard-filter Filtro per record wildcard: none (default), basic, advanced
--predict Attiva la modalità di previsione dei sottodomini
--quiet, -q Non stampare i risultati a schermo (solo su file)
--color, -c Output a colori
# Verifica singolo/più domini
./ksubdomain v -d www.example.com -d mail.example.com
# Carica da file, salva come txt
./ksubdomain v -f domains.txt -o output.txt
# Input tramite pipe, banda 10M, modalità silenziosa per strumenti a valle
cat domains.txt | ./ksubdomain v --stdin -b 10m -s --od | httpx -silent
# Filtro avanzato per wildcard, output JSONL
./ksubdomain v -f domains.txt --wildcard-filter advanced --format jsonl -o output.jsonl
# Invio concorrente su più schede (accumula banda)
./ksubdomain v -f domains.txt --interface eth0 --interface eth1
Esegue brute force dei sottodomini del dominio specificato basandosi su dizionario e algoritmo di previsione.
Opzioni:
--domain, -d Dominio principale target (ripetibile)
--domain-list, --ds File con elenco di domini principali
--filename, -f Percorso del file dizionario (default usa il dizionario integrato)
--use-ns-records Legge i record NS del dominio e li aggiunge ai resolver DNS
(le altre opzioni sono uguali alla modalità verify)
# Enumerazione di un singolo dominio (con dizionario integrato)
./ksubdomain e -d example.com
# Specifica il file dizionario
./ksubdomain e -d example.com -f subdomains.txt -o result.txt
# Attiva modalità previsione + filtro avanzato wildcard
./ksubdomain e -d example.com --predict --wildcard-filter advanced
# Enumerazione batch di più domini principali
./ksubdomain e --domain-list roots.txt -b 10m --format jsonl -o result.jsonl
# Pipe verso httpx
./ksubdomain e -d example.com --od -s | httpx -silent
# Testa la velocità massima di invio della scheda di rete
./ksubdomain test
# Visualizza le schede di rete disponibili
./ksubdomain device
Nessuna necessità di impostare manualmente --timeout: il motore regola dinamicamente i limiti di timeout basandosi sul RTT misurato (media mobile esponenziale, EWMA α=0.125), riducendo i falsi negativi e evitando attese inutili.
Ripetendo --interface si possono utilizzare più schede di rete contemporaneamente per l'invio; più goroutine condividono lo stesso domainChan in competizione, realizzando naturalmente il bilanciamento del carico:
./ksubdomain e -d example.com --interface eth0 --interface eth1 -b 20m
Con --predict attivato, lo strumento prevede possibili sottodomini correlati basandosi su quelli già scoperti, aumentando il tasso di rilevamento.
none: nessun filtro (default)basic: filtro base, elimina gli IP wildcard evidentiadvanced: filtro avanzato, valutazione multidimensionale