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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/d3mondev/puredns
РазведкаПеречисление DNS и поддоменовСбор информацииПеречисление ПоддоменовDNS-ФаззингАнализ DNSТоп в Анализ DNS №5Топ в DNS-Фаззинг №2Топ в Перечисление DNS и поддоменов №6Топ в Перечисление Поддоменов №6
2.2k190616 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHubd3mondev/puredns

puredns

Высокоскоростной DNS-резолвер и брутфорсер поддоменов с точной фильтрацией wildcard-записей и проверкой отравления DNS для точной разведки.

Репозиторий

Быстрый резолвер доменов и инструмент для брутфорса поддоменов с точной фильтрацией wildcard-записей
Начало работы »

Использование · Как это работает · Спонсорство · ЧаВО

О программе

puredns — это быстрый резолвер доменов и инструмент для брутфорса поддоменов, который может точно отфильтровывать wildcard-поддомены и записи, отравленные DNS.

Он использует massdns — мощный заглушечный DNS-резолвер, для массовых запросов. При достаточной пропускной способности и хорошем списке публичных резолверов он может разрешить миллионы запросов всего за несколько минут. К сожалению, результаты massdns настолько же хороши, насколько хороши ответы, предоставляемые публичными резолверами. Результаты часто загрязнены неверными DNS-ответами и ложными срабатываниями от wildcard-поддоменов.

puredns решает эту проблему с помощью своего алгоритма обнаружения wildcard. Он может отфильтровывать wildcard-записи на основе DNS-ответов, полученных от набора доверенных резолверов. Он также пытается обойти отравление DNS, проверяя ответы с помощью этих доверенных резолверов.

Считаете это полезным? ⭐ Поставьте нам звезду на GitHub — это помогает!

puredns terminal

Возможности

  • Разрешение тысяч DNS-запросов в секунду с помощью massdns и списка публичных DNS-резолверов
  • Брутфорс поддоменов с использованием словаря и корневых доменов
  • Очистка wildcard и обнаружение корней wildcard с минимальным количеством запросов для обеспечения точных результатов
  • Обход балансировки нагрузки DNS при обнаружении wildcard
  • Проверка результатов на отсутствие отравления DNS путем выполнения запросов к списку известных доверенных резолверов
  • Сохранение списка валидных доменов, корней wildcard-поддоменов и чистого вывода massdns, содержащего только валидные записи
  • Чтение списка доменов или слов из stdin и включение тихого режима для простой интеграции в пользовательские конвейеры автоматизации

Спонсорство

Если моя работа приносит вам деньги, подумайте о том, чтобы стать спонсором! Вы можете получить уникальные привилегии!

Это также будет значить ОЧЕНЬ МНОГО ❤️, так как позволит мне продолжать работать бесплатно для сообщества. Но что бы вы ни решили, можете быть уверены, что моё программное обеспечение останется бесплатным и открытым для вашего использования.

Начало работы

Предварительные требования

massdns

Puredns требует massdns на хост-машине. Если путь к бинарному файлу massdns присутствует в переменной окружения PATH, puredns будет работать «из коробки». Хорошим местом для копирования исполняемого файла massdns является /usr/local/bin на большинстве систем. В противном случае вам нужно будет указать путь к бинарному файлу massdns с помощью аргумента командной строки --bin.

Следующее должно работать на большинстве систем на базе Debian. Следуйте официальным инструкциям для получения дополнительной информации.

root@kitploit:~
git clone https://github.com/blechschmidt/massdns.git
cd massdns
make
sudo make install

Список публичных DNS-резолверов

Вам необходимо получить список публичных DNS-серверов для использования puredns. Обратитесь к разделу ЧаВО, чтобы узнать, как составить собственный список рабочих серверов.

Установка

Вы можете скачать готовый бинарный релиз.

Кроме того, вы можете легко скомпилировать последнюю версию. Убедитесь, что Go установлен в вашей системе — поддерживаются два последних основных релиза Go. Обратитесь к официальной странице установки Go для получения инструкций. Затем выполните следующую команду:

root@kitploit:~
go install github.com/d3mondev/puredns/v2@latest

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

Обязательно просмотрите полный список доступных команд и опций с помощью puredns --help.

Если в текущей рабочей директории существует файл resolvers.txt, puredns по умолчанию будет использовать его. В противном случае, если присутствуют файлы ~/.config/puredns/resolvers.txt или ~/.config/puredns/resolvers-trusted.txt, puredns автоматически воспользуется ими как резолверами. Если ни один из этих вариантов недоступен, укажите резолверы для использования с помощью аргументов --resolvers и --resolvers-trusted.

Указание доверенных резолверов необязательно. По умолчанию puredns просто использует 8.8.8.8 и 8.8.4.4.

Брутфорс поддоменов

Вот как выполнить брутфорс огромного списка поддоменов, используя словарь с именем all.txt:

puredns bruteforce all.txt domain.com

Вы также можете выполнить брутфорс нескольких доменов одновременно с помощью опции -d, чтобы загрузить текстовый файл, содержащий домены, вместо указания одного домена в качестве аргумента:

puredns bruteforce all.txt -d domains.txt

Разрешение списка доменов

Вы также можете разрешить список доменов, содержащихся в текстовом файле (по одному на строку).

puredns resolve domains.txt

Работа через stdin

Вы можете передать список доменов для разрешения через stdin:

cat domains.txt | puredns resolve

Или список слов для использования в брутфорсе:

cat wordlist.txt | puredns bruteforce domain.com

Вы также можете добавить ключ -q, чтобы выводить только найденные домены для передачи в другие инструменты:

cat domains.txt | puredns resolve -q | httprobe

Сохранение результатов в файлы

Вы можете сохранить следующую информацию в файлы для повторного использования в своих рабочих процессах:

  • domains: чистый список доменов, которые успешно разрешаются
  • wildcard root domains: список найденных корней wildcard-доменов (например, *.store.yahoo.com)
  • massdns results file (-o Snl текстовый вывод): может использоваться как справочный материал и для извлечения A и CNAME записей.
root@kitploit:~
puredns resolve domains.txt --write valid_domains.txt \
                            --write-wildcards wildcards.txt \
                            --write-massdns massdns.txt

Как это работает

puredns в работе

Вы можете увидеть puredns в действии на домене google.com, используя небольшой словарь из 100 000 самых распространённых поддоменов, на изображении выше.

В рамках своего рабочего процесса puredns автоматически выполняет три шага:

  1. Массовое разрешение через публичные DNS-серверы
  2. Обнаружение wildcard
  3. Проверка

1. Массовое разрешение через публичные DNS-серверы

С помощью massdns puredns выполнит массовое разрешение всех доменов и поддоменов. Он передаёт данные massdns через stdin, что позволяет при необходимости ограничивать количество запросов в секунду и выполнять базовую санитацию сгенерированного списка доменов.

По умолчанию входные домены преобразуются в нижний регистр, и принимаются только записи, содержащие допустимые символы (по сути [a-z0-9.-]). Вы можете отключить это с помощью флага --skip-sanitize.

После этого шага результаты обычно загрязнены: некоторые публичные резолверы отправляют неверные ответы, а wildcard-поддомены могут быстро раздуть результаты.

2. Обнаружение wildcard

Затем puredns использует свой алгоритм обнаружения wildcard для выявления и извлечения всех корней wildcard-поддоменов из файла результатов massdns.

Он будет использовать вывод massdns из шага 1 как DNS-кэш, чтобы минимизировать количество необходимых запросов. Для обеспечения точных результатов может потребоваться проверить кэшированные результаты, выполнив DNS-запрос.

Вы можете пропустить этот шаг, используя флаг --skip-wildcard.

3. Проверка

Для защиты от отравления DNS puredns использует massdns в последний раз, чтобы проверить оставшиеся результаты с помощью доверенных DNS-резолверов. В настоящее время используются внутренние доверенные резолверы 8.8.8.8 и 8.8.4.4. Этот шаг выполняется с меньшей скоростью, чтобы избежать каких-либо ограничений скорости на доверенных резолверах.

Вы можете пропустить этот шаг, используя флаг --skip-validation.

На этом этапе результирующие файлы должны быть свободны от wildcard-поддоменов и отравленных DNS-ответов.

ЧаВО

Как получить резолверы для использования с puredns?

Trickest поддерживает список валидных резолверов здесь: https://github.com/trickest/resolvers

Кроме того, вы можете получить список публичных резолверов с public-dns.info, а затем использовать проект DNS Validator, чтобы оставить только те резолверы, которые предоставляют валидные ответы.

Если ваши публичные резолверы предоставляют puredns неверную информацию, например, отправляя отравленные ответы, некоторые поддомены могут быть потеряны, так как они будут отфильтрованы. *Подсказка: * Избегайте резолверов из стран, которые цензурируют интернет, например, Китай.

Когда у вас есть список пользовательских резолверов, вы можете передать их puredns с помощью аргумента -r или поместив их в файл, расположенный по адресу ~/.config/puredns/resolvers.txt:

puredns resolve domains.txt -r resolvers.txt

Доверенные резолверы по умолчанию: 8.8.8.8 и 8.8.4.4. Если вы хотите изменить их, вы также можете указать собственный список с помощью аргумента --resolvers-trusted или поместив их в файл по адресу ~/.config/puredns/resolvers-trusted.txt. Я провел множество тестов, чтобы найти наилучшие возможные доверенные резолверы для puredns — обязательно тщательно проверяйте свои результаты, если решите их изменить, и отрегулируйте ограничение скорости с помощью --rate-limit-trusted.

puredns resolve domains.txt -r resolvers.txt --resolvers-trusted trusted.txt

Почему в результатах есть домены, которые не разрешаются в IP-адрес?

Puredns не просто игнорирует DNS-ответы, содержащие NXDOMAIN. Иногда эти ответы NXDOMAIN содержат валидные CNAME-записи, указывающие на просроченные домены. Если такие записи присутствуют, они могут указывать на незарегистрированный домен, что позволяет осуществить перехват поддомена.

Если вы получаете домены, которые не разрешаются в IP-адрес, проверьте, содержат ли они CNAME-запись, представляющую интерес:

dig @8.8.8.8 CNAME example.com

Почему wildcard-записи для некоторых доменов не фильтруются правильно?

Наиболее вероятная причина — балансировка нагрузки DNS: иногда вы получаете разные IP-адреса для каждого уникального DNS-запроса. Это может затруднить обнаружение wildcard-поддоменов путем сравнения их DNS-записей.

Вы можете указать количество тестов, которые puredns выполнит для сбора всех различных IP-адресов для поддомена во время обнаружения wildcard. По умолчанию используется 3 теста, что очень мало. Я видел домены с большим количеством балансировки, для которых потребовалось более 50 запросов, чтобы вернуть результаты, которые были не идеальными, но достаточно хорошими.

Вы можете попробовать увеличить количество тестов, выполняемых для обнаружения wildcard-поддоменов, с помощью аргумента --wildcard-tests:

puredns resolve domains.txt --wildcard-tests 50

Почему puredns вылетает с ошибкой нехватки памяти при разрешении очень больших списков?

Для обнаружения wildcard puredns необходимо хранить кэш найденных DNS-ответов. Если ваш список доменов насчитывает сотни миллионов и содержит много wildcard-поддоменов, хост может исчерпать память. Но есть простое решение.

По умолчанию puredns помещает все домены в один пакет, чтобы сэкономить количество DNS-запросов и время выполнения. Если память является проблемой, можно обрабатывать домены в нескольких меньших пакетах с помощью аргумента --wildcard-batch. Я обнаружил, что хороший размер составляет от 1M до 2M поддоменов для VPS с 1 ГБ ОЗУ.

puredns resolve domains.txt --wildcard-batch 1000000

Почему в результатах иногда встречаются дублирующиеся домены?

Puredns не удаляет дубликаты ни на одном этапе своего конвейера. Если входной файл содержит повторяющиеся элементы, такие как одинаковые слова или домены, puredns выведет дублирующиеся элементы. Вы можете убедиться, что входные файлы, предоставляемые puredns, не содержат дубликатов, используя такой инструмент, как sort -u.

Почему в результатах иногда встречаются посторонние домены?

Это, скорее всего, связано с используемыми публичными резолверами. Некоторые из них иногда возвращают ответы, не связанные с запросами, что приводит к появлению случайных доменных имён в выводе. Puredns в настоящее время не обрабатывает этот случай и оставляет пользователю возможность очистить вывод, чтобы убедиться, что найденные домены соответствуют области поиска.

Ресурсы

public-dns.info постоянно обновляет список публичных и бесплатных DNS-резолверов.

DNS Validator можно использовать для составления собственного списка публичных DNS-резолверов.

all.txt wordlist — культовый словарь all.txt от Jhaddix, часто используемый для перечисления поддоменов.

shuffleDNS — хорошая альтернатива, написанная на Go, которая обрабатывает wildcard-поддомены с помощью другого алгоритма.

Вклад

Вы можете внести вклад в puredns следующими способами:

  • Предлагайте новые идеи для функций
  • Сообщайте об ошибках в виде issues
  • Поставьте звезду ⭐ этому репозиторию
  • Распространяйте информацию о puredns
  • Станьте спонсором 🥇 и получите уникальные привилегии

У вас есть идея для потрясающей новой функции? Нашли ошибку, которую хотите исправить? Отлично! Не стесняйтесь создать issue для обсуждения перед созданием pull request.

Я не буду принимать pull request для тривиальных изменений, таких как исправление опечаток, соблюдение лучших практик, незначительные исправления и т.д.

Отказ от ответственности и лицензия

Любые резолверы, включенные в этот репозиторий, представлены только для справки. Автор не несет ответственности за любое неправомерное использование резолверов из этого списка. Пользователь обязан составить список резолверов, которые ему разрешено использовать.

Использование этой программы для атак на цели без согласия незаконно. Пользователь обязан соблюдать все применимые законы. Разработчик не несет никакой ответственности и не отвечает за любое неправомерное использование или ущерб, причиненный этой программой. Пожалуйста, используйте ответственно.

Материалы, содержащиеся в этом репозитории, лицензированы под GNU GPLv3.

Скачать инструмент