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
dnsx — dnsx est un kit d'outils DNS rapide et polyvalent permettant d'exécuter plusieurs requêtes DNS de votre choix avec une liste de résolveurs fournis par l'utilisateur. | Kitploit
Outils/GitHubGitHub/projectdiscovery/dnsx
ReconnaissanceÉnumération DNS et Sous-domaineCollecte d'InformationsUtilitaires et FrameworksAnalyse DNS
GitHubprojectdiscovery/dnsx

dnsx

dnsx est un kit d'outils DNS rapide et polyvalent permettant d'exécuter plusieurs requêtes DNS de votre choix avec une liste de résolveurs fournis par l'utilisateur.

Voir le dépôt
2.8k327il y a 4 joursVé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
Site web

dnsx

Un toolkit DNS rapide et polyvalent conçu pour exécuter des requêtes DNS

Fonctionnalités • Installation • Utilisation • Exécuter `dnsx` • Wildcard • Remarques • Rejoindre Discord


dnsx est un toolkit DNS rapide et polyvalent conçu pour exécuter diverses sondes via la bibliothèque retryabledns. Il prend en charge de multiples requêtes DNS, des résolveurs fournis par l'utilisateur, le filtrage DNS des wildcards comme shuffledns, etc.

Fonctionnalités

dnsx

  • Utilitaire simple et pratique pour interroger les enregistrements DNS.
  • Prise en charge des requêtes A, AAAA, CNAME, PTR, NS, MX, TXT, SRV, SOA
  • Prise en charge de la résolution DNS / du Brute-force
  • Prise en charge d'un résolveur personnalisé
  • Prise en charge de plusieurs formats de résolveur (TCP/UDP/DOH/DOT)
  • Prise en charge de stdin et stdout
  • Prise en charge automatique de la gestion des wildcards

Instructions d'installation

dnsx nécessite go1.21 pour être installé correctement. Exécutez la commande suivante pour installer la dernière version :

root@kitploit:~
go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest

Utilisation

root@kitploit:~
dnsx -h

Ceci affichera l'aide de l'outil. Voici tous les commutateurs pris en charge.

root@kitploit:~
INPUT:
   -l, -list string      list of sub(domains)/hosts to resolve (file or stdin)
   -d, -domain string    list of domain to bruteforce (file or comma separated or stdin)
   -w, -wordlist string  list of words to bruteforce (file or comma separated or stdin)

QUERY:
   -a                       query A record (default)
   -aaaa                    query AAAA record
   -cname                   query CNAME record
   -ns                      query NS record
   -txt                     query TXT record
   -srv                     query SRV record
   -ptr                     query PTR record
   -mx                      query MX record
   -soa                     query SOA record
   -any                     query ANY record
   -axfr                    query AXFR
   -caa                     query CAA record
   -recon                   query all the dns records (a,aaaa,cname,ns,txt,srv,ptr,mx,soa,axfr,caa)
   -e, -exclude-type value  dns query type to exclude (a,aaaa,cname,ns,txt,srv,ptr,mx,soa,axfr,caa) (default none)

FILTER:
   -re, -resp          display dns response
   -ro, -resp-only     display dns response only
   -rc, -rcode string  filter result by dns status code (eg. -rcode noerror,servfail,refused)

PROBE:
   -cdn  display cdn name
   -asn  display host asn information

RATE-LIMIT:
   -t, -threads int      number of concurrent threads to use (default 100)
   -rl, -rate-limit int  number of dns request/second to make (disabled as default) (default -1)

UPDATE:
   -up, -update                 update dnsx to latest version
   -duc, -disable-update-check  disable automatic dnsx update check

OUTPUT:
   -o, -output string           file to write output
   -j, -json                    write output in JSONL(ines) format
   -omit-raw, -or               omit raw dns response from jsonl output
   -ot, -output-template string custom output template (e.g. -ot '{{host}} {{a}}')

DEBUG:
   -hc, -health-check  run diagnostic check up
   -silent             display only results in the output
   -v, -verbose        display verbose output
   -raw, -debug        display raw dns response
   -stats              display stats of the running scan
   -version            display version of dnsx
   -nc, -no-color      disable color in output

OPTIMIZATION:
   -retry int                number of dns attempts to make (must be at least 1) (default 2)
   -hf, -hostsfile           use system host file
   -trace                    perform dns tracing
   -trace-max-recursion int  Max recursion for dns trace (default 32767)
   -resume                   resume existing scan
   -stream                   stream mode (wordlist, wildcard, stats and stop/resume will be disabled)
   -timeout value            maximum time to wait for a DNS query to complete (default 3s)

CONFIGURATIONS:
   -auth                         configure projectdiscovery cloud (pdcp) api key (default true)
   -r, -resolver string          list of resolvers to use (file or comma separated)
   -wt, -wildcard-threshold int  wildcard filter threshold (default 5)
   -auto-wildcard                automatically detect wildcard domains for filtering
   -wd, -wildcard-domain string  domain name for manual wildcard filtering (mutually exclusive with -auto-wildcard; other flags will be ignored - json output recommended)

Exécuter dnsx

Résolution DNS

Filtrer les noms d'hôtes actifs à partir de la liste des sous-domaines passifs, obtenus à partir de diverses sources :

root@kitploit:~
subfinder -silent -d hackerone.com | dnsx -silent

a.ns.hackerone.com
www.hackerone.com
api.hackerone.com
docs.hackerone.com
mta-sts.managed.hackerone.com
mta-sts.hackerone.com
resources.hackerone.com
b.ns.hackerone.com
mta-sts.forwarding.hackerone.com
events.hackerone.com
support.hackerone.com

Afficher les enregistrements A pour la liste donnée de sous-domaines :

root@kitploit:~
subfinder -silent -d hackerone.com | dnsx -silent -a -resp

www.hackerone.com [104.16.100.52]
www.hackerone.com [104.16.99.52]
hackerone.com [104.16.99.52]
hackerone.com [104.16.100.52]
api.hackerone.com [104.16.99.52]
api.hackerone.com [104.16.100.52]
mta-sts.forwarding.hackerone.com [185.199.108.153]
mta-sts.forwarding.hackerone.com [185.199.109.153]
mta-sts.forwarding.hackerone.com [185.199.110.153]
mta-sts.forwarding.hackerone.com [185.199.111.153]
a.ns.hackerone.com [162.159.0.31]
resources.hackerone.com [52.60.160.16]
resources.hackerone.com [3.98.63.202]
resources.hackerone.com [52.60.165.183]
resources.hackerone.com [read.uberflip.com]
mta-sts.hackerone.com [185.199.110.153]
mta-sts.hackerone.com [185.199.111.153]
mta-sts.hackerone.com [185.199.109.153]
mta-sts.hackerone.com [185.199.108.153]
gslink.hackerone.com [13.35.210.17]
gslink.hackerone.com [13.35.210.38]
gslink.hackerone.com [13.35.210.83]
gslink.hackerone.com [13.35.210.19]
b.ns.hackerone.com [162.159.1.31]
docs.hackerone.com [185.199.109.153]
docs.hackerone.com [185.199.110.153]
docs.hackerone.com [185.199.111.153]
docs.hackerone.com [185.199.108.153]
support.hackerone.com [104.16.51.111]
support.hackerone.com [104.16.53.111]
mta-sts.managed.hackerone.com [185.199.108.153]
mta-sts.managed.hackerone.com [185.199.109.153]
mta-sts.managed.hackerone.com [185.199.110.153]
mta-sts.managed.hackerone.com [185.199.111.153]

Extraire les enregistrements A pour la liste donnée de sous-domaines :

root@kitploit:~
subfinder -silent -d hackerone.com | dnsx -silent -a -resp-only

104.16.99.52
104.16.100.52
162.159.1.31
104.16.99.52
104.16.100.52
185.199.110.153
185.199.111.153
185.199.108.153
185.199.109.153
104.16.99.52
104.16.100.52
104.16.51.111
104.16.53.111
185.199.108.153
185.199.111.153
185.199.110.153
185.199.111.153

Extraire les enregistrements CNAME pour la liste donnée de sous-domaines :

root@kitploit:~
subfinder -silent -d hackerone.com | dnsx -silent -cname -resp

support.hackerone.com [hackerone.zendesk.com]
resources.hackerone.com [read.uberflip.com]
mta-sts.hackerone.com [hacker0x01.github.io]
mta-sts.forwarding.hackerone.com [hacker0x01.github.io]
events.hackerone.com [whitelabel.bigmarker.com]

Extraire les enregistrements ASN pour la liste donnée de sous-domaines :

root@kitploit:~
subfinder -silent -d hackerone.com | dnsx -silent  -asn

b.ns.hackerone.com [AS13335, CLOUDFLARENET, US]
a.ns.hackerone.com [AS13335, CLOUDFLARENET, US]
hackerone.com [AS13335, CLOUDFLARENET, US]
www.hackerone.com [AS13335, CLOUDFLARENET, US]
api.hackerone.com [AS13335, CLOUDFLARENET, US]
support.hackerone.com [AS13335, CLOUDFLARENET, US]

Sonder à l'aide du code d'état DNS sur la liste donnée de (sous-)domaines :

root@kitploit:~
subfinder -silent -d hackerone.com | dnsx -silent -rcode noerror,servfail,refused

ns.hackerone.com [NOERROR]
a.ns.hackerone.com [NOERROR]
b.ns.hackerone.com [NOERROR]
support.hackerone.com [NOERROR]
resources.hackerone.com [NOERROR]
mta-sts.hackerone.com [NOERROR]
www.hackerone.com [NOERROR]
mta-sts.forwarding.hackerone.com [NOERROR]
docs.hackerone.com [NOERROR]

Extraire les sous-domaines d'une plage réseau donnée à l'aide de la requête PTR :

root@kitploit:~
echo 173.0.84.0/24 | dnsx -silent -resp-only -ptr

cors.api.paypal.com
trinityadminauth.paypal.com
cld-edge-origin-api.paypal.com
appmanagement.paypal.com
svcs.paypal.com
trinitypie-serv.paypal.com
ppn.paypal.com
pointofsale-new.paypal.com
pointofsale.paypal.com
slc-a-origin-pointofsale.paypal.com
fpdbs.paypal.com

Extraire les sous-domaines d'un ASN donné à l'aide de la requête PTR :

root@kitploit:~
echo AS17012 | dnsx -silent -resp-only -ptr 

apiagw-a.paypal.com
notify.paypal.com
adnormserv-slc-a.paypal.com
a.sandbox.paypal.com
apps2.paypal-labs.com
pilot-payflowpro.paypal.com
www.paypallabs.com
paypal-portal.com
micropayments.paypal-labs.com
minicart.paypal-labs.com

Format de sortie personnalisé

L'option -output-template (-ot) vous permet de personnaliser le format de sortie à l'aide d'un modèle, au lieu de la disposition par défaut entre crochets (par exemple example.com [A] [104.20.23.154]). Vous spécifiez le modèle directement sur la ligne de commande pour contrôler la façon dont les données résolues sont présentées.

Les variables du modèle correspondent aux mêmes noms de champs utilisés dans la sortie JSONL (-json), donc n'importe lequel des éléments suivants peut être référencé comme {{field}} :

host, a, aaaa, cname, ns, txt, mx, srv, ptr, soa, caa, ttl, resolver, status_code, cdn-name, cdn-type, , . Un alias pratique contient les enregistrements combinés et .

Les enregistrements avec plusieurs valeurs (par exemple plusieurs enregistrements A) sont joints par des virgules dans un seul champ.

root@kitploit:~
echo example.com | dnsx -silent -a -ot '{{host}} {{a}}'

example.com 104.20.23.154,172.66.147.243
root@kitploit:~
echo example.com | dnsx -silent -a -ot '{{ip}} - {{host}}'

104.20.23.154,172.66.147.243 - example.com

[!NOTE] Si un champ spécifié n'existe pas ou ne contient pas de valeur, il est simplement omis de la sortie. -output-template ne peut pas être combiné avec -json ou -raw.


Bruteforce DNS

Brute force de sous-domaines pour un domaine ou une liste de domaines donné à l'aide des options d et w :

root@kitploit:~
dnsx -silent -d facebook.com -w dns_worldlist.txt

blog.facebook.com
booking.facebook.com
api.facebook.com
analytics.facebook.com
beta.facebook.com
apollo.facebook.com
ads.facebook.com
box.facebook.com
alpha.facebook.com
apps.facebook.com
connect.facebook.com
c.facebook.com
careers.facebook.com
code.facebook.com

Brute force de sous-domaines ciblés en utilisant une ou plusieurs entrées de mots-clés, car les options d ou w prennent en charge les entrées de fichier ou de mots-clés séparés par des virgules :

root@kitploit:~
dnsx -silent -d domains.txt -w jira,grafana,jenkins

grafana.1688.com
grafana.8x8.vc
grafana.airmap.com
grafana.aerius.nl
jenkins.1688.com
jenkins.airbnb.app
jenkins.airmap.com
jenkins.ahn.nl
jenkins.achmea.nl
jira.amocrm.com
jira.amexgbt.com
jira.amitree.com
jira.arrival.com
jira.atlassian.net
jira.atlassian.com

Les valeurs sont acceptées depuis stdin pour tous les types d'entrée (-list, -domain, -wordlist). L'option -list prend par défaut stdin, mais on peut obtenir le même résultat pour les autres types d'entrée en ajoutant un - (tiret) comme paramètre :

root@kitploit:~
cat domains.txt | dnsx -silent -w jira,grafana,jenkins -d -

grafana.1688.com
grafana.8x8.vc
grafana.airmap.com
grafana.aerius.nl
jenkins.1688.com
jenkins.airbnb.app
jenkins.airmap.com
jenkins.ahn.nl
jenkins.achmea.nl
jira.amocrm.com
jira.amexgbt.com
jira.amitree.com
jira.arrival.com
jira.atlassian.net
jira.atlassian.com

Bruteforce DNS avec liste de mots basée sur un marqueur de position

root@kitploit:~
$ cat tld.txt

com
by
de
be
al
bi
cg
dj
bs
root@kitploit:~
dnsx -d google.FUZZ -w tld.txt -resp

      _             __  __
   __| | _ __   ___ \ \/ /
  / _' || '_ \ / __| \  / 
 | (_| || | | |\__ \ /  \ 
  \__,_||_| |_||___//_/\_\ v1.1.2

      projectdiscovery.io

google.de [142.250.194.99] 
google.com [142.250.76.206] 
google.be [172.217.27.163] 
google.bs [142.251.42.35] 
google.bi [216.58.196.67] 
google.al [216.58.196.68] 
google.by [142.250.195.4] 
google.cg [142.250.183.131] 
google.dj [142.250.192.3] 

Filtrage des wildcards

Une fonctionnalité spéciale de dnsx est sa capacité à gérer les wildcards DNS multi-niveaux, et ce avec un nombre très réduit de requêtes DNS. Parfois, tous les sous-domaines résolvent, ce qui génère beaucoup de bruit dans la sortie. La façon dont dnsx gère cela est en gardant une trace du nombre de sous-domaines pointant vers une IP et si le nombre de sous-domaines dépasse un certain seuil, il vérifiera les wildcards sur tous les niveaux des hôtes pour cette IP de manière itérative.

root@kitploit:~
dnsx -l subdomain_list.txt -wd airbnb.com -o output.txt

Pour détecter et filtrer automatiquement les wildcards DNS sur plusieurs domaines en une seule exécution tout en conservant le mode de sortie sélectionné :

root@kitploit:~
dnsx -l subdomain_list.txt -auto-wildcard -o output.txt

-auto-wildcard et -wd / -wildcard-domain sont mutuellement exclusifs. Utilisez -wd lorsque vous souhaitez conserver le flux de filtrage manuel des wildcards sur un seul domaine ; utilisez -auto-wildcard lorsque vous souhaitez que dnsx détecte automatiquement les racines de wildcards sur des entrées multi-domaines.


Dnsx en tant que bibliothèque

Il est possible d'utiliser la bibliothèque directement dans vos programmes Go. Les extraits de code suivants sont un exemple d'utilisation dans des programmes Go. Veuillez vous référer ici pour la configuration détaillée du package et son utilisation.

root@kitploit:~
package main

import (
	"fmt"

	"github.com/projectdiscovery/dnsx/libs/dnsx"
)

func main() {
	// Create DNS Resolver with default options
	dnsClient, err := dnsx.New(dnsx.DefaultOptions)
	if err != nil {
		fmt.Printf("err: %v\n", err)
		return
	}

	// DNS A question and returns corresponding IPs
	result, err := dnsClient.Lookup("hackerone.com")
	if err != nil {
		fmt.Printf("err: %v\n", err)
		return
	}
	for idx, msg := range result {
		fmt.Printf("%d: %s\n", idx+1, msg)
	}

	// Query
	rawResp, err := dnsClient.QueryOne("hackerone.com")
	if err != nil {
		fmt.Printf("err: %v\n", err)
		return
	}
	fmt.Printf("rawResp: %v\n", rawResp)

	jsonStr, err := rawResp.JSON()
	if err != nil {
		fmt.Printf("err: %v\n", err)
		return
	}
	fmt.Println(jsonStr)

	return
}

📋 Remarques

  • Par défaut, dnsx vérifie l'enregistrement A.
  • Par défaut, dnsx utilise les résolveurs Google, Cloudflare, Quad9 resolver.
  • Une liste de résolveurs personnalisée peut être chargée à l'aide de l'option -r.
  • -auto-wildcard détecte automatiquement les domaines wildcard sur plusieurs racines enregistrables en une seule exécution.
  • Le nom de domaine (-wd) est requis uniquement pour le filtrage manuel des wildcards et ne peut pas être utilisé avec -auto-wildcard.
  • Lors de l'utilisation du filtrage manuel des wildcards avec -wd, les autres options d'enregistrement DNS sont ignorées et la sortie JSON est recommandée.
  • La résolution DNS (-l) et le brute-force DNS (-w) ne peuvent pas être utilisés ensemble.
  • Les opérateurs VPN ont tendance à filtrer le trafic DNS/UDP élevé, par conséquent l'outil peut subir des pertes de paquets (par ex. Mullvad VPN). Consultez cette solution potentielle.

dnsx est fait avec 🖤 par l'équipe projectdiscovery.

Télécharger l’outil
asn
query-time
{{ip}}
A
AAAA