Hoy la entrada no va sobre soluciones de máquinas, la última certificación que he obtenido ni de Buffer Overflow. Vamos a ver un poco de teoría (¡uhhhh fueraaaa! Teoría caca) sobre los ataques de retransmisión SMB (SMB relay).
Siempre me paro a explicar todo en la práctica, pero creo firmemente que hay que saber de qué se habla en cada caso. Así que, te animo a que sigas leyendo.
![]() |
Imagen 1: para hablar, lee primero |
Básicamente, para poder hablar sobre cualquier tema, deberíamos de conocer mínimamente esa materia para poder comentar al respecto (si no quieres ser un cuñao más), si no, o te callas, o te pones a leer.
Vale, ahora ya que el 90% de los que me leen me odian, vamos a empezar xD.
¿Qué es SMB?
Para empezar diré que no es SuperMario Bross, por si alguien lo estaba pensando. Es más bien Server Message Block o SMB y es un protocolo que permite a un cliente comunicarse con un servidor, para obtener unos recursos de red. Trabaja en la capa de aplicación y presentación, por lo que depende de los protocolos de nivel inferior como TCP/IP y NetBIOS (hablamos de la famosa pila TCP/IP y OSI).
![]() |
Imagen 2: Pila OSI vs TCP/IP |
SMB utiliza el puerto 445 para la conexión y transmisión de los datos y, en las redes más pequeñas se conoce como LLMNR (Link-Local Multicast Name Resolution).
La forma (sin entrar en detalles) de su funcionamiento, sería algo parecido a esto:
- Se establece una sesión NetBIOS entre el cliente y el servidor.
- Tanto cliente como servidor "negocian" el protocolo SMB a usar.
- El cliente se autentica con sus credenciales contra el servidor .
- El cliente pide un recurso compartido del servidor
- El cliente abre el recuso solicitado.
- El cliente puede editar, leer o escribir ese recurso
Entonces, ¿cómo ocurre un ataque de relay?
Lo normal es que todas las sesiones SMB utilicen NTLM, el ataque abusa de ese protocolo de desafío-respuesta de NTLM. Entonces, en las comunicaciones entre el cliente y el servidor, el atacante actúa como "hombre en el medio" (MiTM) para poder capturar los paquetes que se están transmitiendo.
Por lo tanto, la finalidad de este ataque, es capturar los hashes de las contraseñas (principalmente), conversaciones, etc.
Nota: Estos hashes no sirven para hacer PassTheHash, pero si la contraseña no es robusta, sí que pueden valer para crackearlos y obtener una sesión en la máquina atacada.
![]() |
Imagen 3 y 4: Se obtiene el hash, se crackea con hashcat y se consigue una sesión en la máquina |
- Se escanea la red en busca de máquinas con el puerto 445 abierto.
- Se pone a la escucha responder (herramienta utilizada).
- El cliente hace una solicitud de un recuso al servidor.
- Interceptamos la comunicación obteniendo el hash NTLMv2.
- Se crackea el hash.
- Se accede a la máquina.
- Evitar en la medida de lo posible la versión 1 de SMB.
- Añadir una capa de seguridad poniendo un firewall de control avanzado.
- Hacer uso de UNC (Universal Naming Convention).
- Contar con una política de endurecimiento de contraseñas (cuanto más compleja sea la contraseña, más difícil será crackearla).
- Mantener el SO actualizado.
- Firmar SMB.
- Aumentar la seguridad de Kerberos y evitar (si es posible) NTLM.
0 comentarios:
Publicar un comentario