dnsgen

Générateur rapide de permutations DNS. Crée des combinaisons de sous-domaines à partir de noms d'hôtes connus en utilisant des préfixes, suffixes et motifs numériques courants pour la découverte de sous-domaines. Fast DNS permutation generator. Creates subdomain combinations from known hostnames using common prefixes, suffixes, and number patterns for subdomain discovery.

↗ https://github.com/ProjectAnte/dnsgen

Overview

dnsgen generates permutations of subdomain names from a list of known hostnames. It creates candidates by combining words extracted from the input with common patterns (dev, staging, api, v1, etc.). Designed to be fast and integrate with massdns or dnsx for bulk resolution.

Installation

pip3 install dnsgen

Basic Usage

Generate permutations from known subdomains

dnsgen subdomains.txt

Pipe directly into massdns for resolution

dnsgen subdomains.txt | massdns -r resolvers.txt -t A -o S -

With custom wordlist

dnsgen -w custom_words.txt subdomains.txt

Output to file

dnsgen subdomains.txt > permutations.txt

Integration Workflows

Full pipeline: passive discovery → permutations → resolution → web probe

subfinder -d example.com -silent | \
  tee known_subs.txt | \
  dnsgen - | \
  massdns -r resolvers.txt -t A -o S - | \
  awk '{print $1}' | \
  sed 's/\.$//' | \
  httpx -silent | \
  tee live_hosts.txt
# With puredns (handles wildcards better)
subfinder -d example.com -silent > subs.txt
dnsgen subs.txt > perms.txt
puredns resolve perms.txt -r resolvers.txt -w resolved.txt

Custom Wordlists

Default words are built-in (extracted from input hostnames) Add custom words for specific targets:

cat > custom.txt << 'EOF'
dev
staging
prod
internal
vpn
api
v1
v2
admin
test
beta
EOF
dnsgen -w custom.txt subdomains.txt

What dnsgen Generates

Input: api.example.com, dev.example.com, mail.example.com

Generated (partial):
  api.dev.example.com
  dev.api.example.com
  api2.example.com
  api-dev.example.com
  dev-api.example.com
  staging.api.example.com
  api.staging.example.com
  v1.api.example.com
  api.v1.example.com
  ...and hundreds more

Tips

  • dnsgen extracts words from input hostnames automatically — no wordlist needed for basic use
  • Always combine with puredns or massdns for resolution (dnsgen only generates, doesn’t resolve)
  • Use after amass/subfinder passive scans to expand coverage with permutation-based discovery
  • Limit custom wordlist size — too many words creates exponential output
Help / Man page
dnsgen [options] <file>

<file>         File with known subdomains (use - for stdin)
-w FILE        Custom wordlist
-l N           Min word length to extract from hostnames (default: 6)
-f             Fast mode (fewer permutations)

Vue d’ensemble

dnsgen génère des permutations de noms de sous-domaines à partir d’une liste de noms d’hôtes connus. Il crée des candidats en combinant des mots extraits de l’entrée avec des motifs courants (dev, staging, api, v1, etc.). Conçu pour être rapide et s’intégrer avec massdns ou dnsx pour une résolution en masse.

Installation

pip3 install dnsgen

Utilisation de base

# Générer des permutations à partir de sous-domaines connus
dnsgen subdomains.txt

# Rediriger directement vers massdns pour la résolution
dnsgen subdomains.txt | massdns -r resolvers.txt -t A -o S -

# Avec une liste de mots personnalisée
dnsgen -w custom_words.txt subdomains.txt

# Sortie vers un fichier
dnsgen subdomains.txt > permutations.txt

Workflows d’intégration

Pipeline complet : découverte passive → permutations → résolution → sondage web

subfinder -d example.com -silent | \
  tee known_subs.txt | \
  dnsgen - | \
  massdns -r resolvers.txt -t A -o S - | \
  awk '{print $1}' | \
  sed 's/\.$//' | \
  httpx -silent | \
  tee live_hosts.txt
# Avec puredns (gère mieux les wildcards)
subfinder -d example.com -silent > subs.txt
dnsgen subs.txt > perms.txt
puredns resolve perms.txt -r resolvers.txt -w resolved.txt

Listes de mots personnalisées

Les mots par défaut sont intégrés (extraits des noms d’hôtes en entrée). Ajoutez des mots personnalisés pour des cibles spécifiques :

cat > custom.txt << 'EOF'
dev
staging
prod
internal
vpn
api
v1
v2
admin
test
beta
EOF
dnsgen -w custom.txt subdomains.txt

Ce que dnsgen génère

Input: api.example.com, dev.example.com, mail.example.com

Generated (partial):
  api.dev.example.com
  dev.api.example.com
  api2.example.com
  api-dev.example.com
  dev-api.example.com
  staging.api.example.com
  api.staging.example.com
  v1.api.example.com
  api.v1.example.com
  ...and hundreds more

Conseils

  • dnsgen extrait automatiquement les mots des noms d’hôtes en entrée : aucune wordlist nécessaire pour une utilisation basique
  • Combinez toujours avec puredns ou massdns pour la résolution (dnsgen ne fait que générer, pas résoudre)
  • À utiliser après les scans passifs amass/subfinder pour étendre la couverture grâce à la découverte par permutation
  • Limitez la taille de la wordlist personnalisée : trop de mots crée une sortie exponentielle
Aide / Page de manuel
dnsgen [options] <file>

<file>         File with known subdomains (use - for stdin)
-w FILE        Custom wordlist
-l N           Min word length to extract from hostnames (default: 6)
-f             Fast mode (fewer permutations)