hacktricks/windows-hardening/active-directory-methodology/skeleton-key.md
2023-06-03 01:46:23 +00:00

5.5 KiB

Skeleton Key

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Skeleton Key

De: https://blog.stealthbits.com/unlocking-all-the-doors-to-active-directory-with-the-skeleton-key-attack/

Existen varios métodos para comprometer cuentas de Active Directory que los atacantes pueden utilizar para elevar privilegios y crear persistencia una vez que se han establecido en su dominio. El Skeleton Key es un malware especialmente peligroso dirigido a dominios de Active Directory que hace que sea alarmantemente fácil secuestrar cualquier cuenta. Este malware se inyecta en LSASS y crea una contraseña maestra que funcionará para cualquier cuenta en el dominio. Las contraseñas existentes también seguirán funcionando, por lo que es muy difícil saber que se ha producido este ataque a menos que se sepa qué buscar.

No es sorprendente que este sea uno de los muchos ataques que se empaquetan y que es muy fácil de realizar con Mimikatz. Veamos cómo funciona.

Requisitos para el ataque Skeleton Key

Para perpetrar este ataque, el atacante debe tener derechos de administrador de dominio. Este ataque debe ser realizado en cada controlador de dominio para una completa compromisión, pero incluso apuntar a un solo controlador de dominio puede ser efectivo. Reiniciar un controlador de dominio eliminará este malware y tendrá que ser redeployado por el atacante.

Realización del ataque Skeleton Key

Realizar el ataque es muy sencillo. Solo se requiere que se ejecute el siguiente comando en cada controlador de dominio: misc::skeleton. Después de eso, se puede autenticar como cualquier usuario con la contraseña predeterminada de Mimikatz.

Inyectando una clave skeleton usando misc::skeleton en un controlador de dominio con Mimikatz

Aquí hay una autenticación para un miembro de Domain Admin usando la clave skeleton como contraseña para obtener acceso administrativo a un controlador de dominio:

Usando la clave skeleton como contraseña con el comando misc::skeleton para obtener acceso administrativo a un controlador de dominio con la contraseña predeterminada de Mimikatz

Nota: Si recibe un mensaje que dice: "Error del sistema 86 ha ocurrido. La contraseña de red especificada no es correcta", simplemente intente usar el formato dominio\cuenta para el nombre de usuario y debería funcionar.

Usando el formato dominio\cuenta para el nombre de usuario si recibe un mensaje que dice que se ha producido un error del sistema 86. La contraseña de red especificada no es correcta

Si lsass ya estaba parcheado con skeleton, entonces aparecerá este error:

Mitigaciones

  • Eventos:
    • ID de evento del sistema 7045 - Se instaló un servicio en el sistema. (Tipo de controlador de modo kernel)
    • ID de evento de seguridad 4673 - Uso de privilegios sensibles (debe estar habilitada la "Auditoría del uso de privilegios")
    • ID de evento 4611 - Se ha registrado un proceso de inicio de sesión de confianza con la Autoridad de seguridad local (debe estar habilitada la "Auditoría del uso de privilegios")
  • Get-WinEvent -FilterHashtable @{Logname='System';ID=7045} | ?{$_.message -like "Kernel Mode Driver"}
  • Esto solo detecta mimidrv Get-WinEvent -FilterHashtable @{Logname='System';ID=7045} | ?{$.message -like "Kernel Mode Driver" -and $.message -like "mimidrv"}
  • Mitigación:
    • Ejecutar lsass.exe como un proceso protegido, obliga al atacante a cargar un controlador de modo kernel
    • New-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\Lsa -Name RunAsPPL -Value 1 -Verbose
    • Verificar después del reinicio: Get-WinEvent -FilterHashtable @{Logname='System';ID=12} | ?{$_.message -like "proceso protegido"}