Responder
Dificultad: Very Easy - OS: Windows
Enumeración de puertos/servicios
┌──(dante㉿kali)-[/home/kali]
└─# nmap -sCV --open -T4 -v -n 10.129.184.235📌 Parámetros
-sCV:-sC: Ejecuta scripts de detección predeterminados → Usa los scripts denmapubicados en/usr/share/nmap/scripts/, los cuales buscan información adicional en los puertos abiertos.-sV: Detección de versiones → Intenta identificar el software y su versión en los puertos abiertos.
-n: No resuelve nombres de dominio (reduce el tiempo del escaneo).--open: Muestra solo puertos abiertos → Filtra la salida para no mostrar puertos cerrados o filtrados.-T4: Ajusta la velocidad del escaneo → T4 es un nivel "agresivo" que acelera el escaneo, útil en redes rápidas.-v: Modo verbose → Muestra más detalles sobre el progreso del escaneo.
Resultados:
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.52 ((Win64) OpenSSL/1.1.1m PHP/8.1.1)
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache/2.4.52 (Win64) OpenSSL/1.1.1m PHP/8.1.1
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Microsoft-HTTPAPI/2.0
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows En síntesis:
Inspección del puerto 80: encontramos un dominio, pero no podemos ver su contenido y esto se debe a un problema con el Virtual hosts

📌¿Qué es el virtual hosts?
Virtual Hosts en servidores web:
Servidores como Apache y Nginx permiten configurar múltiples sitios web en la misma IP mediante Virtual Hosts.
Si accedes directamente por la IP (
http://10.129.184.235), el servidor no sabe qué sitio web deseas ver y puede no responder correctamente o servir una página por defecto (vacía o de error).
Cómo lo soluciona
/etc/hosts:Cuando agregas
10.129.184.235 unika.htben/etc/hosts, le indicas a tu sistema que el dominiounika.htbdebe resolverse a esa IP.Ahora, si accedes a
http://unika.htb, tu navegador o herramientas comocurlenviarán la cabeceraHost: unika.htben la petición HTTP.El servidor web en
10.129.184.235reconocerá la cabeceraHost: unika.htby servirá el contenido correspondiente.
La cabecera
Hostes un encabezado HTTP que indica al servidor web a qué dominio o subdominio se está accediendo en una petición HTTP.
Para resolver este problema tenemos que asociar la IP con el dominio en el archivo /etc/hosts de la siguiente manera:
Ahora si podemos ver el sitio web
Inspeccionando la página web, identificaremos un posible punto de ataque para probar una vulnerabilidad de Local File Inclusion (LFI) mediante Path Traversal en la URL. Al cambiar el idioma del sitio, observamos la siguiente estructura en la dirección: http://unika.htb/index.php?page=french.html Esta URL podría ser vulnerable a LFI debido a la manera en que el servidor maneja el parámetro page.
Una forma de automatizar un ataque de tipo LFI es usando wfuzz de la siguiente manera:
📌 Desglose del comando
wfuzzEs una herramienta para fuzzing web que se usa para encontrar vulnerabilidades como LFI (Local File Inclusion), directorios ocultos, parámetros vulnerables, etc.
-w /usr/share/wordlists/seclists/Fuzzing/LFI/file_inclusion_windows.txt-windica la wordlist que se usará para fuzzear.En este caso, se usa una lista específica de rutas de inclusión de archivos en Windows (
file_inclusion_windows.txt).
-u http://unika.htb/index.php?page=FUZZ-udefine la URL objetivo.FUZZes el marcador de posición quewfuzzreemplazará con cada entrada de la wordlist.Esto significa que
wfuzzprobará diferentes valores en el parámetropage, por ejemplo:http://unika.htb/index.php?page=C:\windows\win.inihttp://unika.htb/index.php?page=../../../../../etc/passwd(si el servidor es Linux)http://unika.htb/index.php?page=\\192.168.1.100\share\file.txt(si intenta acceder a una ruta de red en Windows).
--hc 404--hc(hide code) oculta respuestas con un código HTTP 404 Not Found.Así se filtran respuestas inútiles y solo se muestran las que devuelven un código diferente (posibles archivos encontrados).
--hl=0--hl(hide lines) oculta respuestas cuyo contenido tenga 0 líneas.Esto ayuda a filtrar respuestas vacías o irrelevantes.
SMB Relay via RFI o Forced SMB Authentication
Pero para este caso no nos sirve de mucho, lo que nosotros tenemos que capturar o interceptar es el hash NTLM, o challenge-response, del cliente Windows, pero antes aclaremos algunos conceptos en el siguiente link:
Paso a paso del ataque:
Explotación de RFI:
Se inyecta una ruta SMB en el parámetro vulnerable de la web objetivo, por ejemplo:
Esto hace que el servidor web intente cargar un archivo remoto desde
\\10.129.184.235\share
Autenticación automática de Windows:
Windows intenta autenticarse en el recurso compartido SMB.
Dependiendo de la configuración, usa NetNTLMv2 para autenticarse automáticamente.
Interceptación del hash con Responder o Impacket-smbserver:
Si
Responderestá en escucha (responder -I tun0 -v), capturará la autenticación NTLM.Si se usa
impacket-smbserver, se simula un servidor SMB para que la víctima intenté autenticarse.
Cracking del hash:
Se extrae el NetNTLMv2 y se usa
johnohashcatpara intentar recuperar la contraseña en texto claro.
Lo primero que vamos a hacer es , usar el parámetro 'page=' para, mediante RFI, enviar una solicitud de conexión desde el servidor web al Responder que estará en escucha desde nuestro equipo atacante:
Otra tool alternativa que podemos aplicar para levantar un servidor SMB falso es Impacket-smbserver, de la suite de impacket:
Guardamos el hash:
Hash cracking con John
Crackeamos el hash con john the ripper:
RCE con EvilWinRM
Ahora que tenemos un usuario y sus credenciales podemos conectarnos al puerto 5985 de WinRM con la tool evil-winrm
Conclusión:
Este ataque es extremadamente efectivo porque:
Windows intenta autenticarse automáticamente en servidores SMB.
Las credenciales capturadas pueden usarse para comprometer la red.
Es un método común para escalar privilegios en entornos Windows.
Si el puerto 5985 (WinRM) está abierto, lo más probable es que la máquina use autenticación NTLM
Resumen final:
✔ NetNTLMv2 es un protocolo de autenticación basado en challenge-response.
✔ Responder captura NetNTLMv2 interceptando autenticaciones SMB automáticas.
✔ WinRM permite ejecutar comandos remotos y es usado en pentesting con Evil-WinRM.
✔ Una vulnerabilidad RFI puede forzar autenticaciones SMB, permitiendo capturar hashes NTLM con Responder o Impacket.
Last updated