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!
Poison
Initial Foothold
Mirando la página web en el puerto 80
y jugando con las diferentes opciones, ejecutamos listfile.php
y ver que hay un archivo de texto llamado pwdbackup.txt
con el siguiente contenido:
This password is secure, it's encoded atleast 13 times.. what could go wrong really..
Vm0wd2QyUXlVWGxWV0d4WFlURndVRlpzWkZOalJsWjBUVlpPV0ZKc2JETlhhMk0xVmpKS1IySkVU
bGhoTVVwVVZtcEdZV015U2tWVQpiR2hvVFZWd1ZWWnRjRWRUTWxKSVZtdGtXQXBpUm5CUFdWZDBS
bVZHV25SalJYUlVUVlUxU1ZadGRGZFZaM0JwVmxad1dWWnRNVFJqCk1EQjRXa1prWVZKR1NsVlVW
M040VGtaa2NtRkdaR2hWV0VKVVdXeGFTMVZHWkZoTlZGSlRDazFFUWpSV01qVlRZVEZLYzJOSVRs
WmkKV0doNlZHeGFZVk5IVWtsVWJXaFdWMFZLVlZkWGVHRlRNbEY0VjI1U2ExSXdXbUZEYkZwelYy
eG9XR0V4Y0hKWFZscExVakZPZEZKcwpaR2dLWVRCWk1GWkhkR0ZaVms1R1RsWmtZVkl5YUZkV01G
WkxWbFprV0dWSFJsUk5WbkJZVmpKMGExWnRSWHBWYmtKRVlYcEdlVmxyClVsTldNREZ4Vm10NFYw
MXVUak5hVm1SSFVqRldjd3BqUjJ0TFZXMDFRMkl4WkhOYVJGSlhUV3hLUjFSc1dtdFpWa2w1WVVa
T1YwMUcKV2t4V2JGcHJWMGRXU0dSSGJFNWlSWEEyVmpKMFlXRXhXblJTV0hCV1ltczFSVmxzVm5k
WFJsbDVDbVJIT1ZkTlJFWjRWbTEwTkZkRwpXbk5qUlhoV1lXdGFVRmw2UmxkamQzQlhZa2RPVEZk
WGRHOVJiVlp6VjI1U2FsSlhVbGRVVmxwelRrWlplVTVWT1ZwV2EydzFXVlZhCmExWXdNVWNLVjJ0
NFYySkdjR2hhUlZWNFZsWkdkR1JGTldoTmJtTjNWbXBLTUdJeFVYaGlSbVJWWVRKb1YxbHJWVEZT
Vm14elZteHcKVG1KR2NEQkRiVlpJVDFaa2FWWllRa3BYVmxadlpERlpkd3BOV0VaVFlrZG9hRlZz
WkZOWFJsWnhVbXM1YW1RelFtaFZiVEZQVkVaawpXR1ZHV210TmJFWTBWakowVjFVeVNraFZiRnBW
VmpOU00xcFhlRmRYUjFaSFdrWldhVkpZUW1GV2EyUXdDazVHU2tkalJGbExWRlZTCmMxSkdjRFpO
Ukd4RVdub3dPVU5uUFQwSwo=
Después de decodificar la base64 un millón de veces: Charix!2#4%6&8(0
.
También vemos que cuando se ejecuta un script desde la página principal, los pone como un parámetro de
browse.php
: http://10.10.10.84/browse.php?file=ini.php
.
¿Podemos leer diferentes archivos? http://10.10.10.84/browse.php?file=/etc/passwd
. Podemos, WTF...
Y encontramos un usuario llamado charix
.
Entonces, podemos entrar como charix
con la contraseña: Charix!2#4%6&8(0
.
Root
En el directorio home del usuario hay un archivo llamado secreto.zip
, si tratamos de extraerlo dice que tiene una
contraseña. Usando la misma contraseña que usamos para la conexión ssh, podemos descomprimir el archivo.
Después de hacer un poco de enumeración manual (por el maldito BSD), nos tropezamos con un proceso peculiar cuando realizamos ps aux
.
root 529 0.0 0.9 23620 8868 v0- I 17:58 0:00.02 Xvnc :1 -desktop X -httpd /usr/local/share/tightvnc/classes -auth /root/.Xauthority -geometry 1280x800 -depth 24 -rfbwait 120000 -rfbauth /root/.vnc/passwd -rfbport 5901 -lo
Vemos que es un servidor VNC que funciona en el puerto 5901, lo que podemos confirmar con sockstat -l
.
La forma más fácil de interactuar con este servicio es hacer un túnel a través de ssh (pro-tip, usa el konami
código para ssh):
Desde nuestra sesión de ssh, presiona ENTER y escribe ~C
y luego añade -L 6969:localhost:5901
.
Ahora podemos usar un cliente VNC, como vncviewer
para conectarnos a él:
vncviewer localhost:6969
No funciona, requiere una contraseña. Tenemos algo que podría ser la contraseña, el archivo que
extraído de secret.zip
, pero ni siquiera parece un texto imprimible. Tal vez podamos introducir el
la contraseña directamente como un archivo. Buscando a través de vncviewer -h
vemos que existe esta opción: -p
.
Así que, con el siguiente comando: vncviewer -p secret localhost:6969
nos conectamos al servidor VNC,
que muestra una terminal con una cáscara de raíz en ella.
Bonus Footage
Como no pude conseguir copiar y pegar el maldito root.txt, usé python -m SimpleHTTPServer 6969
para descargarlo rápidamente de mi máquina usando wget 10.10.10.84:6969/root.txt
.