NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

69
NetBios Auth Bypassing Undercon 2002

Transcript of NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Page 1: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

NetBios Auth Bypassing

Undercon 2002

Page 2: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Objetivo inicial:

Obtener acceso a un sistema remoto.

Page 3: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Objetivo inicial:

Obtener acceso a un sistema remoto.

Descripción del sistema remoto:

Windows 2000 ServerPuertos abiertos 80 y 445Acceso a web requiere usuario/contraseña del dominio

Page 4: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Puerto 445: NetBIOS

Desde Windows 2000 (xp y me) el puerto 445 se une altradicional 139 para la comunicación utilizando sesionesNetBIOS

Posible problema con software antiguo.

Page 5: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Obtenemos información del servidor web.

Server: Microsoft-IIS/5.0

Todos los accesos a paginas y aplicaciones por defectose encuentran protegidos por petición de un usuario ypassword validos en el dominio.

Page 6: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Obtenemos información del servidor web.

Server: Microsoft-IIS/5.0

Todos los accesos a paginas y aplicaciones por defectose encuentran protegidos por petición de un usuario ypassword validos en el dominio.

Posibilidad de ataque: Brute force remoto con diccionariotanto usuarios como de passwords.

Page 7: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Obtenemos información mediante NetBIOS

Conseguimos el nombre de la maquina, y mediantesesiones nulas un listado de usuarios y shares.

Caso típico: El único usuario valido para acceder a losshares es “Administrador”

Page 8: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Obtenemos información mediante NetBIOS

Conseguimos el nombre de la maquina, y mediantesesiones nulas un listado de usuarios y shares.

Caso típico: El único usuario valido para acceder a losshares es “Administrador”

Posibilidad de ataque: Brute force remoto con diccionariocontra un usuario determinado.

Page 9: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

Page 10: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

El cliente inicia la negociación de protocolo a utilizar, especificando losdistintos protocolos que entiende.

Page 11: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

El cliente inicia la negociación de protocolo a utilizar, especificando losdistintos protocolos que entiende.

Page 12: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

El cliente inicia la negociación de protocolo a utilizar, especificando losdistintos protocolos que entiende.

SMB negprot command:

Lista todos los protocolos conocidos por el cliente para que el servidor seleccione uno para llevar a cabo toda la comunicación posterior.

Page 13: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

El cliente inicia la negociación de protocolo a utilizar, especificando losdistintos protocolos que entiende.

Posibles protocolos en Windows:

Lan Manager 2.1 (LanMan/LM)NT Lan Manager 1.0 (NTLM)NT Lan Manager 2.0 (NTLMv2)

Page 14: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

El cliente inicia la negociación de protocolo a utilizar, especificando losdistintos protocolos que entiende.

Lan Manager 2.1

. Partimos de un hash de 16 bytes generado a partir de laclave. Los 8 primeros bytes proceden de los 7 primeros dela clave, así como los 8 bytes finales se derivan de los 7siguientes. En caso de que la segunda mitad quede falta debytes, se añadiran los que falten de una cadena fija

(0xAAD3B435B51404EE)

Page 15: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

El cliente inicia la negociación de protocolo a utilizar, especificando losdistintos protocolos que entiende.

Lan Manager 2.1

. Dado el hash, se le añadiran al final 5 bytes con valor 00 y se partira en tres fragmentos de 7 bytes cada uno.

. Cada uno de estos fragmentos se utilizara para generar una llave DES de 8 bytes y paridad impar.

. Se cifrara el reto recibido con las tres llaves generadas.

. El resultado devuelto estará formado por la concatenación de los 3 procesos de cifrado.

Page 16: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

El cliente inicia la negociación de protocolo a utilizar, especificando losdistintos protocolos que entiende.

NTLM

. Basado en Lan Manager 2.1

. El hash de 16 bytes se genera aplicando una función md4 al password introducido por el usuario.

. El resto funciona igual que en LM.

Page 17: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

El cliente inicia la negociación de protocolo a utilizar, especificando losdistintos protocolos que entiende.

NTLMv2

. Basado en NTLM.

. Se cifra toda la comunicación mediante SSL, ya sea de 56 o de 128 bits.

Page 18: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

El cliente inicia la negociación de protocolo a utilizar, especificando losdistintos protocolos que entiende.

Page 19: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

El cliente inicia la negociación de protocolo a utilizar, especificando losdistintos protocolos que entiende.

Page 20: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

El servidor selecciona el protocolo con el que se llevara a cabo el restode la comunicación.

Page 21: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

El servidor selecciona el protocolo con el que se llevara a cabo el restode la comunicación.

Page 22: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

El servidor selecciona el protocolo con el que se llevara a cabo el restode la comunicación.

SMB negprot response:

Devuelve el índice del protocolo seleccionado para la comunicación.

En caso de no utilizar ningún protocolo de los presentados, seleccionará el protocolo 0xFFFF como señal de error.

Page 23: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

El servidor selecciona el protocolo con el que se llevara a cabo el restode la comunicación.

Page 24: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

El servidor selecciona el protocolo con el que se llevara a cabo el restode la comunicación.

Page 25: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

SMB SesssetupX command (1)

El cliente envía una solicitud de conexión anónima.

Page 26: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

SMB SesssetupX command (1)

El cliente envía una solicitud de conexión anónima.

Page 27: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

SMB SesssetupX command (1)

El cliente envía una solicitud de conexión anónima.

SMB SesssetupX command:

Solicita el establecimiento de una sesión proporcionando conforme al protocolo negociado un par consistente en usuario y password.

Page 28: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

SMB SesssetupX command (1)

El cliente envía una solicitud de conexión anónima.

Page 29: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

SMB SesssetupX command (1)

El cliente envía una solicitud de conexión anónima.

Page 30: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

SMB SesssetupX command (1)

SMB SesssetupX response (1)

El servidor deniega la conexión anónima y envía un challenge al cliente.

Page 31: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

SMB SesssetupX command (1)

SMB SesssetupX response (1)

El servidor deniega la conexión anónima y envía un challenge al cliente.

Page 32: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

SMB SesssetupX command (1)

SMB SesssetupX response (1)

El servidor deniega la conexión anónima y envía un challenge al cliente.

SMB SesssetupX response:

En caso de recibir unas credenciales validas, devuelve un identificador de sesión (UID).

En caso contrario genera un nuevo challenge.

Page 33: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

SMB SesssetupX command (1)

SMB SesssetupX response (1)

El servidor deniega la conexión anónima y envía un challenge al cliente.

Page 34: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

SMB SesssetupX command (1)

SMB SesssetupX response (1)

SMB SesssetupX command (2)

El cliente envía una solicitud de conexión especificando el usuario (en claro)y el challenge recibido, cifrado con la password suministrada.

Page 35: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

SMB SesssetupX command (1)

SMB SesssetupX response (1)

SMB SesssetupX command (2)

SMB SesssetupX response (2)

El servidor valida los datos recibidos y de ser correcto, devuelve un UIDy se establece la sesión.

Page 36: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

SMB SesssetupX command (1)

SMB SesssetupX response (1)

SMB SesssetupX command (2)

SMB SesssetupX response (2)

SMB command (UID)

Cualquier comando enviado por el cliente ira acompañado por el UIDasignado.

Page 37: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Funcionamiento de SMB. Establecimiento de sesión

SMB negprot command

SMB negprot response

SMB SesssetupX command (1)

SMB SesssetupX response (1)

SMB SesssetupX command (2)

SMB SesssetupX response (2)

SMB command (UID)

SMB response

Hasta que no se termine la sesión, el intercambio de datos se efectuarasegún el modelo comando (UID) / respuesta.

Page 38: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Establecimiento de sesión simplificado

Page 39: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Establecimiento de sesión simplificado

Petición de conexión

Page 40: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Establecimiento de sesión simplificado

Petición de conexión

Envío de Challenge

Page 41: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Establecimiento de sesión simplificado

Petición de conexión

Envío de Challenge

Respuesta al Challenge

Page 42: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Establecimiento de sesión simplificado

Petición de conexión

Envío de Challenge

Respuesta al Challenge

Conexión valida: Envío de UID

Page 43: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Para obtener información útil:

Tenemos que recibir una petición de conexión

Page 44: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Para obtener información útil:

Tenemos que recibir una petición de conexión

Page 45: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Para obtener información útil:

Tenemos que recibir una petición de conexiónMicrosoft Internet Explorer es tu amigo!!!!

Internet Explorer ante una referencia tipo:

file://host/recurso

Lanzara automáticamente una conexión SMB para recuperar el recurso solicitado.

(It’s not a bug... Just a feature)

Page 46: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Para obtener información útil:

Tenemos que recibir una petición de conexión

Page 47: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Para obtener información útil:

Tenemos que recibir una petición de conexión.

Page 48: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Para obtener información útil:

Tenemos que recibir una petición de conexión.

Dada la petición aceptaremos (como server) el cifrado mássencillo de romper.

Page 49: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Para obtener información útil:

Tenemos que recibir una petición de conexión.

Tenemos que recibir un par usuario/password valido parael sistema atacado.

Page 50: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Para obtener información útil:

Tenemos que recibir una petición de conexión.

Tenemos que recibir un par usuario/password valido parael sistema atacado.

Page 51: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Para obtener información útil:

Tenemos que recibir una petición de conexión.

Tenemos que recibir un par usuario/password valido parael sistema atacado.

Microsoft Windows es tu amigo!!!!

Windows ante una petición tipo:

\\host\recurso

Lanzara automáticamente una conexión SMB para recuperar el recurso solicitado, sin necesidad de pedir password al usuario, ya que utilizara TODOS los utilizados en esa sesión, tanto de autenticación local como remota.

(It’s not a bug... Just a feature)

Page 52: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Para obtener información útil:

Tenemos que recibir una petición de conexión.

Tenemos que recibir un par usuario/password valido parael sistema atacado.

Page 53: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Para obtener información útil:

Tenemos que recibir una petición de conexión.

Tenemos que recibir un par usuario/password valido parael sistema atacado.

Page 54: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Para obtener información útil:

Tenemos que recibir una petición de conexión.

Tenemos que recibir un par usuario/password valido parael sistema atacado.

Posibilidad de ataque: Brute force remoto con diccionariocontra un usuario determinado.

Page 55: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Pero...

Page 56: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Pero...

Tenemos prisa y un 486.

Page 57: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Pero...

Tenemos prisa y un 486.

Ah! Y una idea mejor...

Page 58: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Retomemos el establecimiento de sesión simplificado

Page 59: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Retomemos el establecimiento de sesión simplificado

Esta vez será el server quién“quiera” establecer una conexión con nosotros.

Page 60: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Retomemos el establecimiento de sesión simplificado

Petición de conexión

Envío de Challenge

Respuesta al Challenge

Conexión valida: Envío de UID

Page 61: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Retomemos el establecimiento de sesión simplificado

Petición de conexión

Envío de Challenge

Respuesta al Challenge

Conexión valida: Envío de UID

Vamos a tomar su Challenge y a inyectarselo a él para que el mismo locifre con sus credenciales validas.

Page 62: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Inyectando su propia respuesta al Challenge

Petición de conexión

Page 63: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Inyectando su propia respuesta al Challenge

Petición de conexión

Petición de conexión

Page 64: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Inyectando su propia respuesta al Challenge

Petición de conexión

Petición de conexión

Envío de Challenge (c)

Page 65: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Inyectando su propia respuesta al Challenge

Petición de conexión

Petición de conexión

Envío de Challenge (c)

Envío de Challenge (c)

Page 66: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Inyectando su propia respuesta al Challenge

Petición de conexión

Petición de conexión

Envío de Challenge (c)

Envío de Challenge (c)

Respuesta al Challenge (c’)

Page 67: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Inyectando su propia respuesta al Challenge

Petición de conexión

Petición de conexión

Envío de Challenge (c)

Envío de Challenge (c)

Respuesta al Challenge (c’)

Respuesta al Challenge (c’)

Page 68: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Inyectando su propia respuesta al Challenge

Petición de conexión

Petición de conexión

Envío de Challenge (c)

Envío de Challenge (c)

Respuesta al Challenge (c’)

Respuesta al Challenge (c’)

Denegar conexión entrante

Page 69: NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.

Inyectando su propia respuesta al Challenge

Petición de conexión

Petición de conexión

Envío de Challenge (c)

Envío de Challenge (c)

Respuesta al Challenge (c’)

Respuesta al Challenge (c’)

Denegar conexión entrante

Conexión valida. Envio de UID