Команда Центра кибербезопасности УЦСБ продолжает рассказывать о самых интересных практиках пентеста. Напоминаем, что в прошлой статье мы писали о том, как нам удалось пробить периметр с двух точек: Windows- и Linux-серверов, а также захватить внутреннюю инфраструктуру компании.
В этот раз мы покажем, как компрометация домена Active Directory (AD) может привести к полной остановке деятельности компании на неопределенное время. Надеемся, наши кейсы будут вам полезны, а этот опыт позволит избежать схожих проблем!
Предыстория
В 2023 году в крупной компании произошел инцидент, который вызвал простой процессов и повлек за собой большие убытки. После устранения последствий руководство решило убедиться, что слабых мест в системе защиты больше нет. Именно поэтому компания обратилась к нам для проведения независимой оценки безопасности с помощью пентеста.
С чего все начиналось
Стоит отметить, что работы проводились по методу черного ящика. Так, перед началом внутреннего тестирования мы пробили внешний периметр компании и получили доступ к Linux от root.
Метод чёрного ящика предполагает имитирование взлома злоумышленниками, которые ничего не знают об инфраструктуре организации.
После проведения разведки низко висящих фруктов не нашлось — не было MS17, Zerologon, BlueKeep, дефолтные пароли почти никуда не подходили. Время на проведение работ по проекту подходило к концу.
Неожиданно получилась цепочка эксплуатации хорошо известных уязвимостей PetitPotam + Relay + PrintNightmare + impersonate в одном месте. Догадаться использовать эти уязвимости и мисконфиги оказалось непросто. Гайдов и описаний эксплуатации из такого контекста не было. В процессе работы пришлось импровизировать и придумывать, как с этим работать. Также не обошлось и без везения — активной сессии администратора на захваченной машине. Наградой за кропотливый труд стало повышение привилегий до администратора домена.
Схема захвата Windows машины приведена ниже.
![](https://habrastorage.org/getpro/habr/upload_files/c8d/79d/fc5/c8d79dfc55ce03ace35390d392bead04.png)
Принуждение к аутентификации CVE-2021-36942 (PetitPotam или Бегемотик)
Уязвимость CVE-2021-36942, известная также как PetitPotam, заключается в возможности вызова без аутентификации методов протокола MS-EFSRPC. В результате вызовов этих методов атакованный узел осуществляет запрос на указанный узел, вместе с тем при подключении к нему происходит аутентификация с использованием механизма NTLM. Потенциальный нарушитель может таким образом провоцировать аутентификацию атакуемых узлов на подконтрольном ему узле для проведения дальнейших атак, нацеленных на получение доступа к домену или повышение привилегий.
В ходе работ мы проверили возможность эксплуатации уязвимости CVE-2021-36942 на нескольких узлах внутренней сети.
В результате было обнаружено, что этой уязвимости подвержены несколько узлов из домена. Демонстрация эксплуатации уязвимости приведена на Рисунке 1.
![Рисунок 1 – Результат эксплуатации уязвимости CVE-2021-36942 Рисунок 1 – Результат эксплуатации уязвимости CVE-2021-36942](https://habrastorage.org/getpro/habr/upload_files/125/1f4/445/1251f4445dff0474da7fbe8c72e2c5c7.png)
Полученные таким образом NetNTLMv2-хэши были использованы при выполнении шагов, описанных в следующем разделе.
Уязвимость CVE-2021-34527 (PrintNightmare)
С помощью уязвимости PrintNightmare потенциальный злоумышленник может повысить свои привилегии на узле с ОС Windows, используя очередь печати Windows. Эксплуатация уязвимости происходит удаленно, для нее необходима учетная запись с привилегиями обычного пользователя. Так как у нас ее не было, дальнейшие этапы работы проводились в контексте NTLM Relay-атаки с использованием машинной учетки.
Получение машинной УЗ
При выполнении NTLM relay-атаки злоумышленник внедряется между клиентом и сервером, используя особенности протокола NTLM. Поэтому в результате атаки он может успешно проводить аутентификацию на целевом узле от имени перехваченной УЗ. Демонстрация захвата сессии SMB приведена на Рисунке 2.
![Рисунок 2 – Установка SMB-сессии с узлом Рисунок 2 – Установка SMB-сессии с узлом](https://habrastorage.org/getpro/habr/upload_files/7cb/bc4/87a/7cbbc487ac80e49500b55df003d0014b.png)
После установления SMB-соединений мы проверили возможность чтения и записи сетевых папок от имени машинной УЗ. На одном из узлов было обнаружено соответствующее право. На сетевой папке с возможностью записи мы разместили файл с расширением DLL, который позволял пентестеру выполнять команды от имени системы.
Демонстрация подключения к сетевой папке приведена на Рисунке 3.
![Рисунок 3 – Открытие SMB-сессии на узле Рисунок 3 – Открытие SMB-сессии на узле](https://habrastorage.org/getpro/habr/upload_files/d7b/105/09b/d7b10509b21889b788d2935d8aec8c66.png)
Далее был загружен на узел файл DLL. Демонстрация загрузки приведена на Рисунке 4.
![Рисунок 4 – Загрузка вредоносной библиотеки pn64_sticky_nla.dll на узел Рисунок 4 – Загрузка вредоносной библиотеки pn64_sticky_nla.dll на узел](https://habrastorage.org/getpro/habr/upload_files/bc7/53b/01a/bc753b01ad2f103a036a46f69e299f25.png)
Затем мы провели эксплуатацию уязвимости, как показано на Рисунке 5.
![Рисунок 5 – Эксплуатация уязвимости PrintNightmare на узле Рисунок 5 – Эксплуатация уязвимости PrintNightmare на узле](https://habrastorage.org/getpro/habr/upload_files/0e4/c38/6c9/0e4c386c95b88e9fbca4e18a45cb9760.png)
В результате успешной эксплуатации удалось получить доступ к узлу от имени системы. Демонстрация полученного доступа к целевому узлу представлена на Рисунке 6.
![Рисунок 6 – Вызов командной строки на узле Рисунок 6 – Вызов командной строки на узле](https://habrastorage.org/getpro/habr/upload_files/cab/16a/f1c/cab16af1c2c82675aad7c219c86bda0d.png)
Повышение привилегий до администратора домена
После получения доступа от имени системы мы обнаружили, что на узле находится сессия администратора домена. С помощью техники impersonate удалось получить сессию от имени администратора домена.
На сетевом диске, доступном для записи, был размещен исполняемый файл incognito.exe и запущена команда для открытия консоли от имени администратора домена (Рисунок 7).
![Рисунок 7 – Повышение привилегий до администратора домена Рисунок 7 – Повышение привилегий до администратора домена](https://habrastorage.org/getpro/habr/upload_files/013/2cd/b41/0132cdb4168ffa8d8d00c0c3aecb79c6.png)
Заметим, что права администратора домена предоставляют пользователю полный доступ к файлам, каталогам, службам и другим ресурсам, которые находятся в домене AD. Учетная запись с правами администратора домена может использоваться для создания учетных записей, а также для назначения им прав и разрешений на управление доступом. Контроль над учетной записью с правами администратора домена означает контроль над всем доменом AD.
Вывод
Таким образом, вход в инфраструктуру компании был полностью скомпрометирован. Мы получили полный доступ ко всем рабочими станциям и серверам, системам виртуализации и системам резервного копирования.
Так как все сервисы компании завязаны на домене AD, его компрометация могла бы привести к полной остановке деятельности компании на неопределенный промежуток времени.
Избежать таких последствий можно было с помощью простого действия — своевременной установки обновлений. Вот несколько рекомендаций.
-
PetitPotam:
-
PrintNightmare:
Установить обновления безопасности в соответствии с версией системы
Отключить spooler, если он не используется.
Автор: Владислав Дриев, специалист по анализу защищенности УЦСБ.