May 1

Pentesting Active Directory: LLMNR (PART 4)

PART 3

Введение

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 на передачу данных
  • edit /etc/responder/responder.conf
  • Trun off SMB and HTTP
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

  1. Пользователь отправляет неверный адрес SMB-доступа \SNARE01
  2. DNS-сервер отвечает \SNARE01 - НЕ НАЙДЕНО
  3. Клиент выполняет LLMNR / NBT-NS широковещательную рассылку
  4. Ответчик сообщает клиенту, что это SNARE01 и принимает хэш NTLMv2
  5. 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