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

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

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

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

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

Категории

Все категории
Loading categories
PolarDNS — PolarDNS — это специализированный авторитативный DNS-сервер, подходящий для тестирования на проникновение и исследования уязвимостей. | Kitploit
Инструменты/GitHubGitHub/oryxlabs/polardns
Сканеры уязвимостейАнализ уязвимостейФаззингСетевая безопасностьТестирование на ПроникновениеАнализ DNS
GitHuboryxlabs/polardns

PolarDNS

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

Репозиторий
24919171 год назадПроверено Kitploit
Сайт

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Логотип PolarDNS PolarDNS — это специализированный авторитативный DNS-сервер, написанный на Python 3.x, изначально разработанный как инструмент для тестирования безопасности DNS-резолверов со стороны сервера.

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

_

PolarDNS можно использовать для тестирования:

  • DNS-резолверов (со стороны сервера)
  • DNS-клиентов
  • DNS-библиотек
  • DNS-парсеров и диссекторов
  • любого ПО, обрабатывающего DNS-информацию

Он поддерживает как UDP, так и TCP протоколы, и предоставляет оператору полный контроль над уровнем протокола DNS.

Сервер PolarDNS может создавать множество нестандартных и несоответствующих спецификациям DNS-ответов, ответов, нарушающих RFC, включая крайне аномальные и искажённые DNS-ответы.

Это может быть полезно для:

  • Функционального тестирования
  • Проверки соответствия RFC
  • Исследования уязвимостей

Установка

Доступны три способа установки PolarDNS.

PolarDNS требует Python 3.11 или новее и не имеет дополнительных зависимостей.

Способ 1: Установка через Pip

Это самый простой способ установить и запустить PolarDNS:

pip install polardns
polardns

Способ 2: Традиционная установка

Вы также можете склонировать репозиторий и запустить PolarDNS напрямую:

git clone https://github.com/oryxlabs/PolarDNS.git
cd PolarDNS
python polardns.py

Этот способ рекомендуется, если вы планируете отлаживать или изменять код, либо добавлять новые функции.

Способ 3: Запуск PolarDNS в Docker

Вы также можете запустить PolarDNS в Docker-контейнере:

docker run -p 53:53/tcp -p 53:53/udp oryxlabs/polardns

Запуск PolarDNS

Сервер PolarDNS настраивается через файл конфигурации polardns/polardns.toml.

  • Для целей тестирования конфигурации по умолчанию должно быть достаточно для локального запуска.
  • Однако вы, возможно, захотите изменить конфигурацию, добавив свой домен и IP-адреса серверов имён.

При запуске PolarDNS вы должны увидеть вывод, похожий на следующий:

python polardns.py
1741599804.9039893 | PolarDNS v1.6.1 server starting up
1741599804.9039893 | Using '/path/to/your/polardns/polardns.toml' config file
1741599804.9039893 | Starting listener at tcp://0.0.0.0:53
1741599804.9039893 | Starting listener at udp://0.0.0.0:53

Это означает, что сервер запущен и работает.

Работа с PolarDNS

По умолчанию сервер начинает прослушивание всех интерфейсов на UDP и TCP порту 53 (0.0.0.0:53), готовый отвечать на DNS-запросы.

Вы можете проверить его локально, задав следующий тестовый запрос, который всегда должен разрешаться во что-то.

Запрос в режиме UDP:

dig always.yourdomain.com @127.0.0.1

Запрос в режиме TCP:

dig always.yourdomain.com @127.0.0.1 +tcp

Вы должны получить запись A с IP-адресом 2.3.4.5, как на этом скриншоте:

Пример использования PolarDNS

Это означает, что сервер работает корректно.

Основная концепция

Запрашивая у сервера PolarDNS разрешение чего-либо, вы фактически даёте ему инструкции, как он должен вам ответить. Это означает, что вы (клиент) диктуете серверу PolarDNS, какой именно ответ он должен для вас сгенерировать.

Например, рассмотрим следующий запрос:

dig always.ttl2000000000.slp1500.yourdomain.com @127.0.0.1

Вы снова должны получить запись A с IP-адресом 2.3.4.5, но на этот раз со значением TTL 2 000 000 000 (63,4 года) и после задержки в 1,5 секунды:

Пользовательский TTL и задержка PolarDNS

В приведённом выше примере мы использовали базовую функцию always (которая всегда разрешается во что-то) и объединили её с модификатором ttl для настройки значения TTL и модификатором slp для ожидания перед отправкой ответа.

Функциональные возможности PolarDNS

PolarDNS имеет следующие основные функциональные возможности:

  1. Функции (Features): Они могут создавать различные DNS-ответы. Большинство функций имеют параметры, что позволяет настраивать их поведение для создания разнообразных DNS-ответов.
  2. Модификаторы ответов (Response modifiers): Они могут дополнительно изменять DNS-ответы, выходящие с сервера PolarDNS. Модификаторы не зависят от выбранной функции и могут свободно комбинироваться.

В настоящее время реализовано более 70 различных функций и 19 модификаторов ответов. Используя разные функции и комбинируя их с различными модификаторами ответов, можно создать бесчисленное множество вариантов ответа.

Смотрите прилагаемый каталог всех реализованных функций и модификаторов ответов.

Это даёт PolarDNS возможность создавать крайне необычные, аномальные и даже искажённые DNS-ответы, позволяя оператору увидеть, как принимающая сторона обрабатывает такие ситуации и насколько она технически устойчива и зрела.

Некоторые примеры DNS-ответов, которые может генерировать PolarDNS, включают:

  • Цепочки псевдонимов (CNAME) и циклы псевдонимов
  • Искажения заголовка DNS (ID, флаги, количество секций)
  • Вставку незапрошенных записей (отравление кеша)
  • Вставку произвольных байтов произвольной длины
  • Неполные / пустые / NULL-байтовые ответы
  • Проблемы сжатия (циклы, недопустимые указатели)
  • Медленно передаваемые фрагментированные ответы
  • Недопустимые метки или длины доменных имён
  • Произвольное количество TXT-записей произвольного размера
  • Манипуляции длиной пакета (TCP)
  • И т.д.

Это может привести к обнаружению различных уязвимостей, таких как:

  • Атаки «ленивых доменов» (Sloth domain)
  • Атаки «доменов-фантомов» (Phantom domain)
  • Атаки блокировки доменов
  • Отравление кеша
  • Истощение ресурсов
  • Сбои, DoS

Смотрите презентации BlackHat MEA 2023 (включая слайды BONUS) для получения более подробной информации, дополнительных примеров и сценариев использования.

Тестирование рекурсивных DNS-резолверов

Вот общий обзор того, что вам нужно для начала тестирования рекурсивных DNS-серверов.

  1. Купите домен для тестов, например, example123.com, у вашего любимого регистратора доменов.
  2. Получите два VPS-экземпляра Linux с публичными и статическими IP-адресами — это будут ваши серверы имён.
  3. Разверните сервер PolarDNS на обоих экземплярах.
  4. Отредактируйте файл конфигурации polardns/polardns.toml на каждом экземпляре, изменив имя вашего домена и IP-адреса серверов имён соответствующим образом — одинаковая конфигурация на обоих.
  5. В панели регистратора доменов выберите управление доменом с помощью собственных серверов имён. Вам нужно будет указать первичный и вторичный NS — укажите IP-адреса ваших экземпляров.

Теперь ваша инфраструктура готова для тестирования любого рекурсивного DNS-резолвера по вашему выбору.

Разбивка процесса тестирования

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

dig always.example123.com @<TARGET-RESOLVER-IP>

Например, для тестирования публичного DNS CloudFlare:

dig always.example123.com @1.1.1.1

Во время разрешения целевой DNS-резолвер свяжется с вашими авторитативными серверами имён PolarDNS (управляющими вашим тестовым доменом example123.com), чтобы разрешить запрос.

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