Sploitus

Exploit for Invoke-BadSuccessor.ps1

kitploit · 2026-09-03

Exploit Code

MARKDOWN221 lines
## 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**