¿Qué tan factible es para un atacante forzar una respuesta NTLMv2 capturada fuera de la red?

3

De acuerdo con el artículo de Wikipedia sobre NTLM aquí: enlace

... en la descripción NTLMv2 menciona que

  

NTLMv2 envía dos respuestas a un desafío de servidor de 8 bytes

Básicamente, de acuerdo con el artículo, la respuesta de NTLMv2 se convierte en esto:

SC = 8-byte server challenge, random
CC = 8-byte client challenge, random
CC* = (X, time, CC2, domain name)
v2-Hash = HMAC-MD5(NT-Hash, user name, domain name)
LMv2 = HMAC-MD5(v2-Hash, SC, CC)
NTv2 = HMAC-MD5(v2-Hash, SC, CC*)
response = LMv2 | CC | NTv2 | CC*

Estoy tratando de entender los desafíos de seguridad de NTLMv2 y lo difícil que sería para un atacante que capture la respuesta anterior de NTLMv2 mediante el rastreo de la red, para forzarla a que acceda a la contraseña.

Dado que el hash incluye el desafío de servidor aleatorio (SC), ya lo hace difícil. Pero supongamos que el atacante ha estado olfateando y ya había capturado el SC cuando el servidor lo envió al cliente.

El atacante también debe poder ver el desafío del cliente (CC & CC *) de la respuesta como

  

respuesta = LMv2 | CC | NTv2 | CC *

¿verdad? .. por lo tanto, ¿esto significa que el atacante puede tener una oportunidad justa para forzar la aplicación de los hashes NTV2 o LMV2 incluidos en la respuesta, dado que la siguiente información está con ellos ahora?

  • SC (Server Challenge)
  • CC & CC *
  • respuesta
  • nombre de usuario, nombre de dominio (fácilmente adquirido por un atacante que ya está en la red)

¿Es esta la forma correcta de entenderlo?

Muchas gracias

    
pregunta Vicer 10.09.2017 - 08:09
fuente

2 respuestas

3

En realidad, no se trata de forzar en bruto, de crear un diccionario (¿es eso una palabra?) o de crear un arco iris en las credenciales NET-NTLMv2, sino más bien de compararlas con hashes LM / NTLM almacenados extraídos del SAM plano. La base de datos o el proceso LSASS en memoria (que generalmente se puede revertir a texto claro, pero en este caso realmente desea el hash para fines comparativos).

Peor (*), se puede usar NET-NTLMv2 para los ataques de Relay NTLM. Una de las mejores maneras de acelerar el uso de NTLM Relay es con - enlace

Para combinar métodos de conversión de credenciales LM / NTLM (junto con, digamos, sus capturas NET-NTLMv2) a sus equivalentes de texto claro, válidos actualmente, consulte el trabajo en Pretoriano (Gladius) y root9b (ntlmv2_capture_hashcheck.rb).

Si está intentando descifrar NET-NTLMv2 solo con archivos pcap o similares (es decir, no está en la red en este momento o no tiene material SAM / LSASS LM / NTLM para compararlo con el uso de Praetorian o técnicas de root9b), entonces quieres revisar esta publicación del blog, enlace - - como el autor explica qué partes de la solicitud y respuesta de NET-NTLMv2 deben ajustarse para que se ajusten limpiamente a John the Ripper (o Hashcat) con fines de craqueo.

(*) En realidad, se pone mucho peor, ya que NTLM Relay solo roza la superficie si consideras SMB Relay, Pass-the Hash, JASBUG, Potato, Tater, SmashedPotato (si puedes capturar el tráfico de la red), QuickCreds y PoisonTap (si tiene la capacidad de conectar un dispositivo USB a un puerto USB de una estación local), así como crEAP y EAPeak (si tiene acceso a WiFi).

    
respondido por el atdre 14.09.2017 - 23:49
fuente
1

Sí, es bastante factible realizar un ataque de diccionario en la respuesta de desafío NTLMv2. Sin embargo, con solo la respuesta, no es posible. El atacante necesita tanto el desafío como la respuesta. De hecho, es bastante rápido de romper.

De hecho, los hackers a menudo usan una herramienta como Responder.py para capturar hashes NTLMv2 y luego usan algo como Hashcat para romper (o transmitir) los hashes de respuesta de desafío.

    
respondido por el Daniel Grover 19.09.2017 - 22:31
fuente

Lea otras preguntas en las etiquetas