Внимание! На этой странице вы найдете материал урока из архивного курса по пентесту (Тестирование на проникновение во внутреннюю сеть под управлением 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.
