Команда Центра кибербезопасности УЦСБ продолжает рассказывать о самых интересных практиках пентеста. Напоминаем, что в прошлой статье мы писали о том, как нам удалось пробить периметр с двух точек: Windows- и Linux-серверов, а также захватить внутреннюю инфраструктуру компании.

В этот раз мы покажем, как компрометация домена Active Directory (AD) может привести к полной остановке деятельности компании на неопределенное время. Надеемся, наши кейсы будут вам полезны, а этот опыт позволит избежать схожих проблем!

Предыстория

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

С чего все начиналось

Стоит отметить, что работы проводились по методу черного ящика. Так, перед началом внутреннего тестирования мы пробили внешний периметр компании и получили доступ к Linux от root.

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

После проведения разведки низко висящих фруктов не нашлось — не было MS17, Zerologon, BlueKeep, дефолтные пароли почти никуда не подходили. Время на проведение работ по проекту подходило к концу.

Неожиданно получилась цепочка эксплуатации хорошо известных уязвимостей PetitPotam + Relay + PrintNightmare + impersonate в одном месте. Догадаться использовать эти уязвимости и мисконфиги оказалось непросто. Гайдов и описаний эксплуатации из такого контекста не было. В процессе работы пришлось импровизировать и придумывать, как с этим работать. Также не обошлось и без везения — активной сессии администратора на захваченной машине. Наградой за кропотливый труд стало повышение привилегий до администратора домена.

Схема захвата Windows машины приведена ниже.

Принуждение к аутентификации CVE-2021-36942 (PetitPotam или Бегемотик)

Уязвимость CVE-2021-36942, известная также как PetitPotam, заключается в возможности вызова без аутентификации методов протокола MS-EFSRPC. В результате вызовов этих методов атакованный узел осуществляет запрос на указанный узел, вместе с тем при подключении к нему происходит аутентификация с использованием механизма NTLM. Потенциальный нарушитель может таким образом провоцировать аутентификацию атакуемых узлов на подконтрольном ему узле для проведения дальнейших атак, нацеленных на получение доступа к домену или повышение привилегий.

В ходе работ мы проверили возможность эксплуатации уязвимости CVE-2021-36942 на нескольких узлах внутренней сети.

В результате было обнаружено, что этой уязвимости подвержены несколько узлов из домена. Демонстрация эксплуатации уязвимости приведена на Рисунке 1.

Рисунок 1 – Результат эксплуатации уязвимости CVE-2021-36942
Рисунок 1 – Результат эксплуатации уязвимости CVE-2021-36942

Полученные таким образом NetNTLMv2-хэши были использованы при выполнении шагов, описанных в следующем разделе.

Уязвимость CVE-2021-34527 (PrintNightmare)

С помощью уязвимости PrintNightmare потенциальный злоумышленник может повысить свои привилегии на узле с ОС Windows, используя очередь печати Windows. Эксплуатация уязвимости происходит удаленно, для нее необходима учетная запись с привилегиями обычного пользователя. Так как у нас ее не было, дальнейшие этапы работы проводились в контексте NTLM Relay-атаки с использованием машинной учетки.

Получение машинной УЗ

При выполнении NTLM relay-атаки злоумышленник внедряется между клиентом и сервером, используя особенности протокола NTLM. Поэтому в результате атаки он может успешно проводить аутентификацию на целевом узле от имени перехваченной УЗ. Демонстрация захвата сессии SMB приведена на Рисунке 2.

Рисунок 2 – Установка SMB-сессии с узлом
Рисунок 2 – Установка SMB-сессии с узлом

После установления SMB-соединений мы проверили возможность чтения и записи сетевых папок от имени машинной УЗ. На одном из узлов было обнаружено соответствующее право. На сетевой папке с возможностью записи мы разместили файл с расширением DLL, который позволял пентестеру выполнять команды от имени системы.

Демонстрация подключения к сетевой папке приведена на Рисунке 3.

Рисунок 3 – Открытие SMB-сессии на узле
Рисунок 3 – Открытие SMB-сессии на узле

Далее был загружен на узел файл DLL. Демонстрация загрузки приведена на Рисунке 4.

Рисунок 4 – Загрузка вредоносной библиотеки pn64_sticky_nla.dll на узел
Рисунок 4 – Загрузка вредоносной библиотеки pn64_sticky_nla.dll на узел

Затем мы провели эксплуатацию уязвимости, как показано на Рисунке 5.

Рисунок 5 – Эксплуатация уязвимости PrintNightmare на узле
Рисунок 5 – Эксплуатация уязвимости PrintNightmare на узле

В результате успешной эксплуатации удалось получить доступ к узлу от имени системы. Демонстрация полученного доступа к целевому узлу представлена на Рисунке 6.

Рисунок 6 – Вызов командной строки на узле
Рисунок 6 – Вызов командной строки на узле

Повышение привилегий до администратора домена

После получения доступа от имени системы мы обнаружили, что на узле находится сессия администратора домена. С помощью техники impersonate удалось получить сессию от имени администратора домена.

На сетевом диске, доступном для записи, был размещен исполняемый файл incognito.exe и запущена команда для открытия консоли от имени администратора домена (Рисунок 7).

Рисунок 7 – Повышение привилегий до администратора домена
Рисунок 7 – Повышение привилегий до администратора домена

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

Вывод

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

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

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

  1. PetitPotam:

  2. PrintNightmare:

Автор: Владислав Дриев, специалист по анализу защищенности УЦСБ.

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