Driver - HackTheBox: Explotación de SMB y PrintNightmare

Detalles del objetivo

image-20240928125113024

Dirección IP del objetivo: 10.10.11.106

Dirección IP del Kali: 10.10.16.4

Reconocimiento y penetración inicial

  1. Verificar conectividad entre Kali y la máquina objetivo.

    image-20240928125248547

  2. 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
    
    

    image-20240928132122330

    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
    
    

    image-20240928132947418

    nmap -sU --top-ports 20 10.10.11.106   # Escaneo UDP de los 20 puertos más comunes
    
    

    image-20240928133132342

    nmap --script=vuln -p 80,135,445,5985 10.10.11.106 # Escaneo de vulnerabilidades
    
    

    image-20240928142444578

  3. Examinar el puerto 80 en un navegador.

    image-20240928143126936

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

    image-20240928143222706

    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
    
    

    image-20240928145451942

    Se encontraron las credenciales débiles: admin / admin.

    image-20240928143429561

    En la parte inferior de la página, se ve un dominio: driver.htb. Se agrega a /etc/hosts y se investiga el sitio.

    image-20240928144542380

    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.

    image-20240928145147642

    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.

    image-20240928145539063

    image-20240928145549398

    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.

    image-20240929093808507

    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
    
    

    image-20240929112418392

    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.

  1. Iniciar Responder en modo de escucha.

    image-20240929144722254

  2. Crear un archivo SCF malicioso y subirlo.

    image-20240929145049953

  3. 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.

    image-20240929145419737

  4. 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.

    image-20240929145913061

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

    image-20240929150654000

Punto de apoyo en el sistema

Con las credenciales: tony / liltony, se intenta acceder con nxc.

image-20240929151201628

Acceder directamente con evil-winrm.

evil-winrm -i driver.htb -u tony -p liltony

image-20240929151427565

Enumeración con WinPEAS

Descargar winpeas, subirlo a la máquina objetivo y ejecutarlo localmente.

image-20240929153443904

image-20240929153958813

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

image-20240929154258345

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

image-20240929154728061

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

image-20240929155130895

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

image-20240929155521405

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.

image-20240929155624943

image-20240929155834682

Subir este archivo DLL a la máquina objetivo.

image-20240929155927498

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

image-20240929160138418

image-20240929160252534

Etiquetas: SMB NTLM Responder PrintNightmare hashcat

Publicado el 7-18 19:35