Найти в Дзене

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

Оглавление
   Изображение: Alex Kotliarskyi (Unsplash)
Изображение: Alex Kotliarskyi (Unsplash)

В этой статье пойдет речь о Kerbrute, инструменте для перечисления учетных записей пользователей Active Directory. Kerbrute популярен среди пентестеров для выполнения внутренних заданий по тестированию на проникновение.

Введение

Kerbrute – это инструмент, используемый для перечисления валидных учетных записей пользователей Active Directory, использующих предварительную аутентификацию Kerberos. Кроме того, Kerbrute может быть использован для осуществления атак на пароли, среди которых брутфорс, перечисление имен пользователей и Password Spraying. Этот инструмент уже много лет применяется тестировщиками на проникновение во время выполнения внутренних задач по тестированию на проникновение. Он изначально был создан Ronnie Flathers (ropnop) совместно с Alex Flores.

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

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

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

-2

Список доступных функций Kerbrute

Как только пользователь скачает и установит инструмент, он сможет просмотреть доступные опции и функции, выполнив следующую команду:

./kerbrute_linux_amd64

Инструмент Kerbrute способен выполнять различные задачи, среди которых атаки брутфорс, Password Spraying и перечисление имен пользователей. Кроме того, также доступны некоторые флаги, которые могут быть очень полезны во время тестирования на проникновение. Во время внутренней оценки безопасности пентестеры часто сталкиваются с функциями и политиками безопасности, которые тормозят процесс пентестинга, поэтому увеличение или уменьшение потоков поможет сделать атаки более скрытыми. Крайне желательно использовать все флаги, доступные в Kerbrute, чтобы получить более точные результаты и лучше проанализировать их.

-3

Перечисление имен пользователей и их поиск

Во время тестирования на проникновение, особенно в среде Active Directory, первоначальная цель любого пентестера – найти валидные имена пользователей. Как только тестировщик на проникновение найдет потенциальных пользователей системы на веб-сайте компании, он сможет проверить, есть ли у них валидные учетные записи или нет, используя Kerbrute. Для этого он составит список потенциальных пользователей, который получит с помощью OSINT (или любым другим способом). Для демонстрации данного процесса был создан список пользователей и сохранен в виде файла с именем «users.txt».

-4

Затем файл был добавлен в Kerbrute – пользователь использует опцию «userenum». Он указывает IP-адрес контроллера домена и доменное имя (в данном случае – «ignite.local»). Инструмент протестирует каждую учетную запись и проверит, существует ли такой пользователь в домене и использует ли он предварительную аутентификацию Kerberos. После проверки пентестер видит, что kapil, aarti, shreya, raj и pawan являются валидными учетными записями, использующими аутентификацию Kerberos. Можно подумать о различных атаках Kerberos, среди которых как SPN и брутфорс. Для точной проверки полученной информации используется команда:

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

-5

Атака Password Spraying

Предположим, пользователь получил пароль («Password@1») на этапе перечисления, он может быть чем угодно: утечкой OSNIT, неправильной конфигурацией службы, общим ресурсом SMB, FTP. Однако пентестер не знает имени владельца полученного пароля. На этапе перечисления имен пользователей было обнаружено пять валидных учетных записей, теперь следует сопоставить полученный пароль с найденными учетными записями. Практика «Password Spraying» похожа на перебор паролей, при котором программа проверяет все пароли для всех пользователей. Однако при использовании «Password Spraying» один пароль проверяется для всех валидных учетных записей. Пентестер создает новый список пользователей и сохраняет его как файл с именем «users.txt». Затем он использует опцию «passwordspray» и предоставляет IP-адрес контроллера домена и доменное имя вместе со списком валидных пользователей и полученным паролем. В итоге три пользователя соответствовали полученному паролю. Можно попробовать войти в систему через RDP, WinRM или SMB. Следует выполнить данную команду:

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

-6

Брутфорс паролей

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

-7

Во-первых, пентестер создает список потенциальных паролей для выполнения атаки брутфорс против домена. Он сохраняет его в виде файла «pass.txt». Затем он использует опцию «bruteuser» и указывает IP-адрес контроллера домена, доменное имя и список потенциальных паролей, а также имя пользователя («aarti»). Kerbrute показывает знак «+» при обнаружении действительного пароля. При проведении пентестинга следует быть осторожным с политиками безопасности, связанными с блокировкой учетной записи. Очень часто требуется подождать от 30 минут до 1 часа, чтобы повторить атаку (иногда даже приходится обращаться к системному администратору, чтобы разблокировать аккаунт вручную). Обычно система блокирует учетную запись после 5 попыток, но некоторые политики безопасности устанавливают лимит в 3 попытки.

Пентестер видит, что пароль пользователя Aarti соответствует одному паролю из списка. Теперь он может использовать валидные учетные данные для входа в систему через RDP, PsExec или Evil-WinRM. Выполняется следующая команда:

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

-8

Брутфорс имен пользователей: комбинации паролей

В данной демонстрации пентестер создает комбинированный список имен пользователей и паролей и попытается проверить, совпадают ли они. Для этого он создает список имен пользователей и паролей и сохраняет его в виде файла «userpass.txt». Он попытается сопоставить имеющиеся данные с помощью (|) вместе с флагом («–»). Пентестер указывает список паролей пользователей, IP-адрес контроллера домена и доменное имя, как он делал это раньше.

Выполнение команды указывает на две валидные учетные записи.

-9

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

-10

Сохранение вывода данных

Экономия времени и ресурсов всегда полезна, независимо от того, касается ли она CTF или участия в реальном проекте. Если пользователь сохранит выходные данные, то ему не придется запускать команду снова и снова, чтобы увидеть ее результаты. Кроме того, наличие вывода данных пригодится в реальной жизни, когда пользователю нужно будет предоставить результаты тестирования клиентам в форме отчета. Можно сохранить выходные данные, используя флаг «-o», указав имя файла. В данном примере пользователь сохраняет выходные данные в виде файла «result.txt».

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

-11

Режим Verbose

Можно также перейти в режим «Verbose» (русск. «подробный режим»), добавив флаг «-v» к команде. В приведенном ниже примере можно увидеть, что, когда Kerbrute не может проверить учетную запись Kerberos, он показывает, что пользователь не существует. Пентестер попытается выполнить перечисление имен пользователей, используя ту же команду, которую он использовал на этапе перечисления имен пользователей ранее, добавив флаг «-v» для получения подробных результатов.

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

-12

Митигирование рисков

Существует множество способов, чтобы укрепить защиту системы.

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

Заключение

В данной статье были рассмотрены возможности инструмента Kerbrute и его особые функции, которые могут позволить злоумышленнику получить доступ ко внутренней сети. На практическом примере были показаны методы использования пентестером внутренней сети с помощью инструмента Kerbrute. Пентестинг включает в себя атаки брутфорс, перечисление имен пользователей и Password Spraying.

Автор переведенной статьи: Subhash Paudel.

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

Актуальные вакансии по ИБ: https://cisoclub.ru/vacancy/. Отправить резюме во все популярные IT-компании: https://cisoclub.ru/jobmail/

Больше интересного материала на cisoclub.ru. Подписывайтесь на нас: VK | Twitter | Rutube | Telegram | Дзен | YouTube.