the_open_door
café
ESEN
← Volver al índice

GenericWrite

ATT&CKT1098
Arsenal completo de comandos en la cheatsheet

GenericWrite permite escribir los atributos no protegidos de un objeto de Active Directory. No es control total (no reescribe la DACL ni resetea la contraseña directamente), pero elegir qué atributo escribir suele bastar para escalar. Es una pieza recurrente del abuso de ACLs y el abuso concreto depende, otra vez, del tipo de objeto y del atributo que se toque.

Sobre un usuario. Tres vías clásicas, de más a menos ruidosa:

# shadow credentials (pywhisker / certipy)
certipy shadow auto -u <yo>@<domain> -p <pass_yo> -account <victima>

# SPN-jacking + roast (targetedKerberoast)
targetedKerberoast.py -v -d <domain> -u <yo> -p <pass_yo> --request-user <victima>

Sobre un grupo. GenericWrite incluye escribir el atributo member, es decir, añadirte al grupo. Si el grupo es privilegiado, escalada directa.

net rpc group addmem "<grupo>" <yo> -U '<domain>/<yo>%<pass_yo>' -S <dc>
bloodyAD -d <domain> -u <yo> -p <pass_yo> --host <dc> add groupMember "<grupo>" <yo>
# en Windows
Add-DomainGroupMember -Identity "<grupo>" -Members <yo>

Sobre un equipo. Escribir msDS-KeyCredentialLink (Shadow Credentials contra la cuenta de máquina) o, si el entorno lo permite, encaminar hacia RBCD.

Verificación. Tras el abuso, comprobarlo: Get-ADUser <victima> -Properties servicePrincipalName para confirmar el SPN inyectado, o el TGT obtenido con el certificado. La comprobación es la prueba.

Matiz. El SPN-jacking depende de que la cuenta esté habilitada, de que su contraseña sea débil (si es larga y aleatoria, el roast no cae) y de que el KDC acepte el SPN; no es RCE garantizado, es una puerta a un crackeo offline. Frente a GenericAll, GenericWrite es un subconjunto: no puede reescribir la DACL ni tomar posesión, solo escribir atributos.

Cómo detectarlo. Escribir un atributo deja un Event ID 5136 (se modificó un objeto del servicio de directorio) en el DC, con el nombre del atributo tocado: servicePrincipalName recién puesto en una cuenta de usuario es SPN-jacking, y msDS-KeyCredentialLink en una cuenta que nunca usó autenticación por certificado es Shadow Credentials. Requiere activar Audit Directory Service Changes y una SACL en los objetos. Si el SPN-jacking prospera, el roast posterior aparece además como Event ID 4769 con cifrado RC4 (0x17). Añadirte a un grupo genera 4728/4732/4756. La señal fuerte es el atributo que cambia unido a un actor que no administra el directorio.

Defensa. Mínimo privilegio sobre los atributos y contraseñas largas o gMSAs en las cuentas de servicio, para que un roast dirigido no sirva de nada aunque se llegue a inyectar el SPN.

HerramientasCertipyPowerViewpyWhiskertargetedKerberoast

Máquinas donde se aplica