NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.
-
Upload
robertina-rentas -
Category
Documents
-
view
107 -
download
1
Transcript of NetBios Auth Bypassing Undercon 2002. Objetivo inicial: Obtener acceso a un sistema remoto.
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
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.
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.
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.
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”
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.
Funcionamiento de SMB. Establecimiento de sesión
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.
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.
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.
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)
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)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Establecimiento de sesión simplificado
Establecimiento de sesión simplificado
Petición de conexión
Establecimiento de sesión simplificado
Petición de conexión
Envío de Challenge
Establecimiento de sesión simplificado
Petición de conexión
Envío de Challenge
Respuesta al Challenge
Establecimiento de sesión simplificado
Petición de conexión
Envío de Challenge
Respuesta al Challenge
Conexión valida: Envío de UID
Para obtener información útil:
Tenemos que recibir una petición de conexión
Para obtener información útil:
Tenemos que recibir una petición de conexión
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)
Para obtener información útil:
Tenemos que recibir una petición de conexión
Para obtener información útil:
Tenemos que recibir una petición de conexión.
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.
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.
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.
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)
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.
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.
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.
Pero...
Pero...
Tenemos prisa y un 486.
Pero...
Tenemos prisa y un 486.
Ah! Y una idea mejor...
Retomemos el establecimiento de sesión simplificado
Retomemos el establecimiento de sesión simplificado
Esta vez será el server quién“quiera” establecer una conexión con nosotros.
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
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.
Inyectando su propia respuesta al Challenge
Petición de conexión
Inyectando su propia respuesta al Challenge
Petición de conexión
Petición de conexión
Inyectando su propia respuesta al Challenge
Petición de conexión
Petición de conexión
Envío de Challenge (c)
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)
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’)
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’)
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
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