Codebra
01 февраля 2026 в 09:55

Урок 13. Перебор DNS-имен (aiodnsbrute) и генерация словарей (Crunch)

Научимся изолировано устанавливать Python-пакеты, чтобы не ломать зависимости, перебирать DNS-имена с помощью aiodnsbrute и генерировать словари утилитой Crunch.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по пентесту (Тестирование на проникновение во внутреннюю сеть под управлением Active Directory). Курс был написан в 2024 году и будет интересен системным администраторам, специалистам по защите данных и другим специалистам.

Полный список уроков доступен по тегу Архивный курс по пентесту Active Directory и на странице первого урока.

Автор статьи никого не призывает к правонарушениям и отказывается нести ответственность за ваши действия. Вся информация предоставлена исключительно в образовательных и ознакомительных целях. Все действия происходят на виртуальных машинах и внутри локальной сети автора. Спасибо!

📝 Кратко
  • Статья посвящена инструментам aiodnsbrute и Crunch для перебора DNS-имен и генерации словарей, соответственно.
  • В уроке также обсуждается администрирование Linux и использование Python-пакета pipx.
  • Упоминается изоляция Python-пакетов для предотвращения нарушения зависимостей.
  • Инструмент aiodnsbrute используется для перебора DNS-имен, а утилита Crunch генерирует словари по шаблону.
  • В статье представлены примеры работы с aiodnsbrute и генерация словарей с помощью Crunch.
  • Обсуждаются флаги и опции для управления инструментами aiodnsbrute и Crunch.
  • Статья также упоминает официальную документацию и статью Crunch для более детального изучения инструментов.

Познакомимся с инструментом aiodnsbrute, который предназначен для асинхронного перебора доменных имен и инструментом Crunch - для генерации словарей. Так же в этом уроке улучшим навыки администрирования Linux и познакомимся с pipx - полезным Python-пакетом.

Установка aiodnsbrute

Прежде чем устанавливать aiodnsbrute, научимся изолировать Python-пакеты, чтобы не сломать зависимости.

Пакет pipx работает аналогично pip, по позволяет устанавливать и запускать Python-пакеты изолировано. Установим его:

sudo apt install pipx

Добавляем путь до окружения:

pipx ensurepath

Устанавливаем aiodnsbrute:

pipx install aiodnsbrute

/home/codebra/.local/bin/aiodnsbrute --help

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

Примеры работы с aiodnsbrute

Для начала создадим файл со словами для перебора. Вордлист у вас может быть готов, сейчас важно показать работу инструмента aiodnsbrute, а далее научимся генерировать свои словари по шаблону при помощи утилиты crunch. Файл wordlist.txt:

admin
meereen
goad
north

Запускаем aiodnsbrute:

aiodnsbrute -w wordlist.txt -vv -t 1024 essos.local

Ничего не найдено. Внимательно смотрим через что резолвились имена (Using recursive DNS with the following servers: ['192.168.186.2']). Хорошо, посмотрим маршруты:

ip r

Информация выше для параллельного знакомства с Linux и понимания, почему aiodnsbrute ведет себя именно так. Утилита aiodnsbrute имеет флаг -r для указания файла с DNS резолверами. Если он один, то можем сделать так:

echo 192.168.56.12 | aiodnsbrute -r - -w wordlist.txt -vv -t 1024 essos.local

Тире после флага -r (-r -) означает ожидание строк из stdin. Флаг -w задает путь до файла со списком слов для проверки, -v отвечает за детализацию вывода информации, -t задает максимальное количество задач для асинхронного выполнения.

Создадим файл resolvers.txt с тремя строками - IP-адреса DC, которые являются DNS-серверами:

192.168.56.10
192.168.56.11
192.168.56.12

Пример с доменом sevenkingdoms.local:

aiodnsbrute -r resolvers.txt -w wordlist.txt -vv -t 1024 sevenkingdoms.local

Для вывода в json или csv используем флаг -o:

aiodnsbrute -r resolvers.txt -w wordlist.txt -o json -vv -t 1024 sevenkingdoms.local

В целом, основные моменты посмотрели, остальное оставляю на самостоятельное изучение. Обязательно обратите внимание на флаг --gethostbyname. Переходим к составлению словарей.

Генерируем словарь для перебора при помощи Crunch

Проводя пентест, нам может понадобится сгенерировать словарь. Для этих целей в Kali Linux встроена утилита Crunch, которая позволяет генерировать все возможные списки слов по указанному шаблону.

crunch минимальная_длина максимальная_длина набор_символов

Утилита Crunch генерирует словари как методом перестановки, так и комбинации. Вывод можно разбивать по количеству строк или размеру файла. Для примера сгенерируем список из чисел от 000 до 999.

crunch 1 3 0123456789 -o words.txt

Предположим, мы знаем что DNS-имя, логин, пароль или еще что-то начинается со слова user, а далее идет порядковый номер. Чтобы сгенерировать по такому шаблону, воспользуемся ключом -t:

crunch 7 7 0123456789 -t user%%% -o words.txt

Это очень простые и примитивные примеры. Для более детального изучения инструмента Crunch рекомендую обратиться к официальной документации или статье Crunch - Инструменты Kali Linux.

В этом уроке мы научились устанавливать Python-пакеты и изолировать их. Познакомились с утилитой aiodnsbrute для перебора DNS-имен и инструментом Crunch для генерации словарей. В следующем уроке научимся захватывать и анализировать трафик в локальной сети.

📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегам Пентест и Active Directory.