domingo, 16 de noviembre de 2008

SMB Relay Attack - MS08-068 (CVE-2008-4037)

Hola Manola!,

El martes pasado, Microsoft publico nuevamente sus parches:

http://blogs.technet.com/msrc/archive/2008/11/11/november-2008-bulletin-release.aspx

De los dos parches, el que mas me llamo la atencion fue el ms08-068 que viene arrastrandose desde el año 2001 y que tiene que ver con el proceso de autenticacion de NTLM sobre SMB.

NTLM es un protocolo de autenticacion utilizado por Microsoft sobre varios protocolos, uno de ellos, SMB.

El ataque que se viene discutiendo desde hace mucho y ya hay varias tools que lo implementan.

Lo que nos permite, basicamente, es loguearnos es una maquina usando sus propias credenciales.

El protocolo NTLM funciona mas o menos de la siguiente manera:

1- El cliente se conecta al server.
2- El server genera un CHALLENGE (8 bytes) y lo envia al cliente.
3- El cliente toma ese CHALLENGE y con el HASH de su password, encrypta el CHALLENGE.
4- El cliente envia el CHALLENGE-ENCRIPTADO al server.
5- El server agarra el hash que tiene guardado y encripta el mismo CHALLENGE que envio al cliente y lo compara con el CHALLENGE-ENCRIPTADO, si ambos son iguales, ACCESO CONCEDIDO, sino, ACCESO DENEGADO.

Entonces el ataque consiste mas o menos en lo siguiente:

1- El cliente se conecta al server.
2- El server se conecta al cliente (ahora el cliente se convierte en server).
3- El cliente genera un challenge y lo envia al server.
4- El server agarra el challenge y se lo envia al cliente que esta esperando en la otra sesion.
5- El cliente toma el challenge y lo encripta con su hash y se lo envia al server.
6- El server agarra el challenge encriptado y se lo envia a la otra conexion que tiene con el cliente.
7- El server corta la conexion con el cliente.
8- El server tiene conexion con el cliente utilizando sus mismas credenciales. Por que? pues porque envio EL MISMO challenge al cliente que el cliente le envio.

Una vez que ya tenemos una sesion autenticada con el cliente, podemos por ejemplo, dropear un file en ADMIN$ y levantarlo como servicio mediante llamadas RPC.

Todo este ataque es sobre SMB, pero tambien puede realizarse sobre otros protocolos que soporten NTLM como HTTP, IMAP, POP3, etc.

Para el que quiera mayor informacion puede visitar esta paginas:

1- Metasploit and SMB Relay Attack
2- Multiprotocol NTLM Replay Attack
3- Multiprotocol NTLM Replay Attack (PDF)
4- Metasploit SMB Relay Attack Exploit
5- MS08-68 - SMB Relay (MSRC)
6- SMB Relay and SMB Relay2
7- SMB Reflection Made Way Too Easy
8- BackTrack 3: Demos of selected tools
9- Windows Smb Relay Exploit (Demo Video)

Hasta pronto!.

No hay comentarios: