Pentesting Active Directory: LLMNR (PART 4)
Введение
Link-Local Multicast Name Resolution - это метод атаки, обычно используемый во время тестирования на проникновение в локальную сеть. Она работает за счет использования уязвимости в протоколе Link-Local Multicast Name Resolution, который основан на DNS. Если машина в сети пытается разрешить имя хоста, которое DNS не может разрешить, она использует LLMNR для связи с другими машинами в сети и спрашивает, знает ли кто-нибудь имя этого хоста.
В средах Active Directory LLMNR часто включен и широко используется, но он также оказывает значительное влияние на безопасность. Если несуществующий хост ищется с помощью метода LLMNR, он транслирует запрос всем системам, подключенным к локальной сети. Скомпрометированная машина в сети получит запрос на поиск хоста и может отправить ответ машине-жертве, запрашивая хэш пароля жертвы. Эту атаку можно выполнить с помощью инструмента Responder, запустив python3 responder.py -I <интерфейс> -rdwv.
Взлом хэша NTLMv2 с помощью LLMNR Poisoning предполагает использование инструмента Hashcat. Злоумышленнику необходимо получить хэш пароля и использовать его в качестве входных данных для инструмента Hashcat вместе со списком паролей. Команда для взлома хэша NTLMv2 выглядит так: "hashcat64.exe -m 5600 hash.txt password_list.txt -o cracked.txt
". Эта команда указывает Hashcat на использование режима 5600 для хэшей NTLMv2, указывает входной хэш-файл, список паролей и выходной файл для взломанных паролей. Затем инструмент сравнит хэши во входном файле с паролями в списке и, если будет найдено совпадение, запишет подходящий пароль в выходной файл.
Responder
Responder на отравление протокола
- Responder - это инструмент, используемый для отравления запросов LLMNR, NBT-NS и mDNS, выборочно отвечающий на основе типов запросов, в основном нацеленных на службы SMB.
- Он поставляется предустановленным в Kali Linux и настраивается в файле
/etc/responder/Responder.conf
- Responder отображает перехваченные хэши на экране и сохраняет их в каталоге
/usr/share/responder/logs
- Он поддерживает как IPv4, так и IPv6.
- Версия Responder для Windows доступна здесь.
Запуск Responder
- To run Responder with default settings:
responder -I <Interface>
- For more aggressive probing (with potential side effects):
responder -I <Interface> -P -r -v
- Techniques to capture NTLMv1 challenges/responses for easier cracking:
responder -I <Interface> --lm --disable-ess
- WPAD impersonation can be activated with:
responder -I <Interface> --wpad
- NetBIOS requests can be resolved to the attacker’s IP, and an authentication proxy can be set up:
responder.py -I <interface> -Pv
python3 responder.py -I <interface> -rdwv
The command “python3 responder.py -I <interface> -rdwv
” is used to start Responder in relay mode. The option -I specifies the network interface that Responder will listen on, and the option -rdwv enables LLMNR, NBT-NS, and WPAD rogue server options.
Взлом хэша NTLMv2 с помощью LLMNR Poisoning
hashcat64.exe -m 5600 hash.txt password_list.txt -o crack
Команда “hashcat64.exe -m 5600 hash.txt password_list.txt -o crack
” is used to crack NTLMv2 hashes obtained through LLMNR poisoning. The option -m 5600 specifies the hash mode (NTLMv2), hash.txt is the file containing the hashes, password_list.txt is the file containing the password list, and -o crack is the output file where the cracked passwords will be saved.
responder -I <interface> -rdwv ntlmrelayx.py -tf machines.txt -smb2support ntlmrelayx.py -tf machines.txt -smb2support -i (i for interactive shell)
Подключение оболочки с помощью netcat
Чтобы настроить Responder на ретрансляцию, необходимо отредактировать конфигурационный файл, расположенный по адресу /etc/responder/responder.conf
, и отключить SMB и HTTP. Затем вы можете запустить Responder в режиме ретрансляции с помощью команды responder -I <interface> -rdwv
. Для ретрансляции хэшей NTLMv2 можно использовать команду ntlmrelayx.py
с опциями -tf machines.txt -smb2support
. Параметр -tf указывает на файл, содержащий список целевых IP-адресов, а параметр -smb2support включает поддержку SMBv2. Если вы хотите получить интерактивную оболочку, можно добавить опцию -i. Наконец, вы можете подключиться к оболочке с помощью команды netcat.
Практический пример: Использование Kali и Responder.py
- Пользователь отправляет неверный адрес SMB-доступа \SNARE01
- DNS-сервер отвечает \SNARE01 - НЕ НАЙДЕНО
- Клиент выполняет LLMNR / NBT-NS широковещательную рассылку
- Ответчик сообщает клиенту, что это SNARE01 и принимает хэш NTLMv2
- Responder отправляет ошибку обратно клиенту, так что конечный пользователь ничего не понимает и просто думает, что у него неправильное имя ресурса.
Пример запуска python на локальном IP-адресе 192.168.210.145 и адаптере eth0
python Responder.py -i 192.168.210.145 -I eth0
После запуска Responder.py мы имитируем, что пользователь вводит неправильное имя SMB-сервера, используя SNARE01 вместо SHARE01.
Имитация ошибочного имени SMB-сервера с клиентского компьютера:
В течение нескольких секунд после того, как клиент передал неверное имя сервера, Responder.py ответил на широковещательный запрос и записал хэш NTLMv2 на диск.
Из файла Responder.py на клиентскую машину возвращается следующая ошибка:
Последний шаг - взлом хэша NTLMv2. В зависимости от сложности политики паролей в целевой среде это может занять некоторое время. ocl-hashcat будет лучшим выбором для взлома в автономном режиме, где политика паролей известна/подозревается как более безопасная. Поскольку в тестовой среде пароль намеренно небезопасен, для взлома хэша NTLMv2 используется john:
Оригинальная статья | Перевод: THREAD