Feuille de Triche DNSx DNS Toolkit
Aperçu
DNSx est un toolkit DNS rapide et polyvalent développé par Project Discovery qui permet d’exécuter plusieurs sondes DNS en utilisant la bibliothèque retryabledns. Il est conçu pour effectuer diverses requêtes DNS avec un accent mis sur la vitesse et la fiabilité. DNSx peut gérer plusieurs types d’enregistrements DNS et prend en charge des résolveurs personnalisés, ce qui en fait un outil polyvalent pour la reconnaissance et l’énumération DNS.
Ce qui distingue DNSx des autres outils DNS est sa capacité à traiter efficacement un grand nombre de domaines et ses capacités d’intégration avec d’autres outils de sécurité. Il peut filtrer les enregistrements DNS génériques, effectuer une marche DNS et extraire des informations précieuses des réponses DNS. DNSx est couramment utilisé lors de la phase de reconnaissance des évaluations de sécurité pour recueillir des informations sur les domaines cibles et leur infrastructure.
DNSx prend en charge différents formats d’entrée et peut être facilement intégré à d’autres outils dans un pipeline, ce qui en fait un composant essentiel dans de nombreux flux de travail de tests de sécurité. Sa capacité à filtrer les résultats selon divers critères aide les professionnels de la sécurité à se concentrer sur les cibles les plus pertinentes.
Installation
Utilisation de Go
Would you like me to continue with the remaining sections?```bash
Install using Go (requires Go 1.20 or later)
go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest
Verify installation
dnsx -version
### Using Docker
```bash
# Pull the latest Docker image
docker pull projectdiscovery/dnsx:latest
# Run DNSx using Docker
docker run -it projectdiscovery/dnsx:latest -h
Using Homebrew (macOS)
# Install using Homebrew
brew install dnsx
# Verify installation
dnsx -version
Using PDTM (Project Discovery Tools Manager)
# Install PDTM first if not already installed
go install -v github.com/projectdiscovery/pdtm/cmd/pdtm@latest
# Install DNSx using PDTM
pdtm -i dnsx
# Verify installation
dnsx -version
On Kali Linux
# Install using apt
sudo apt install dnsx
# Verify installation
dnsx -version
Basic Usage
DNS Lookups
# Perform A record lookup for a single domain
dnsx -d example.com -a
# Perform A record lookup for multiple domains
dnsx -d example.com,hackerone.com -a
# Perform A record lookup from a list of domains
dnsx -l domains.txt -a
# Perform A record lookup from STDIN
cat domains.txt|dnsx -a
Record Types
# Query A records (IPv4 addresses)
dnsx -l domains.txt -a
# Query AAAA records (IPv6 addresses)
dnsx -l domains.txt -aaaa
# Query CNAME records (Canonical names)
dnsx -l domains.txt -cname
# Query NS records (Name servers)
dnsx -l domains.txt -ns
# Query TXT records (Text records)
dnsx -l domains.txt -txt
# Query MX records (Mail exchange servers)
dnsx -l domains.txt -mx
# Query SOA records (Start of authority)
dnsx -l domains.txt -soa
# Query PTR records (Pointer records)
dnsx -l domains.txt -ptr
# Query multiple record types
dnsx -l domains.txt -a -cname -ns
Output Options
# Save results to a file
dnsx -l domains.txt -a -o results.txt
# Output in JSON format
dnsx -l domains.txt -a -json -o results.json
# Output in CSV format
dnsx -l domains.txt -a -csv -o results.csv
# Silent mode (only results)
dnsx -l domains.txt -a -silent
Advanced Usage
Resolver Configuration
# Use specific DNS resolvers
dnsx -l domains.txt -a -resolver 1.1.1.1,8.8.8.8
# Use resolvers from a file
dnsx -l domains.txt -a -resolver-file resolvers.txt
# Use system resolvers
dnsx -l domains.txt -a -system-resolver
Response Filtering
# Filter by response containing specific string
dnsx -l domains.txt -a -resp-only -resp "1.2.3.4"
# Filter by response matching regex
dnsx -l domains.txt -a -resp-only -resp-regex "^1\.2\.[0-9]+\.[0-9]+$"
Wildcard Filtering
# Enable wildcard filtering
dnsx -l domains.txt -a -wildcard
# Set wildcard threshold
dnsx -l domains.txt -a -wildcard-threshold 5
DNS Walking
# Enable DNS walking
dnsx -l domains.txt -a -walk
# Set DNS walking threads
dnsx -l domains.txt -a -walk -walk-threads 20
Performance Optimization
Concurrency and Rate Limiting
# Set concurrency (default: 100)
dnsx -l domains.txt -a -c 200
# Set rate limit
dnsx -l domains.txt -a -rate-limit 100
# Set retries
dnsx -l domains.txt -a -retries 3
Timeout Options
# Set timeout for DNS queries (milliseconds)
dnsx -l domains.txt -a -timeout 5000
Optimization for Large Scans
# Use stream mode for large inputs
dnsx -l large-domains.txt -a -stream
# Increase concurrency for faster scanning
dnsx -l domains.txt -a -c 500
Integration with Other Tools
Pipeline with Subfinder
# Find subdomains and resolve them
subfinder -d example.com -silent|dnsx -a -silent
# Find subdomains and check for specific record types
subfinder -d example.com -silent|dnsx -a -cname -silent
Pipeline with HTTPX
# Resolve domains and probe for HTTP services
dnsx -l domains.txt -a -silent|httpx -silent
# Resolve domains, filter by IP, and probe for HTTP services
dnsx -l domains.txt -a -silent -resp "1.2.3.4"|httpx -silent
Pipeline with Naabu
# Resolve domains and scan for open ports
dnsx -l domains.txt -a -silent|naabu -silent
# Resolve domains, filter by IP, and scan for open ports
dnsx -l domains.txt -a -silent -resp "1.2.3.4"|naabu -silent
Output Customization
Custom Output Format
# Output only domain and IP
dnsx -l domains.txt -a -resp-only
# Output with additional information
dnsx -l domains.txt -a -json
# Count unique IPs
dnsx -l domains.txt -a -resp-only|sort -u|wc -l
# Sort output by IP
dnsx -l domains.txt -a -resp-only|sort -t ' ' -k2
Filtering Output
# Filter by IP
dnsx -l domains.txt -a -resp-only|grep "1.2.3.4"
# Filter by domain
dnsx -l domains.txt -a -resp-only|grep "example.com"
# Find unique IPs
dnsx -l domains.txt -a -resp-only|awk '\\\\{print $2\\\\}'|sort -u
Filtrage Avancé
Filtrage IP
# Filter by specific IP
dnsx -l domains.txt -a -resp-only -resp "1.2.3.4"
# Filter by IP range
dnsx -l domains.txt -a -resp-only -resp-regex "^1\.2\.3\.[0-9]+$"
Filtrage de Domaine
# Filter by domain pattern
dnsx -l domains.txt -a -resp-only|grep "api"
# Filter by specific TLD
dnsx -l domains.txt -a -resp-only|grep "\.com$"
Filtrage CNAME
# Find domains with specific CNAME
dnsx -l domains.txt -cname -resp-only -resp "cdn.example.com"
# Find domains with CNAME pointing to specific services
dnsx -l domains.txt -cname -resp-only -resp-regex "amazonaws\.com$"
Fonctionnalités Diverses
Recherche DNS Inversée
# Perform reverse DNS lookup
dnsx -l ips.txt -ptr
# Perform reverse DNS lookup with response filtering
dnsx -l ips.txt -ptr -resp-only -resp "example.com"
Trace DNS
# Perform DNS trace
dnsx -d example.com -trace
# Perform DNS trace with specific resolver
dnsx -d example.com -trace -resolver 1.1.1.1
Vérification de Santé
# Check resolver health
dnsx -hc -resolver 1.1.1.1,8.8.8.8
# Check resolver health with timeout
dnsx -hc -resolver 1.1.1.1,8.8.8.8 -timeout 5000
Dépannage
Problèmes Courants
# Try different resolvers
dnsx -l domains.txt -a -resolver 1.1.1.1,8.8.8.8
# Check resolver health
dnsx -hc -resolver 1.1.1.1,8.8.8.8
```**Problèmes de Résolution**
```bash
# Increase timeout
dnsx -l domains.txt -a -timeout 10000
# Increase retries
dnsx -l domains.txt -a -retries 5
# Reduce concurrency
dnsx -l domains.txt -a -c 50
# Set rate limit
dnsx -l domains.txt -a -rate-limit 50
```**Problèmes de Délai d'Attente**
```bash
# Use stream mode for large inputs
dnsx -l large-domains.txt -a -stream
# Enable verbose mode
dnsx -l domains.txt -a -v
# Show debug information
dnsx -l domains.txt -a -debug
# Show statistics
dnsx -l domains.txt -a -stats
```**Limitation de Débit**
`$HOME/.config/dnsx/config.yaml`
```yaml
# Example configuration file
concurrency: 100
rate-limit: 100
retries: 3
timeout: 5000
resolvers:
- 1.1.1.1
- 8.8.8.8
```**Problèmes de Mémoire**
```bash
# Set DNSx configuration via environment variables
export DNSX_CONCURRENCY=100
export DNSX_RATE_LIMIT=100
export DNSX_RETRIES=3
export DNSX_TIMEOUT=5000
export DNSX_RESOLVERS=1.1.1.1,8.8.8.8
Débogage
| Drapeau | Description |
|---|---|
-d, -domain | Domaine cible à interroger |
-l, -list | Fichier contenant la liste des domaines à interroger |
-a | Rechercher des enregistrements A |
-aaaa | Interroger les enregistrements AAAA |
-cname | Interroger les enregistrements CNAME |
-ns | Requête des enregistrements NS |
-txt | Interroger les enregistrements TXT |
-mx | Rechercher les enregistrements MX |
-soa | Interroger les enregistrements SOA |
-ptr | Rechercher les enregistrements PTR |
-o, -output | Fichier à écrire en sortie |
-json | Écrire la sortie au format JSON |
-csv | Écrire la sortie au format CSV |
-silent | Afficher uniquement les résultats dans la sortie |
-v, -verbose | Afficher la sortie détaillée |
-resolver | Résolveurs DNS à utiliser |
-resolver-file | Fichier contenant des résolveurs DNS |
-system-resolver | Utiliser des system resolvers |
-resp-only | Afficher uniquement la réponse dans la sortie |
-resp | Filtrer la réponse contenant la chaîne |
-resp-regex | Filtrer la réponse correspondant à l’expression régulière |
-wildcard | Activer le filtrage avec caractères génériques |
-wildcard-threshold | Seuil de filtrage générique |
-walk | Activer la marche DNS |
-walk-threads | Nombre de threads de marche DNS |
-c, -concurrency | Nombre de requêtes concurrentes |
-rate-limit | Nombre maximum de requêtes par seconde |
-retries | Nombre de tentatives pour les requêtes ayant échoué |
-timeout | Délai d’attente pour les requêtes DNS en millisecondes |
-stream | Mode stream pour les grandes entrées |
-hc | Vérifier la santé du resolver |
-trace | Effectuer une trace DNS |
-version | Afficher la version de DNSx |
Configuration
Fichier de Configuration
DNSx utilise un fichier de configuration situé à
| Type | Description |
|---|---|
A | Enregistrements d’adresses IPv4 |
AAAA | Enregistrements d’adresses IPv6 |
CNAME | Enregistrements de nom canonique |
NS | Enregistrements de serveur de noms |
TXT | Enregistrements de texte |
MX | Enregistrements d’échange de courrier |
SOA | Début des enregistrements d’autorité |
PTR | Enregistrements Pointer |
https://docs.projectdiscovery.io/tools/dnsx
Variables d’Environnement
https://github.com/projectdiscovery/dnsx
Référence
Options de Ligne de Commande
https://discord.gg/projectdiscovery