Статья eternalrelayx.py - ретрансляция NTLM без прав администратора и эксплуатация ETERNALBLUE

NokZKH

Переводчик
Забанен
Регистрация
09.02.2019
Сообщения
99
Реакции
121
Пожалуйста, обратите внимание, что пользователь заблокирован
Вступление

В этом посте мы расскажем о том, как выполнить атаку EternalRelay - технику атаки, которая повторно использует соединения SMB без прав администратора во время атаки NTLM для запуска ETERNALBLUE против узлов, на которых работают уязвимые версии операционной системы Windows. Эта атака дает злоумышленнику возможность выполнить удаленное выполнение кода в контексте привилегий SYSTEM для уязвимых хостов Windows без необходимости использования локальных привилегий администратора или учетных данных.

Сценарий атаки
  • Подключен к локальному сегменту внутренней сети.
  • Может отправлять трафик широковещательного протокола на хосты внутри нашего сегмента внутренней сети.
  • Нет учетных данных для локальных или доменных учетных записей.
  • Злоумышленник не присоединен к Active Directory.
  • Цели, затронутые ETERNALBLUE, доступны в нашем сегменте сети.
Преимущества
  • Нет учетных данных или подобранного хэша
  • Никаких прокси или прокси-цепей не требуется.
  • Нет необходимости присоединяться к домену.
  • Учетные данные, не относящиеся к администратору, все еще могут быть использованы для получения RCE в контексте привилегий SYSTEM для уязвимых хостов.
  • Простота в использовании любого типа полезной нагрузки, которую мы хотим для пост-эксплуатации сторонних производителей / C2.
  • Возможности могут быть расширены для поддержки всех вариантов ETERNALBLUE.
Как это устроено

1. Произвольно передаем учетные данные отравленного клиента целевым объектам ETERNALBLUE.

2. Если жертва ретрансляции не является администратором (если цель ретранслятора возвращает сообщение rpc_access_denied для ретранслируемых учетных данных), аутентифицированное соединение SMB для ретранслируемого пользователя используется для выполнения настройки TreeConnectAndX для общего ресурса IPC $ цели и создания Tree ID(TID).

3. TID используется для выполнения ETERNALBLUE эксплуатаций против цели. После отправки этой части эксплойта пакет оценивается для конкретного retStatus.

4. Если условие retStatus выполнено, мы сможем продолжить оставшуюся часть эксплойта и достичь RCE.

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

6. Отключите TID, выйдите из системы и закройте повторно используемое соединение SMB.

7. Поток SMB завершен.

Как это сделано
Скрипт eternalrelayx.py включен в измененную версию пакета, найденную в папке проекта eternalrelayx. Это просто измененная версия скрипта ntlmrelayx.py, написанного dirkjanm, который можно найти в официальной версии impacket, поддерживаемой SecureAuthCorp на Github. Функциональность ETERNALBLUE, добавленная в проект eternalrelayx, основана на проекте эксплойтов MS17–010, разработанном Sleya.

Поддерживаемые цели
В настоящее время eternalrelayx.py является проверкой концепции для демонстрации метода атаки и поддерживает использование ETERNALBLUE для уязвимых выпусков Windows 7 SP1 и Windows Server 2008 R2. Фактический код эксплойта, используемый в PoC, представляет собой слегка измененную копию кода Worawit Wang'seternalblue_win7.py (однако, код эксплойта zzz_exploit.py, включенный в его проект MS17–010, в настоящее время интегрируется в eternalrelayx, чтобы значительно повысить надежность и практичность использование этого инструмента во всех уязвимых версиях Windows).

Пробная атака
Ниже мы рассмотрим простую демонстрацию использования eternalrelayx.py PoC для (чрезвычайно простой) установки Windows 7 SP1 / Windows Server 2008 R2 Active Directory.

Поиск реле Targets
Во-первых, мы найдем Хосты в нашей сети, которые не выполняют подписание SMB. Ниже CrackMapExec (CME) используется для проверки нашей локальной подсети для доступных серверов SMB. Использование CME с --gen-relay-list генерирует список адресов IPv4 для SMB-серверов, которые не выполняют подписи SMB.


c-nA6sadzFxmd_s25xo7Qz0Oon5lOY_t5aSUBSxuP5rjAxxr5eWsgWPoUW971fiWGuqSiXBXdPI8Y2swopGMSqmGmgyNqgyx9ROTVkPtNLzkcM-dvkGp2-dJ_TByGlT7gYpytjiu




CME используется, чтобы обнаружить цели на Windows, которые поддерживают SMBv1 и не обеспечивают подписание SMB.

Поиск ETERNALBLUE Целей
Сформированный список целей NTLM может быть использован для проведения дальнейшего перечисления и найти цели, которые (скорее всего) уязвимы для MS17-010. Выход из CME выше показывает Windows 7 Professional SP1 (7601) рабочую станцию, которая не обеспечивает подписание SMB и поддерживает связь по SMBv1.

Хотя эта рабочая станция выглядит как идеальная цель для нашей атаки, давайте попробуем проверить еще раз (если это возможно), используя модуль для обнаружения MS17-010 включено в Metasploit.


g_2ITqwJDoiQcqibcyw9mRWGUeBln-uyUzxLnErlUzKXIZ8W16POBQc21TQqC7H0yJyvSbnOWYF0CGfnQmy_qJERxeCPFfOCcNCRMAZbPYFXTFxe4R04xikUSAPHybk7E-NNuFr7




Создание Payload
Поскольку eternalrelayx.py будет использовать одну полезную нагрузку BIN, любой необработанный шелл-код, сгенерированный из сторонних инструментов, должен быть пригоден для использования (например, Cobalt Strike Beacon) и не должен превышать 2000 байтов. В следующем примере используются демонстрационные инструкции для Meterpreter, включенные в скрипт eternalblue_sc_merge.py, написанный Worawit Wang. Генерация полезной нагрузки выглядит примерно так:

• Генерация сырых 32-битных и 64-битных шеллкодов Windows Meterpreter в файлы BIN.

• Компилировать 32-битный и 64-битный шелл-код ядра Windows с NASM.

• Объединение полезных нагрузок режима пользователя и режима ядра в одну полезную нагрузку для каждой архитектуры процессора.

• Объединить 32-разрядные и 64-разрядные полезные данные в конечную полезную нагрузку.

TbrcKMmN8HEHVUN3SvKOCx_UQ6aZ0NJokf8GveNkxUqDhDcqZWnj26uqrAm8Xw8Qbiq_jrZVv6OolibQWxQmTUOQDI-YZ_qMuHowYHDyzZeDRrCOkq0MIu8TbTBORW004G78GYZY


Простой скрипт Python включен в проект eternalrelayx. Он используется для создания полезной нагрузки Meterpreter, для атаки EternalRelay.


Настройка Payload Handler
Сервер обратного вызова / обработчик полезных данных должен быть настроен. В этом пошаговом руководстве мы будем использовать Metasploit для создания и настройки обработчика Meterpreter. RC-файл включен в проект eternalrelayx, который можно использовать для автоматического запуска нашего обработчика полезных данных.

Eh5qKgvB2DRTQHYaEP68HTuh4xKbsn5-p4-UZuEg5x0nEkmQp6jNMUWTXdx_7Ay8ObodmkPVEoyv8yxhWpkf_KN9AiUQoDmYZ4-IPdvqMgBjckTKx4EiwqkBN5DIYFrg_eN-N4nO


Файл RC в комплекте с eternalrelayx.py загружается в Metasploit (msfconsole), чтобы настроить и запустить наш обработчик полезной нагрузки.

Примечание: Значения LPORT по умолчанию в файле RC будет необходимо изменить для каждой полезной нагрузки, если значения по умолчанию порт Meterpreter для полезной нагрузки используются разные (4444 для 64-разрядных и 4445 для 32-разрядных по умолчанию).

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

Во-первых, нам нужно отредактировать файл конфигурации Responder (Responder.conf), чтобы Responder работал с инструментами релейной атаки. Обычно он будет размещать свои собственные произвольные серверные прослушиватели для различных протоколов (SMB, HTTP и т. Д.), Отравляя узлы в целевой сети. Поскольку мы хотим передать аутентификацию удаленным целевым объектам в сети (а не просто перехватывать и (пытаться) взломать хэши NetNTLMv1 или NetNTLMv2), мы отключим серверы SMB, HTTP и HTTPS для Responder.

ZtRPwnrUclw4z1YPzHMXyfNAFrx8kBrPXLtGR-koooppRaKjeCjg1x4TamVMKjCba0nL426DweQmxgdSayuTleJp9vUmiApbe-73btHINB49ASbNQLR2CrZF2H4970gukLwdIDU3


Responder настроен на работу без включенных серверов SMB, HTTP и HTTPS. Это позволяет использовать Responder для отравления атак без обработки соединений с сервером или попыток аутентификации.

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

ZJIqpwL69N1A8rhmgJloXVRP-4qZjks294xC_zmyee9sjke31WTyFWEJznBtonrcJR23K02fCgIBHpqEqnapO8XL9EHPpcHvfqea0M7az4V-H5m49hw1b870Mr_v_-yy1KavswEn


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

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

odWhwcg8J46qOoZS3WmhBvhuVcubTK47_FwVyVyzA_ytx2R2UJy0Y5rwYAgvYZ3Nn7B0LDY4_hI6X1crSKwANnQHSdpV8rh4hIvoMg5T04JafYKdZIyK2cdND0kWTlpI8S0NvFq3


Попытка соединения с именем хоста, который не существует в локальной сети инициирует поиск NBNS.

Запуск Eternalrelayx.py
После того, как отключение жертвы от сети настроено и работает правильно, eternalrelayx.py используется для ожидания аутентификации клиента-жертвы. Как только контекст привилегии жертвы ретранслятора подтвержден, начинается атака против цели (ов) ретрансляции.

6IJLLZoKK2xdTJ0lzuPahFNKgZRe05pEJQF-X7MQmuhGGJQMFg5xpm7_txXLF-i97wLftND8mEsyhvohy7Lgorg1jYq-V-J23GjPuRGOhpRRyOW1lFMQ_y52G2C9b_oGY-0EoacM


Пользователь не-Admin передается с помощью eternalrelayx.py, который успешно запускает атаку против нашей цели.

Meterpreter Обратный звонок и выполнение кода
После завершения атаки наш обработчик полезных данных получает обратный вызов от жертвы, и создается сеанс Meterpreter с привилегиями SYSTEM. Такие команды, как sysinfo и getuid, можно использовать для сбора базовой информации о скомпрометированной в данный момент системе.

1YGL7yCSb9_o-1jSBhZqyTIqZV7Y6QDKtj2N4jEjnwgQPr-fq9xkHfY-y880UhgAaOgZ8QXq6a8bd-W5MawNOfL67fHPvRdGXgqgvNFViW2hkKDMw4E7y6nC4p84BT9qSC7vMvOY


Обработчик полезной нагрузки Meterpreter получает обратный вызов от полезной нагрузки на порт 4444.

Дополнительные Payloads
В настоящее время я полностью протестировал eternalrelayx.py с Meterpreter. Другие методы полезной нагрузки для eternalrelayx.py в настоящее время тестируются и документируются для дополнительной поддержки C2 и поддержки инфраструктуры после эксплуатации (Cobalt Strike, Empire и т. Д.).

Скачать
Проект eternalrelayx можно найти здесь - https://www.github.com/k0fin/eternalrelayx

Особенности
• Интеграция zzz_exploit.py для более надежного и практического использования во всех уязвимых версиях Windows
• Возможность использования пользовательских 1-линейных полезных нагрузок (PowerShell и т. Д.) Для EternalRelay RCE
• Использование жертв ретрансляции NTLM для простого сканирования / обнаружения наличия уязвимости MS17–010 SMBv1, затрагивающей цели ретрансляции Windows.



Источник: https://xss.pro
Переводчик статьи - NokZKH
 

Вложения

  • 1_1ovLVWxanKOInlOPnW-_sA.png
    1_1ovLVWxanKOInlOPnW-_sA.png
    7.7 КБ · Просмотры: 29
  • pasted image 0.png
    pasted image 0.png
    12.9 КБ · Просмотры: 30
  • pasted image 0 (1).png
    pasted image 0 (1).png
    11.6 КБ · Просмотры: 29
  • pasted image 0 (2).png
    pasted image 0 (2).png
    47.7 КБ · Просмотры: 29
  • pasted image 0 (3).png
    pasted image 0 (3).png
    4.6 КБ · Просмотры: 29
  • pasted image 0 (4).png
    pasted image 0 (4).png
    31.6 КБ · Просмотры: 27
  • pasted image 0 (5).png
    pasted image 0 (5).png
    5.8 КБ · Просмотры: 28
  • pasted image 0 (6).png
    pasted image 0 (6).png
    15.6 КБ · Просмотры: 27
  • pasted image 0 (7).png
    pasted image 0 (7).png
    9.9 КБ · Просмотры: 29


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх