Ataque Overpass-the-Hash: principios y detección
El ataque overpass-the-hash es una combinación de otros dos ataques: pass-the-hash y pass-the-ticket. Las tres técnicas se incluyen en la categoría de Mitre "Explotación de servicios remotos".
En un ataque de sobrepaso del hash, un adversario aprovecha el hash NTLM de una cuenta de usuario para obtener un ticket Kerberos que puede usarse para acceder a los recursos de la red. Esta técnica es útil si no puede obtener la contraseña de texto sin cifrar para una cuenta pero requiere autenticación Kerberos para llegar a su destino. Este ataque se puede utilizar para realizar acciones en servidores locales o remotos. Las herramientas más comunes utilizadas para realizar este tipo de ataques son Mimikatz y Rubeus.
Cómo funciona Overpass-the-Hash
Paso 1. Obtenga el hash de contraseña de una cuenta de usuario.
El primer paso es el mismo que para un ataque pass-the-hash: obtener el hash de contraseña NTLM (NT hash) para una cuenta de usuario que queremos comprometer. Para eso usaremos Mimikatz:
Privilege::debug
Sekurlsa::logonpasswordsPaso 2. Realice un ataque de sobrepaso del hash.
Usando el hash NTLM, podemos realizar un ataque de sobrepaso del hash:
Sekurlsa::pth /user:[USER] /domain:[DOMAIN] /ntlm:[NTLM HASH]
No solo pasamos el hash, sino que lo sobrepasamos: el hash NTLM se pasó al proveedor de autenticación Kerberos mediante cifrado RC4. Esto es posible porque Microsoft ofrece la posibilidad de crear tokens Kerberos cifrados con RC4-HMAC-MD5 basados en hashes NTLM. Esto se admite principalmente por compatibilidad con versiones anteriores, pero también se puede explotar: todo lo que necesita es el hash NTLM de un usuario para crear un ticket de Kerberos con el nivel más bajo de seguridad. Para obtener más detalles, lea la publicación del blog de Benjamin Delpy.
Otras opciones para realizar ataques de sobrepaso del hash
También puede crear tickets Kerberos utilizando otra información sobre un usuario, como sus claves AES. Mimikatz le permite extraer claves AES de dos formas diferentes. El comando DCSync devuelve esta información para cualquier usuario del dominio si tiene los permisos adecuados de Active Directory. O puede utilizar el comando sekurlsa::ekeys en su sistema local.
Lsadump::dcsync /user:[USER] /domain:[DOMAIN]Una vez que tenemos acceso a las claves AES del usuario, podemos abusar de ellas sin una escalada de privilegios real.
Desde allí podemos emitir un comando pass-the-hash para inyectar la clave AES en un ticket de Kerberos. Esto será más difícil de detectar ya que utilizará claves de cifrado más seguras y de uso común.
Sekurlsa::pth /user:[USER] /domain:[DOMAIN] /aes256:[AES256 KEY]Ahora podemos autenticarnos como este usuario. Si usamos el comando klist, deberíamos ver que se utilizan tickets Kerberos cifrados con AES256 para nuestra autenticación:
Detección de ataques Overpass-the-Hash
Uso de técnicas de detección de paso de hash
La mejor manera de detectar ataques de hacking overpass-the-hash es utilizar la misma estrategia que para detectar pass-the-hash: busque la siguiente firma del registro de eventos en el proceso de autenticación de cada punto final:
- ID de evento 4624 con tipo de inicio de sesión=9, paquete de autenticación=negociar y proceso de inicio de sesión=seclogo
- Acceso al proceso Sysmon Event ID 10 LSASS
Cuando ve ambos eventos al mismo tiempo, tiene pasar el hash o sobrepasar el hash, ya que el proceso de inyectar la autenticación NTLM y los tickets de Kerberos en una nueva sesión es el mismo en ambos ataques. . Sin embargo, no hay forma en los puntos finales de distinguir qué opciones se pasaron al comando pass-the-hash de los registros de eventos.
Entonces, ¿cómo pueden los administradores distinguir entre pasar el hash y sobrepasar el hash? La principal diferencia es que en overpass-the-hash, el registro de eventos mostrará la actividad de autenticación Kerberos, en lugar de NTLM, en el controlador de dominio. Comparemos los registros de eventos durante los dos tipos de ataques (las diferencias están en negrita):
Registros de paso de hash
| Source Host | Target Host | Domain Controller |
|---|---|---|
| 4648 – A logon was attempted using explicit credentials. | 4624 – An account was successfully logged on. Logon Type 3, NTLM | 4776 – The computer attempted to validate the credentials for an account. |
| 4624 – An account was successfully logged on. (Logon type = 9 Logon Process = Seclogo) | 4672 – Special privileges assigned to new logon. | |
| 4672 – Special privileges assigned to new logon. (Logged on user, not impersonated user) |
Registros de sobrepaso del hash
| Source Host | Source Host Target Host | Domain Controller |
|---|---|---|
| 4648 – A logon was attempted using explicit credentials. | 4624 – An account was successfully logged on. (Logon Type = 3, Logon Process = Kerberos, Authentication Package = Kerberos) | 4768 – A Kerberos authentication ticket (TGT) was requested. (Encryption Type for RC4/AES128/AES256) |
| 4624 – An account was successfully logged on. (Logon type = 9 Logon Process = Seclogo) | 4672 – Special privileges assigned to new logon. | 4769 – A Kerberos service ticket was requested. (Encryption Type for RC4/AES128/AES256) |
| 4672 – Special privileges assigned to new logon. (Logged on user, not impersonated user) |
Vale la pena señalar que en el controlador de dominio puede ver el nivel de cifrado de los tickets (0x17 para RC4, 0x11 para AES128 y 0x12 para AES256). Sin embargo, como hemos demostrado, esta no es una técnica de detección confiable ya que un atacante puede especificar cualquiera o todas estas al crear un ticket.
En resumen, el mejor método de detección es verificar los puntos finales para el evento ID 4624 con el tipo de inicio de sesión=9 y el evento Sysmon ID 10. Luego, podemos inspeccionar los registros de nuestro controlador de dominio para el evento ID 4776 para ese usuario (pass-the-hash). ) o 4768/4769 (sobrepasar el hash).
Uso de técnicas de detección de pase del billete
La estrategia de detección cubierta en nuestro tutorial de pase del ticket también es útil en este caso. Eso implica inspeccionar las sesiones de los usuarios en busca de sus tickets Kerberos asociados. Si existe un ticket que no coincide con el usuario asociado a la sesión, entonces se ha producido una inyección de ticket.
Una cosa útil con overpass-the-hash es que obtenemos el evento 4624 en el punto final con el tipo de inicio de sesión 9, y este contiene el ID de sesión para la nueva sesión:
Podemos ver que tenemos un nuevo inicio de sesión para el usuario Michael. Si utilizamos el comando klist -li en ese ID de inicio de sesión, podremos ver los tickets de Kerberos asociados. En este caso mostrará los tickets del usuario comprometido:
Conclusión
Las estrategias detalladas anteriormente son una forma de detectar técnicas de sobrepaso del hash y otras técnicas de movimiento lateral en su red, pero generalmente requieren la recopilación e inspección de registros de eventos y la ejecución de scripts de diagnóstico en cada punto final y controlador de dominio. Para obtener un enfoque integral para detectar, prevenir y responder a estos y otros ataques de Active Directory, consulte la solución de seguridad Netwrix Active Directory.
Preguntas más frecuentes
¿Qué es overpass-the-hash?
Overpass-the-hash es un ataque que permite a un adversario pasar el hash NTLM de una cuenta de usuario al proveedor de autenticación Kerberos. Combina técnicas de pasar el hash y pasar el billete.
¿Cómo se pueden detectar los ataques de sobrepaso del hash?
La mejor manera de detectar este ataque es verificar los registros de endpoints para detectar el ID de evento 4624 con Tipo de inicio de sesión=9. Además, verificar el ID de evento 10 de Sysmon reducirá los falsos positivos.
¿Qué es un hash de contraseña NTLM?
El protocolo de autenticación NTLM se basa en el hash de contraseña, que es una función unidireccional que transforma una contraseña de texto sin formato en otra cadena de texto: el hash de contraseña NTLM.






