## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-B5NULL-INVOKE-BADSUCCESSOR.PS1
# Invoke-BadSuccessor
Злоупотребление правами создания **Delegated Managed Service Accounts (dMSA)** в уязвимых Organizational Units (OU) для повышения привилегий в средах Active Directory (уязвимость BadSuccessor – CVE-2025-53779).
* * *
## Обзор
`Invoke-BadSuccessor` автоматизирует цепочку атак повышения привилегий, используя неправильные конфигурации dMSA и делегирование в Windows Server 2025 Active Directory:
* Определяет OU, где текущий пользователь (или его группы) имеет права **CreateChild**.
* Создает или повторно использует **учетную запись компьютера**.
* Создает или повторно использует **Delegated Managed Service Account (dMSA)**.
* Предоставляет пользователю разрешения **GenericAll** на dMSA.
* Настраивает атрибуты:
* `msDS-DelegatedMSAState = 2`
* `msDS-ManagedAccountPrecededByLink = <DistinguishedName>` (связывает dMSA с привилегированной учетной записью)
* Генерирует шаги для пост-эксплуатации, готовые к использованию с **Rubeus** (если не указан параметр `-Quiet`).
Этот метод злоупотребляет поведением dMSA для повышения привилегий путем подделки билетов Kerberos с использованием учетных данных учетной записи компьютера и запроса билетов TGS для учетной записи службы с привилегиями связанной высокопривилегированной учетной записи.
* * *
## Возможности
* Полностью автоматизированная цепочка повышения привилегий dMSA.
* Тихий режим (`-Quiet`) подавляет инструкции по пост-эксплуатации.
* Умное разрешение идентификаторов для опции `-PrecededByIdentity` (принимает пользователей, компьютеры или другие объекты AD).
* Обрабатывает распространенные граничные случаи, такие как существующие учетные записи, неправильные различающиеся имена и отсутствие RID 500 (администратор по умолчанию).
* Использует исключительно модуль ActiveDirectory PowerShell — не требует внешних двоичных файлов.
* * *
## Функции
### Get-ADObjectACL
Низкоуровневый перечислитель ACL для объектов Active Directory. Оборачивает `Get-Acl` на диске `AD:` и возвращает чистый, фильтруемый список ACE с:
* `ObjectDN`
* `IdentityReference`
* `SecurityIdentifier`
* `ActiveDirectoryRights`
* `AccessControlType`
* Inheritance flags
Поддерживает:
* `-SearchBase` – ограничивает перечисление определенным DN (например, целевой OU)
* `-ExcludeDefaultSIDs` – фильтрует шумные встроенные объекты (Everyone, Authenticated Users, SELF и т.д.)
* `-ExcludeAdmins` – фильтрует группы администраторов/инфраструктуры на основе RID (Domain Admins, Enterprise Admins и т.д.)
### Find-VulnerableOU
Вспомогательная функция перечисления более высокого уровня, использующая `Get-ADObjectACL` для поиска OU, где пользователь (или его группы) имеет права **CreateChild**.
Она определяет:
* Указанного пользователя (или текущего пользователя по умолчанию)
* Их транзитивные членства в группах
* Все ACE, где `SecurityIdentifier` находится в этом токене **и** `ActiveDirectoryRights` содержит `CreateChild`
### Add-ADObjectACL
Эквивалент `Add-DomainObjectAcl` из PowerView, но использующий только модуль ActiveDirectory. Использует `Get-Acl` / `Set-Acl` на `AD:` для добавления ACE.
Поддерживаемые права включают:
* `All`, `GenericAll`, `GenericRead`, `GenericWrite`
* `CreateChild`, `DeleteChild`
* `ReadProperty`, `WriteProperty`
* `Delete`, `WriteDacl`, `WriteOwner`
### Invoke-BadSuccessor
Основная функция цепочки атак, которая:
1. Находит первую уязвимую OU, где пользователь имеет права **CreateChild**.
2. Создает или повторно использует учетную запись компьютера в этой OU.
3. Создает или повторно использует делегированную MSA в этой OU.
4. Предоставляет пользователю права **GenericAll** на dMSA.
5. Настраивает:
* `msDS-DelegatedMSAState = 2`
* `msDS-ManagedAccountPrecededByLink = <DN>` привилегированного объекта.
6. Опционально выводит команды Rubeus для пост-эксплуатации, если не установлен `-Quiet`.
* * *
## Использование
### Базовый
root@kitploit:~
Invoke-BadSuccessor
### Тихий режим (без советов по пост-эксплуатации)
root@kitploit:~
Invoke-BadSuccessor -Quiet
### Пользовательские имена и DNS
root@kitploit:~
Invoke-BadSuccessor -ComputerName "WEB01" -ServiceAccountName "webpool_dMSA" -ServiceDnsHostName "web01.internal"
### Пользовательский объект-предшественник
root@kitploit:~
Invoke-BadSuccessor -PrecededByIdentity "svc_app"
Скрипт автоматически разрешает эту идентичность среди пользователей, компьютеров или объектов домена.
* * *
## Пост-эксплуатация
### Rubeus
Примеры команд, сгенерированных для подделки билетов:
root@kitploit:~
Rubeus.exe hash /password:'Password123!' /user:Pwn$ /domain:<domain>
Rubeus.exe asktgt /user:Pwn$ /aes256:<AES256KEY> /domain:<domain>
Rubeus.exe asktgs /targetuser:attacker_dMSA$ /service:krbtgt/<domain> /dmsa /opsec /ptt /nowrap /outfile:ticket.kirbi /ticket:<BASE64TGT>
Заполните заполнители, такие как `<AES256KEY>` и `<BASE64TGT>`, фактическими значениями из предыдущих шагов.
### Impacket
Примеры команд, сгенерированных для подделки билетов:
root@kitploit:~
getST.py '<domain>/Pwn$:Password123!' -k -no-pass -dmsa -self -impersonate 'attacker_dMSA$'
* * *
## Требования
* Установленный модуль RSAT Active Directory PowerShell (работает в Evil-WinRM или стандартном PowerShell).
* * *
## Установка
1. Клонируйте или скачайте репозиторий.
2. Импортируйте скрипт:
root@kitploit:~
. .\Invoke-BadSuccessor.ps1
3. Перечислите уязвимые OU:
root@kitploit:~
Find-VulnerableOU
4. Запустите цепочку атак:
root@kitploit:~
Invoke-BadSuccessor
* * *
## ⚠️ Отказ от ответственности
Только для образовательного и авторизованного тестирования. Используйте только с явного разрешения. Авторы не несут ответственности за неправомерное использование.
* * *
## Автор
* 💀 **B5null**