
Эксплойт для CVE-2023-33246, нацеленный на Apache RocketMQ 5.1.0, обеспечивающий удалённое выполнение кода путём внедрения специально сформированных пакетов в конечную точку обновления конфигурации брокера.
Apache RocketMQ — это распределённая платформа обмена сообщениями и потоковой обработки данных с низкой задержкой, высокой производительностью и надёжностью, ёмкостью триллионного уровня и гибкой масштабируемостью.
Она предоставляет множество возможностей:
В этом разделе описаны шаги по установке RocketMQ различными способами. Для локальной разработки и тестирования будет создан только один экземпляр каждого компонента.
RocketMQ работает во всех основных операционных системах и требует только установки Java JDK версии 8 или выше.
Чтобы проверить, выполните java -version:
$ java -version
java version "1.8.0_121"
Для пользователей Windows нажмите здесь, чтобы загрузить бинарный выпуск RocketMQ 4.9.4,
распакуйте его на локальный диск, например D:\rocketmq.
Для пользователей macOS и Linux выполните следующие команды:
# 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
Подготовьте терминал и перейдите в извлечённый каталог bin:
$ cd rocketmq-4.9.4/bin
1) Запуск NameServer
NameServer будет прослушивать порт 0.0.0.0:9876, убедитесь, что этот порт не занят другими процессами на локальной машине, а затем выполните следующие действия.
Для пользователей macOS и 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...
Пользователям Windows сначала необходимо задать переменные окружения:
ROCKETMQ_HOME="D:\rocketmq".Затем перейдите в каталог rocketmq, введите и выполните:
$ mqnamesrv.cmd
The Name Server boot success...
2) Запуск Broker
Для пользователей macOS и 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...
Для пользователей Windows:
$ mqbroker.cmd -n localhost:9876
The broker[broker-a, 192.169.1.2:10911] boot success...
Вы можете запустить RocketMQ на своей машине в Docker-контейнерах;
для предоставления прослушивающего порта в контейнере будет использоваться сеть host.
1) Запуск NameServer
$ docker run -it --net=host apache/rocketmq ./mqnamesrv
2) Запуск Broker
$ docker run -it --net=host --mount source=/tmp/store,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876
Вы также можете запустить кластер RocketMQ в кластере Kubernetes с помощью RocketMQ Operator.
Перед началом работы убедитесь, что на вашей машине установлены kubectl и соответствующий файл kubeconfig.
1) Установка 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) Создание экземпляра кластера
### 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
Мы всегда рады новым вкладам — будь то небольшие правки, крупные новые функции или другие существенные улучшения. Подробнее см. здесь.
Apache License, Version 2.0 Copyright (C) Apache Software Foundation
Этот дистрибутив включает криптографическое программное обеспечение. В стране вашего текущего проживания могут действовать ограничения на импорт, хранение, использование и/или реэкспорт в другую страну программного обеспечения для шифрования. ПЕРЕД использованием любого программного обеспечения для шифрования, пожалуйста, ознакомьтесь с законами, нормативными актами и политикой вашей страны, касающимися импорта, хранения, использования и реэкспорта программного обеспечения для шифрования, чтобы убедиться, что это разрешено. Дополнительную информацию см. на http://www.wassenaar.org/.
Министерство торговли правительства США, Бюро промышленности и безопасности (BIS), классифицировало это программное обеспечение как Export Commodity Control Number (ECCN) 5D002.C.1, что включает программное обеспечение для защиты информации, использующее или выполняющее криптографические функции с асимметричными алгоритмами. Форма и способ распространения этого дистрибутива Apache Software Foundation делают его пригодным для экспорта в соответствии с лицензионным исключением ENC Technology Software Unrestricted (TSU) (см. раздел 740.13 Правил экспортного администрирования BIS) как для объектного, так и для исходного кода.
Ниже приведены дополнительные сведения о включённом криптографическом программном обеспечении:
Это программное обеспечение использует Apache Commons Crypto (https://commons.apache.org/proper/commons-crypto/) для поддержки аутентификации, а также шифрования и дешифрования данных, передаваемых по сети между сервисами.