Найти в Дзене
Life-Hack - Хакер

Подробное руководство по Kerbrute

Kerbrute представляет собой инструмент, используемый для определения валидных учетных записей пользователей Active Directory благодаря предварительной аутентификацией (pre-authentication) Kerberos. Также инструмент используется для подбора паролей: методом перебора (password bruteforce), распыления (password spray). Уже много лет этот инструмент активно применяется специалистами по тестированию на проникновение. Подпишись на наши канал в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды! Сервис Kerberos работает на 88 порту, на контроллерах домена. Данный сервис обеспечивает аутентификацию в среде Active Directory и доступен как для Windows, так и для Linux. Для углубленного изучения процесса Kerberos аутентификации рекомендуется ознакомиться со следующей ссылкой. Kerbrute можно загрузить с официальной страницы инструмента на GitHub. Исходный код утилиты также доступен, кроме того, есть версии для ОС Windows и различных архитектур Linux.
Оглавление

Kerbrute представляет собой инструмент, используемый для определения валидных учетных записей пользователей Active Directory благодаря предварительной аутентификацией (pre-authentication) Kerberos. Также инструмент используется для подбора паролей: методом перебора (password bruteforce), распыления (password spray). Уже много лет этот инструмент активно применяется специалистами по тестированию на проникновение.

Подпишись на наши канал в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды!

Аутентификация Kerberos

Сервис Kerberos работает на 88 порту, на контроллерах домена. Данный сервис обеспечивает аутентификацию в среде Active Directory и доступен как для Windows, так и для Linux. Для углубленного изучения процесса Kerberos аутентификации рекомендуется ознакомиться со следующей ссылкой.

Загрузка Kerbrute

Kerbrute можно загрузить с официальной страницы инструмента на GitHub. Исходный код утилиты также доступен, кроме того, есть версии для ОС Windows и различных архитектур Linux. Мы будем использовать уже собранную версию kerbrute_linux_amd64. Скачать программу можно по приведенной ссылке.

Справка по командам Kerbrute – Перечень доступных возможностей

После загрузки инструмента на Kali Linux список доступных опций можно вывести командой:

./kerbrute_linux_amd64

Во время внутреннего тестирования часто приходится сталкиваться с различными механизмами защиты и политиками безопасности паролей. Умелое использование флагов инструмента (например изменение количества потоков) помогает сделать атаки менее заметными. Настоятельно рекомендуем изучить и использовать флаги Kerbrute.

-2

Выявление валидных пользователей / Перечисление пользователей

При пентесте, особенно в среде Active Directory, первостепенная задача заключается в выявлении валидных пользователей. Если есть возможность получить список потенциальных пользователей с сайта компании, из утечек или в ходе эксплуатации, то мы можем проверить их с использованием Kerbrute. Сохраним список пользователей в файл users.txt.

-3

Далее мы выбираем userenum, указываем IP адрес контроллера домена и название домена (в нашем примере — ignite.local). Инструмент проверит каждый аккаунт и определит наличие пользователя в домене с помощью особенностей предварительной аутентификации Kerberos. Как показано на изображении ниже, пользователи Kapil, Aarti, Shreya, Raj и Pawan действительно существуют в домене. Теперь, имея список валидных пользователей, мы можем заняться перебором паролей. Для этого введите следующее:

./kerbrute_linux_amd64 userenum --dc 192.168.1.19 -d ignite.local users.txt
-4

Password Spray

Предположим, что в процессе тестирования мы получили пароль (например, Password@1). Однако владелец найденного пароля остается неизвестным. После валидации пользователей мы определили пять валидных аккаунтов и теперь можем попробовать сопоставить полученный пароль с этими учетными записями.

Метод атаки "Password Spray" похож на обычный перебор паролей, однако разница состоит в следующем: при обычном подборе пароли пробуются последовательно для каждого отдельного аккаунта, тогда как при атаке "Password Spray" один единственный пароль проверяется для всех существующих пользователей.

Составим и сохраним новый список валидных пользователей в файле users.txt. Выберем опцию passwordspray, укажем IP адрес контроллера домена, имя домена, список валидных пользователей и пароль. Изображение ниже показывает, что пароль подходит для трех УЗ. Далее мы можем попытаться войти в систему через удаленный рабочий стол (RDP), службу WinRM или подключиться по SMB.

Образец команды:

./kerbrute_linux_amd64 passwordspray --dc 192.168.1.19 -d ignite.local users.txt Password@1
-5

Перебор паролей (Password Bruteforce)

Теперь попробуем провести классический перебор паролей для конкретного пользователя. Суть метода состоит в последовательной попытке ввода всех возможных вариантов паролей из заранее подготовленного списка для одной конкретной учетной записи. Здесь мы применяем стандартный список наиболее распространенных паролей, хотя можно экспериментировать с другими вариантами и собственными словарями. Использование мутации паролей или кастомизированных словарей может принести больший успех. Для ознакомления с инструментом для изменения паролей (Crunch) рекомендуем обратиться к статье.

-6

Создадим список паролей в файле pass.txt. Выберем опцию bruteuser, укажем IP адрес контроллера домена, имя домена, файл с паролями и имя пользователя (aarti). Программа выведет знак +, когда обнаружит верный пароль. Важно помнить, что при реальном тестировании нужно учитывать политику блокировки учетных записей, поскольку чрезмерные попытки входа с неправильным паролем могут заблокировать учетную запись.

Подобная ситуация довольно распространена при тестировании на проникновение, и зачастую придется подождать около 30 минут, часа, либо дождаться ручного снятия блокировки администратором. Обычно учётная запись блокируется после пяти неудачных попыток, некоторые организации устанавливают лимит в три попытки. На изображении ниже видно, что пароль пользователя aarti совпал с одним из предложенных в списке.

Образец команды:

./kerbrute_linux_amd64 bruteuser --dc 192.168.1.19 -d ignite.local pass.txt aarti
-7

Перебор комбинаций имя_пользователя:пароль

Теперь мы создадим список (userpass.txt), содержащий комбинации из имени пользователя и соответствующего пароля, и поищем валидную пару:

cat userpass.txt | ./kerbrute_linux_amd64 --dc 192.168.1.19 -d ignite.local bruteforce -

Выполнение команды позволило найти две валидные комбинации.

-8

Сохранение результата

Сохранение вывода избавит вас от необходимости повторно запускать одну и ту же команду. Особенно ценно сохранение результатов в реальных проектах, где вам предстоит подготовить отчет по результатам тестирования. Флаг -o сохранит результат в указанный файл:

./kerbrute_linux_amd64 userenum --dc 192.168.1.19 -d ignite.local users.txt -o result.txt
-9

Режим подробного вывода (Verbose mode)

Можно включить режим подробного вывода, использовав флаг -v. В таком режиме каждая попытка проверки учетной записи сопровождается пояснением. Например, если Kerbrute не может подтвердить наличие учетной записи в домене, то выдается сообщение о том, что пользователь не существует:

./kerbrute_linux_amd64 userenum --dc 192.168.1.19 -d ignite.local users.txt -v
-10

Защита от атак (Mitigation)

Существует ряд мер и методов, позволяющих повысить безопасность:

- Рекомендуется внедрить строгую политику паролей и избегать использования простых и популярных паролей.

- Применение политики блокировки учетных записей способствует снижению риска успешного перебора.

- Внедрение двухфакторной аутентификации (2FA) для всех учетных записей сотрудников.

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

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

Заключение

В статье мы рассмотрели возможности инструмента Kerbrute, которые позволяют злоумышленнику получать доступ к внутренним системам компании. Были изучены такие техники, как распыление паролей ("password spray"), перебор паролей ("password bruteforce") и выявление валидных пользователей ("userenum"). В заключении приведены рекомендации по защите от подобных атак.

Источник перевода

Подпишись на наши канал в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды!