
Exploit para CVE-2023-33246 dirigido a Apache RocketMQ 5.1.0, que permite la ejecución remota de código mediante la inyección de paquetes manipulados en el endpoint de actualización de configuración del broker.
Apache RocketMQ es una plataforma distribuida de mensajería y streaming con baja latencia, alto rendimiento y fiabilidad, capacidad a nivel de billones y escalabilidad flexible.
Ofrece una variedad de funciones:
Este párrafo te guía a través de los pasos para instalar RocketMQ de diferentes maneras. Para el desarrollo y las pruebas locales, solo se creará una instancia de cada componente.
RocketMQ se ejecuta en todos los sistemas operativos principales y solo requiere que esté instalado un JDK de Java versión 8 o superior.
Para comprobarlo, ejecuta java -version:
$ java -version
java version "1.8.0_121"
Para usuarios de Windows, haz clic aquí para descargar la versión binaria 4.9.4 de RocketMQ,
descomprímela en tu disco local, por ejemplo D:\rocketmq.
Para usuarios de macOS y Linux, ejecuta los siguientes comandos:
# Download release from the Apache mirror
$ wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip
# Unpack the release
$ unzip rocketmq-all-4.9.4-bin-release.zip
Prepara una terminal y cambia al directorio bin extraído:
$ cd rocketmq-4.9.4/bin
1) Iniciar NameServer
NameServer escuchará en 0.0.0.0:9876; asegúrate de que el puerto no esté siendo utilizado por otros procesos en la máquina local y, a continuación, haz lo siguiente.
Para usuarios de macOS y Linux:
### start Name Server
$ nohup sh mqnamesrv &
### check whether Name Server is successfully started
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
Para usuarios de Windows, primero debes configurar las variables de entorno:
ROCKETMQ_HOME="D:\rocketmq".A continuación, cambia al directorio de rocketmq, escribe y ejecuta:
$ mqnamesrv.cmd
The Name Server boot success...
2) Iniciar Broker
Para usuarios de macOS y Linux:
### start Broker
$ nohup sh bin/mqbroker -n localhost:9876 &
### check whether Broker is successfully started, eg: Broker's IP is 192.168.1.2, Broker's name is broker-a
$ tail -f ~/logs/rocketmqlogs/broker.log
The broker[broker-a, 192.169.1.2:10911] boot success...
Para usuarios de Windows:
$ mqbroker.cmd -n localhost:9876
The broker[broker-a, 192.169.1.2:10911] boot success...
Puedes ejecutar RocketMQ en tu propia máquina mediante contenedores Docker;
se utilizará la red host para exponer el puerto de escucha en el contenedor.
1) Iniciar NameServer
$ docker run -it --net=host apache/rocketmq ./mqnamesrv
2) Iniciar Broker
$ docker run -it --net=host --mount source=/tmp/store,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876
También puedes ejecutar un clúster de RocketMQ dentro de un clúster de Kubernetes utilizando RocketMQ Operator.
Antes de realizar operaciones, asegúrate de que kubectl y el archivo kubeconfig correspondiente estén instalados en tu máquina.
1) Instalar CRDs
### install CRDs
$ git clone https://github.com/apache/rocketmq-operator
$ cd rocketmq-operator && make deploy
### check whether CRDs is successfully installed
$ kubectl get crd | grep rocketmq.apache.org
brokers.rocketmq.apache.org 2022-05-12T09:23:18Z
consoles.rocketmq.apache.org 2022-05-12T09:23:19Z
nameservices.rocketmq.apache.org 2022-05-12T09:23:18Z
topictransfers.rocketmq.apache.org 2022-05-12T09:23:19Z
### check whether operator is running
$ kubectl get pods | grep rocketmq-operator
rocketmq-operator-6f65c77c49-8hwmj 1/1 Running 0 93s
2) Crear la instancia del clúster
### create RocketMQ cluster resource
$ cd example && kubectl create -f rocketmq_v1alpha1_rocketmq_cluster.yaml
### check whether cluster resources is running
$ kubectl get sts
NAME READY AGE
broker-0-master 1/1 107m
broker-0-replica-1 1/1 107m
name-service 1/1 107m
Siempre damos la bienvenida a nuevas contribuciones, ya sean pequeñas limpiezas, grandes funcionalidades u otras recompensas materiales; más detalles aquí.
Apache License, Version 2.0 Copyright (C) Apache Software Foundation
Esta distribución incluye software criptográfico. El país en el que resides actualmente puede tener restricciones sobre la importación, posesión, uso y/o reexportación a otro país de software de cifrado. ANTES de utilizar cualquier software de cifrado, consulta las leyes, regulaciones y políticas de tu país relativas a la importación, posesión, uso y reexportación de software de cifrado, para comprobar si está permitido. Consulta http://www.wassenaar.org/ para más información.
El Departamento de Comercio del Gobierno de los Estados Unidos, Oficina de Industria y Seguridad (BIS), ha clasificado este software con el Número de Control de Exportación de Mercancías (ECCN) 5D002.C.1, que incluye software de seguridad de la información que utiliza o realiza funciones criptográficas con algoritmos asimétricos. La forma y manera de esta distribución de Apache Software Foundation la hace elegible para la exportación bajo la excepción de Licencia ENC Technology Software Unrestricted (TSU) (véanse las Regulaciones de Administración de Exportaciones del BIS, Sección 740.13), tanto para código objeto como para código fuente.
A continuación se ofrecen más detalles sobre el software criptográfico incluido:
Este software utiliza Apache Commons Crypto (https://commons.apache.org/proper/commons-crypto/) para admitir la autenticación y el cifrado y descifrado de los datos enviados a través de la red entre los servicios.