Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
dnsx — dnsx — это быстрый и многоцелевой DNS-инструментарий, позволяющий выполнять несколько DNS-запросов по вашему выбору с использованием списка предоставленных пользователем резолверов. | Kitploit
Инструменты/GitHubGitHub/projectdiscovery/dnsx
РазведкаПеречисление DNS и поддоменовСбор информацииУтилиты и фреймворкиПеречисление ПоддоменовDNS-ФаззингАнализ DNSТоп в Анализ DNS №3Топ в DNS-Фаззинг №4Топ в Перечисление DNS и поддоменов №5
2.8k3271231 день назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Топ в Перечисление Поддоменов №5
GitHubprojectdiscovery/dnsx

dnsx

dnsx — это быстрый и многоцелевой DNS-инструментарий, позволяющий выполнять несколько DNS-запросов по вашему выбору с использованием списка предоставленных пользователем резолверов.

РепозиторийСайт
<h1 align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/3923/abdf7c5ef50e7d740b96aad5a151b9ac75700de029a681a6b3dc6b51efe45b7d.png" alt="dnsx" width="200px">
  <br>
</h1>

<h4 align="center">Быстрый многофункциональный DNS-инструментарий, предназначенный для выполнения DNS-запросов</h4>

<p align="center">
<a href="https://goreportcard.com/report/github.com/projectdiscovery/dnsx"><img src="https://goreportcard.com/badge/github.com/projectdiscovery/dnsx"></a>
<a href="https://github.com/projectdiscovery/dnsx/issues"><img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat"></a>
<a href="https://github.com/projectdiscovery/dnsx/releases"><img src="https://img.shields.io/github/release/projectdiscovery/dnsx"></a>
<a href="https://twitter.com/pdiscoveryio"><img src="https://img.shields.io/twitter/follow/pdiscoveryio.svg?logo=twitter"></a>
<a href="https://discord.gg/projectdiscovery"><img src="https://img.shields.io/discord/695645237418131507.svg?logo=discord"></a>
</p>

<p align="center">
  <a href="#features">Возможности</a> •
  <a href="#installation-instructions">Установка</a> •
  <a href="#usage">Использование</a> •
  <a href="#running-dnsx">Запуск `dnsx`</a> •
  <a href="#wildcard-filtering">Wildcard</a> •
  <a href="#-notes">Примечания</a> •
  <a href="https://discord.gg/projectdiscovery">Присоединиться к Discord</a>
</p>


---

`dnsx` — это быстрый многофункциональный DNS-инструментарий, предназначенный для выполнения различных проверок через библиотеку [retryabledns](https://github.com/projectdiscovery/retryabledns). Он поддерживает множественные DNS-запросы, пользовательские резолверы, фильтрацию DNS wildcard по аналогии с [shuffledns](https://github.com/projectdiscovery/shuffledns) и т. д.


# Возможности

<h1 align="left">
  <img src="https://assets.kitploit.com/production/public/readmes/3923/e0be49be16e94055f8ca00845ffa701135d23cba6aca284260e6208fa8c20026.png" alt="dnsx" width="700px"></a>
  <br>
</h1>


 - Простая и удобная утилита для запроса DNS-записей.
 - Поддержка запросов **A, AAAA, CNAME, PTR, NS, MX, TXT, SRV, SOA**
 - Поддержка DNS **Resolution** / **Brute-force**
 - Поддержка пользовательских **resolver**
 - Поддержка нескольких форматов резолверов **(TCP/UDP/DOH/DOT)**
 - Поддержка **stdin** и **stdout**
 - Автоматическая обработка **wildcard**

# Инструкции по установке


Для успешной установки `dnsx` требуется **go1.21**. Выполните следующую команду, чтобы установить последнюю версию:

```sh
go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest
```

# Использование

```sh
dnsx -h
```

Это отобразит справку по инструменту. Ниже перечислены все поддерживаемые параметры.

```console
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)
   -aw, -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)
```

## Запуск dnsx

### Разрешение DNS

Фильтрация активных имён хостов из списка пассивных поддоменов, полученных из различных источников:

```console
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
```

Вывод **A**-записей для заданного списка поддоменов:

```console
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]
```

Извлечение **A**-записей для заданного списка поддоменов:

```console
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
```

Извлечение **CNAME**-записей для заданного списка поддоменов:

```console
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]
```
Извлечение **ASN**-записей для заданного списка поддоменов:
```console
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]
```

Проверка с использованием [кода состояния DNS](https://github.com/projectdiscovery/dnsx/wiki/RCODE-ID-VALUE-Mapping) для заданного списка (под)доменов:

```console
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]
```

Извлечение поддоменов из заданного диапазона сети с помощью запроса `PTR`:

```console
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
```

Извлечение поддоменов из заданного ASN с помощью запроса `PTR`:
```console
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
```
---------

### Пользовательский формат вывода

Флаг `-output-template` (`-ot`) позволяет настроить формат вывода с помощью шаблона вместо стандартного формата со скобками (например, `example.com [A] [104.20.23.154]`). Шаблон задаётся непосредственно в командной строке и управляет представлением разрешённых данных.

Переменные шаблона соответствуют тем же именам полей, которые используются в выводе JSONL (`-json`), поэтому любые из следующих можно указать как `{{field}}`:

`host`, `a`, `aaaa`, `cname`, `ns`, `txt`, `mx`, `srv`, `ptr`, `soa`, `caa`, `ttl`, `resolver`, `status_code`, `cdn-name`, `cdn-type`, `asn`, `query-time`. Удобный псевдоним `{{ip}}` содержит объединённые записи `A` и `AAAA`.

Записи с несколькими значениями (например, несколько записей `A`) объединяются через запятую в пределах одного поля.

```console
echo example.com | dnsx -silent -a -ot '{{host}} {{a}}'

example.com 104.20.23.154,172.66.147.243
```

```console
echo example.com | dnsx -silent -a -ot '{{ip}} - {{host}}'

104.20.23.154,172.66.147.243 - example.com
```

> [!NOTE]
> Если указанное поле не существует или не содержит значения, оно просто опускается в выводе. `-output-template` нельзя комбинировать с `-json` или `-raw`.

---------

### DNS Bruteforce

Брутфорс поддоменов для заданного домена или списка доменов с помощью флагов `d` и `w`:

```console
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
```

Брутфорс целевого поддомена с использованием одного или нескольких ключевых слов, так как флаги `d` или `w` поддерживают файл или ключевые слова, разделённые запятыми:

```console
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
```

Значения принимаются из **stdin** для всех типов ввода (`-list`, `-domain`, `-wordlist`). Флаг `-list` по умолчанию использует `stdin`, но того же можно добиться для других типов ввода, добавив `-` (дефис) в качестве параметра:

```console
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
```

#### DNS Bruteforce с wordlist на основе плейсхолдеров

```bash
$ cat tld.txt

com
by
de
be
al
bi
cg
dj
bs
```

```console
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] 
```

### Фильтрация Wildcard

Особенность `dnsx` — способность обрабатывать **многоуровневые DNS-вилдкарды**, делая это при очень малом числе DNS-запросов. Иногда все поддомены разрешаются, что приводит к большому количеству мусора в выводе. `dnsx` справляется с этим, отслеживая, сколько поддоменов указывают на один IP, и если количество поддоменов превышает определённый порог, он итеративно проверяет вилдкарды на всех уровнях хостов для этого IP.

```console
dnsx -l subdomain_list.txt -wd airbnb.com -o output.txt
```

Чтобы автоматически обнаруживать и фильтровать вилдкардные DNS для нескольких доменов за один запуск, сохраняя выбранный режим вывода:

```console
dnsx -l subdomain_list.txt -auto-wildcard -o output.txt
```

`-auto-wildcard` и `-wd` / `-wildcard-domain` являются взаимоисключающими. Используйте `-wd`, когда нужен существующий ручной режим фильтрации вилдкардов для одного домена; используйте `-auto-wildcard`, когда нужно, чтобы dnsx автоматически обнаруживал корни вилдкардов среди входных данных с разными доменами.

---

### Dnsx как библиотека

Библиотеку можно использовать непосредственно в ваших программах на golang. Приведённые ниже фрагменты кода — пример использования в программах на golang. Подробную информацию о конфигурации и использовании пакета см. [здесь](https://pkg.go.dev/github.com/projectdiscovery/[email protected]/libs/dnsx).

```go
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
}
```

# 📋 Примечания

- По умолчанию `dnsx` проверяет запись **A**.
- По умолчанию `dnsx` использует [резолверы](https://github.com/projectdiscovery/dnsx/blob/43af78839e237ea8cbafe571df1ab0d6cbe7f445/libs/dnsx/dnsx.go#L31) Google, Cloudflare, Quad9.
- Пользовательский список резолверов можно загрузить с помощью флага `r`.
- `-auto-wildcard` автоматически обнаруживает вилдкардные домены среди нескольких регистрируемых корней за один запуск.
- Имя домена (`-wd`) требуется только для ручной фильтрации вилдкардов и не может использоваться вместе с `-auto-wildcard`.
- При использовании ручной фильтрации вилдкардов с `-wd` другие флаги DNS-записей игнорируются, и рекомендуется вывод в формате JSON.
- Разрешение DNS (`l`) и брутфорс DNS (`w`) нельзя использовать вместе.
- Операторы VPN склонны фильтровать интенсивный DNS/UDP-трафик, поэтому инструмент может испытывать потерю пакетов (например, [Mullvad VPN](https://github.com/projectdiscovery/dnsx/issues/221)). См. [это возможное решение](https://github.com/projectdiscovery/dnsx/blob/dev/MULLVAD.md).

`dnsx` создан с 🖤 командой [projectdiscovery](https://projectdiscovery.io).
Скачать инструмент