Detalles del objetivo

Dirección IP del objetivo: 10.10.11.106
Dirección IP del Kali: 10.10.16.4
Reconocimiento y penetración inicial
-
Verificar conectividad entre Kali y la máquina objetivo.

-
Realizar un escaneo de reconocimiento con nmap.
nmap -sT --min-rate 1000 -p- 10.10.11.106 # Escaneo TCP de todos los puertos con tasa mínima de 1000 paquetes/segundo
nmap -sT -sC -sV -p 80,135,445,5985 10.10.11.106 # Escaneo detallado: TCP, scripts por defecto, detección de versiones de servicios
nmap -sU --top-ports 20 10.10.11.106 # Escaneo UDP de los 20 puertos más comunes
nmap --script=vuln -p 80,135,445,5985 10.10.11.106 # Escaneo de vulnerabilidades
-
Examinar el puerto 80 en un navegador.

Hay un formulario de inicio de sesión. Basado en una pista del escaneo de puertos,

se sospecha que el nombre de usuario es 'admin'. Se puede intentar con credenciales débiles o realizar un ataque de fuerza bruta simple.
nmap --script=http-brute -p 80 10.10.11.106
Se encontraron las credenciales débiles: admin / admin.

En la parte inferior de la página, se ve un dominio: driver.htb. Se agrega a
/etc/hostsy se investiga el sitio.
Se muestran opciones para compartir archivos y subirlos. Según el escaneo de puertos, se verifica si los recursos compartidos en los puertos 135 y 445 son accesibles.

Usando nxc para listar los recursos compartidos, se indica que hay interacción pero sin permisos de acceso. Lo mismo ocurre con el puerto 135. También es necesario enumerar con enum4linux-ng.


enum4linux-ng no encuentra información útil. Se vuelve a la función de subida de archivos en el navegador.
Modificar la IP en el script de shell reverso a 10.10.16.4.

Después de la modificación, se sube el archivo y se captura el paquete para copiar las credenciales de autorización.
Authorization: Basic YWRtaW46YWRtaW4=Usar feroxbuster para la fuerza bruta de directorios, buscando solo archivos PHP para localizar el shell subido, incluyendo el encabezado.
feroxbuster -u http://driver.htb/ -x php -H "Authorization: Basic YWRtaW46YWRtaW4=" -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
No se encontraron directorios útiles. Se podría probar con otros diccionarios, pero se omite aquí.
Análisis de la superficie de ataque
Mecanismo de autenticación en la red interna (SMB): En entornos no pertenecientes a un dominio, se suele usar el cifrado NTLM. El sistema anterior, LM (LAN Manager), era débil porque usaba hashes simples sin sal y dividía las contraseñas en bloques de 7 caracteres. Luego vino NTLMv1, más seguro pero aún vulnerable. La versión actual, NTLMv2, es más robusta al introducir desafío-respuesta del cliente y servidor y usar MD5, pero sigue siendo vulnerable con contraseñas débiles.
Protocolos de red interna: Aunque se puede usar DNS para resolver nombres de host en IP, no siempre está presente. En su ausencia, los protocolos de resolución se degradan a NetBIOS o LLMNR (Link-Local Multicast Name Resolution), que son protocolos de difusión. SMB utiliza estos protocolos degradados.
SMB (Server Message Block): Es un protocolo de capa de aplicación para compartir archivos, impresoras y otras comunicaciones en red. Permite a las computadoras acceder a archvios compartidos en una red de área local.
Dado que la máquina no parece estar en un dominio, se asume el uso de NTLM. Cuando no hay DNS, los protocolos se degradan a difusión, lo que permite ataques de "sniffing".
Herramienta: Responder
Responder puede realizar un ataque de intermediario (MITM) sobre intentos de autenticación NTLM, enviando un desafío NTLM falso a la víctima para obtener una respuesta NTLM que contiene el hash de las credenciales. Luego, estos hashes se pueden descifrar fuera de línea.
Ataque SMB con archivos SCF
Se necesita generar una autenticación NTLM y degradar el protocolo a NetBIOS o LLMNR. Dado que la aplicación web sube archivos a un recurso compartido y el puerto 445 (SMB) está abierto (aunque sin permisos), se puede usar un archivo SCF para desencadenar esto.
-
Iniciar Responder en modo de escucha.

-
Crear un archivo SCF malicioso y subirlo.

-
Después de la subida, Responder captura los hashes de autenticación. El nombre de usuario es 'tony'. Los hashes varían debido al valor aleatorio, la respuesta y la marca de tiempo. Guardar todas las capturas en un archivo 'digest' y luego extraerlos.

-
Debido al tiempo y los valores aleatorois, el hash no se puede usar para un ataque de paso de hash (Pass-the-Hash). Se identifica el tipo de hash con nth.

-
Usar hashcat para descifrar el hash y obtener la credencial 'liltony'.

Punto de apoyo en el sistema
Con las credenciales: tony / liltony, se intenta acceder con nxc.

Acceder directamente con evil-winrm.
evil-winrm -i driver.htb -u tony -p liltony

Enumeración con WinPEAS
Descargar winpeas, subirlo a la máquina objetivo y ejecutarlo localmente.


Redirigir la salida a un archivo 'out.txt' y descargarlo para analizarlo. Prestar atención a las secciones resaltadas en rojo.
cat out.txt | less -R

La enumeración con WinPEAS y las pistas de la interfaz web indican una gran cantidad de contenido relacionado con impresoras. Usar el módulo de nxc para verifciar si el servicio 'spooler' está habilitado.
nxc smb driver.htb -u tony -p liltony -M spooler

El servicio está activo. Según la documentación, el 'spooler' tiene una vulnerabilidad conocida: PrintNightmare. nxc tiene un módulo para verificarla.

La vulnerabilidad existe. Se proporciona una herramienta de explotación.

Como el controlador se implementa a través de una biblioteca de enlace dinámico (DLL), se necesita preparar una DLL para el shell reverso.


Subir este archivo DLL a la máquina objetivo.

Luego, desde el directorio de la herramienta de explotación, ejecutarla mientras se inicia un listener en la máquina atacante.

