Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ksubdomain — Outil d'énumération de sous-domaines, paquets DNS asynchrones, utilise pcap pour scanner 1600,000 sous-domaines en 1 seconde | Kitploit
Outils/GitHubGitHub/boy-hack/ksubdomain
ReconnaissanceCollecte d'InformationsTests d'IntrusionÉnumération de Sous-domainesAnalyse DNS
GitHubboy-hack/ksubdomain

ksubdomain

Outil d'énumération de sous-domaines, paquets DNS asynchrones, utilise pcap pour scanner 1600,000 sous-domaines en 1 seconde

Voir le dépôt
1.2k162il y a 4 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

KSubdomain : Outil de brute-force de sous-domaines ultra-rapide sans état

Release Go Report Card License

English | Français

KSubdomain est un outil de brute-force de sous-domaines basé sur la technologie sans état, offrant une vitesse de scan inégalée et une utilisation mémoire très faible. En utilisant des sockets bruts pour opérer directement sur la carte réseau, en contournant la pile réseau du noyau, et en combinant un mécanisme fiable de retransmission avec une table d'état, il garantit l'intégrité des résultats. Compatible avec Windows, Linux et macOS, c'est l'outil de prédilection pour la détection massive des actifs DNS.

🚀 Avantages principaux

  • Vitesse fulgurante : Le scan sans état opère directement sur la carte réseau, 7 fois plus rapide que massdns et plus de 10 fois plus rapide que dnsx.
  • Très faible consommation de ressources : Pool d'objets + pool mémoire global, traitement de millions de noms de domaine avec une faible occupation mémoire.
  • Adaptation dynamique du délai d'attente : Basée sur la moyenne mobile exponentielle pondérée (EWMA) du RTT selon la RFC 6298, elle ajuste dynamiquement le délai d'attente, sans réglage manuel.
  • Envoi concurrent sur plusieurs interfaces réseau : Utilisation de l'option --interface répétée pour spécifier plusieurs cartes réseau, cumulant la bande passante et exploitant plusieurs adresses IP de sortie.
  • SDK en flux : API de callback EnumStream/VerifyStream pour traiter les résultats en temps réel.
  • Multi-plateforme : Compatible parfaitement avec Windows, Linux et macOS.

⚡ Comparaison des performances

Test avec 4 cœurs CPU, bande passante 5M, dictionnaire de 100 000 entrées :

📦 Installation

Télécharger le binaire précompilé

Rendez-vous sur les Releases pour télécharger la dernière version correspondant à votre système.

Installation des dépendances :

  • Windows : Installez le pilote Npcap.
  • Linux : Le binaire est statiquement compilé, généralement aucune action requise ; en cas de problème, installez libpcap-dev.
  • macOS : libpcap est fourni par le système, aucune installation nécessaire.

Compilation depuis les sources

root@kitploit:~
git clone https://github.com/boy-hack/ksubdomain.git
cd ksubdomain
# Il est recommandé d'injecter le numéro de version via ldflags
go build -ldflags "-X github.com/boy-hack/ksubdomain/v2/pkg/core/conf.Version=v2.x.y" \
    -o ksubdomain ./cmd/ksubdomain

Ou utilisez go install :

root@kitploit:~
go install github.com/boy-hack/ksubdomain/v2/cmd/ksubdomain@latest

Remarque : Nécessite les droits root ou CAP_NET_RAW (capture avec socket brut).

📖 Mode d'emploi

root@kitploit:~
Usage :
  ksubdomain [options globales] <commande> [options de commande]

Commandes :
  enum, e      Mode énumération : brute-force des sous-domaines d'un domaine principal
  verify, v    Mode vérification : vérifie si une liste de domaines est résolue
  test         Teste la vitesse maximale d'envoi de la carte réseau locale
  device       Affiche les informations sur les cartes réseau disponibles
  help, h      Affiche l'aide

Options globales :
  --help, -h       Affiche l'aide
  --version, -v    Affiche la version

Mode vérification (verify)

Vérifie si les domaines fournis possèdent des enregistrements DNS.

root@kitploit:~
Options :
  --domain, -d          Spécifie un domaine (peut être répété)
  --filename, -f        Lit une liste de domaines depuis un fichier
  --stdin               Lit depuis l'entrée standard
  --bandwidth, -b       Limite de bande passante, ex. 5m, 10m, 100m (par défaut 3m)
  --resolvers, -r       Spécifie les serveurs DNS (utilise ceux intégrés par défaut)
  --output, -o          Chemin du fichier de sortie
  --format, -f          Format de sortie : txt (défaut), json, csv, jsonl
  --silent, -s          Mode silencieux, n'affiche que les domaines (sans bannière ni journal)
  --only-domain, --od   N'affiche que le nom de domaine, sans IP/enregistrement
  --retry               Nombre de tentatives, -1 pour illimité (défaut 3)
  --timeout             Délai d'attente en secondes pour chaque requête (défaut 6)
  --interface, -e       Nom de l'interface réseau (peut être répété pour concurrence)
  --wildcard-filter     Filtre de résolution générique : none (défaut), basic, advanced
  --predict             Active le mode prédiction de sous-domaines
  --quiet, -q           N'affiche pas les résultats à l'écran (écrit seulement dans le fichier)
  --color, -c           Sortie colorée
root@kitploit:~
# Vérifier un/plusieurs domaines
./ksubdomain v -d www.example.com -d mail.example.com

# Depuis un fichier, sauvegarder en txt
./ksubdomain v -f domains.txt -o output.txt

# Entrée par pipe, bande passante 10M, mode silencieux pour chaînage
cat domains.txt | ./ksubdomain v --stdin -b 10m -s --od | httpx -silent

# Filtrage avancé des résolutions génériques, sortie JSONL
./ksubdomain v -f domains.txt --wildcard-filter advanced --format jsonl -o output.jsonl

# Concurrence multi-cartes (cumul de bande passante)
./ksubdomain v -f domains.txt --interface eth0 --interface eth1

Mode énumération (enum)

Brute-force des sous-domaines d'un domaine principal en utilisant un dictionnaire et un algorithme de prédiction.

root@kitploit:~
Options :
  --domain, -d          Domaine principal cible (peut être répété)
  --domain-list, --ds   Fichier contenant plusieurs domaines principaux
  --filename, -f        Chemin du dictionnaire (utilise le dictionnaire intégré par défaut)
  --use-ns-records      Lit les enregistrements NS des domaines et les ajoute aux résolveurs DNS
  (Les autres options sont identiques au mode verify)
root@kitploit:~
# Énumération d'un seul domaine (dictionnaire intégré)
./ksubdomain e -d example.com

# Spécifier un fichier dictionnaire
./ksubdomain e -d example.com -f subdomains.txt -o result.txt

# Activer le mode prédiction + filtrage avancé des résolutions génériques
./ksubdomain e -d example.com --predict --wildcard-filter advanced

# Énumération par lots de plusieurs domaines principaux
./ksubdomain e --domain-list roots.txt -b 10m --format jsonl -o result.jsonl

# Chaînage avec httpx
./ksubdomain e -d example.com --od -s | httpx -silent

Commandes de test / périphérique

root@kitploit:~
# Tester la vitesse maximale d'envoi de la carte réseau
./ksubdomain test

# Afficher les cartes réseau disponibles
./ksubdomain device

✨ Fonctionnalités

Adaptation dynamique du délai d'attente

Inutile de régler manuellement --timeout ; le moteur ajuste dynamiquement les limites supérieure et inférieure du délai d'attente en fonction du RTT mesuré (moyenne mobile exponentielle pondérée, EWMA α=0.125). Cela réduit efficacement les faux négatifs tout en évitant les attentes inutiles.

Envoi concurrent sur plusieurs interfaces réseau

En répétant l'option --interface, vous pouvez utiliser plusieurs cartes réseau pour envoyer simultanément. Plusieurs goroutines partagent le même domainChan en concurrence, réalisant naturellement l'équilibrage de charge :

root@kitploit:~
./ksubdomain e -d example.com --interface eth0 --interface eth1 -b 20m

Mode prédiction

En activant --predict, l'outil prédit des sous-domaines supplémentaires en fonction des sous-domaines déjà découverts, améliorant ainsi le taux de découverte.

Filtre de résolution générique

  • none : Aucun filtre (défaut)
  • basic : Filtrage basique, élimine les IP de résolution générique évidentes
  • advanced : Filtrage avancé, jugement multidimensionnel

Formats de sortie

🔗 Exemples de chaînage d'outils

root@kitploit:~
# Chaînage avec httpx pour détecter les serveurs Web
./ksubdomain e -d example.com -s --od | httpx -silent

# Chaînage avec nuclei pour le scan de vulnérabilités
./ksubdomain e -d example.com -s --od | nuclei -l /dev/stdin

# Traitement en flux JSONL, ne conserver que les enregistrements A
./ksubdomain e -d example.com --format jsonl | jq -r 'select(.type=="A") | .domain'

# Énumération par lots multi-domaines + déduplication
./ksubdomain e --domain-list roots.txt -s --od | sort -u > all_subs.txt

🌐 Remarques par plateforme

macOS :

root@kitploit:~
# Le tampon BPF est petit, il est recommandé de limiter la bande passante
sudo ./ksubdomain e -d example.com -b 5m

WSL/WSL2 :

root@kitploit:~
# Utilise généralement eth0
./ksubdomain e -d example.com --interface eth0

Windows :

root@kitploit:~
# Nécessite d'abord l'installation de Npcap, exécuter en tant qu'administrateur
.\ksubdomain.exe enum -d example.com

🧩 Go SDK

root@kitploit:~
go get github.com/boy-hack/ksubdomain/v2/sdk
root@kitploit:~
import "github.com/boy-hack/ksubdomain/v2/sdk"

scanner := sdk.NewScanner(&sdk.Config{
    Bandwidth:      "5m",
    Retry:          3,
    WildcardFilter: "advanced",
})

// Bloquant, collecte tous les résultats
results, err := scanner.Enum("example.com")

// Callback de flux, traitement en temps réel
err = scanner.EnumStream(ctx, "example.com", func(r sdk.Result) {
    fmt.Printf("%s => %v\n", r.Domain, r.Records)
})

Voir la Documentation SDK et la Documentation API.

🧪 Tests

root@kitploit:~
# Tests unitaires (pas besoin de root)
go test ./pkg/...

# Tests de régression (nécessite root + réseau)
go build -o ksubdomain ./cmd/ksubdomain
sudo go test ./test/regression/... -tags regression -v -timeout 120s

💡 Références

  • Projet KSubdomain original : knownsec/ksubdomain
  • Principe du scan sans état : paper.seebug.org/1052
  • Présentation de KSubdomain : paper.seebug.org/1325

📜 Licence

Licence MIT — voir le fichier LICENSE pour plus de détails.

Télécharger l’outil
OutilMéthodeDuréeSuccès
KSubdomainenvoi via pcap~30 secondes1397
massdnspcap/socket~3 min 29 s1396
dnsxsocket~5 min 26 s1396
FormatDescriptionCas d'utilisation
txtdomaine => enregistrement, sortie en temps réelPar défaut, lecture humaine
jsonJSON complet, écrit après la finAnalyse par programme
csvTableau CSV, écrit après la finAnalyse de données
jsonlUn objet JSON par ligne, sortie en temps réelTraitement en flux, chaînage