
Exploit für CVE-2023-33246, der auf Apache RocketMQ 5.1.0 abzielt und eine Remote-Codeausführung durch gezielte Paketinjektion in den Update-Konfigurationsendpunkt des Brokers ermöglicht.
Apache RocketMQ ist eine verteilte Messaging- und Streaming-Plattform mit niedriger Latenz, hoher Leistung und Zuverlässigkeit, Billionen-Level-Kapazität und flexibler Skalierbarkeit.
Sie bietet eine Vielzahl von Funktionen:
Dieser Abschnitt führt Sie durch die Installation von RocketMQ auf verschiedene Weise. Für lokale Entwicklung und Tests wird für jede Komponente nur eine Instanz erstellt.
RocketMQ läuft auf allen gängigen Betriebssystemen und erfordert nur eine installierte Java JDK Version 8 oder höher.
Zur Überprüfung führen Sie java -version aus:
$ java -version
java version "1.8.0_121"
Für Windows-Benutzer klicken Sie hier um das RocketMQ 4.9.4 Binärrelease herunterzuladen,
entpacken Sie es auf Ihre lokale Festplatte, z.B. D:\rocketmq.
Für macOS- und Linux-Benutzer führen Sie die folgenden Befehle aus:
# Release vom Apache-Mirror herunterladen
$ wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip
# Release entpacken
$ unzip rocketmq-all-4.9.4-bin-release.zip
Bereiten Sie ein Terminal vor und wechseln Sie in das extrahierte bin-Verzeichnis:
$ cd rocketmq-4.9.4/bin
1) NameServer starten
Der NameServer hört auf 0.0.0.0:9876. Stellen Sie sicher, dass der Port auf dem lokalen Rechner nicht von anderen verwendet wird, und gehen Sie dann wie folgt vor.
Für macOS- und Linux-Benutzer:
### Name Server starten
$ nohup sh mqnamesrv &
### Überprüfen, ob der Name Server erfolgreich gestartet wurde
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
Für Windows-Benutzer müssen Sie zuerst Umgebungsvariablen setzen:
ROCKETMQ_HOME="D:\rocketmq" hinzu.Wechseln Sie dann in das Verzeichnis rocketmq und geben Sie ein und führen Sie aus:
$ mqnamesrv.cmd
The Name Server boot success...
2) Broker starten
Für macOS- und Linux-Benutzer:
### Broker starten
$ nohup sh bin/mqbroker -n localhost:9876 &
### Überprüfen, ob der Broker erfolgreich gestartet wurde, z.B.: Broker-IP ist 192.168.1.2, Broker-Name ist broker-a
$ tail -f ~/logs/rocketmqlogs/broker.log
The broker[broker-a, 192.169.1.2:10911] boot success...
Für Windows-Benutzer:
$ mqbroker.cmd -n localhost:9876
The broker[broker-a, 192.169.1.2:10911] boot success...
Sie können RocketMQ auf Ihrem eigenen Rechner in Docker-Containern ausführen.
Es wird das host-Netzwerk verwendet, um den Listener-Port im Container freizugeben.
1) NameServer starten
$ docker run -it --net=host apache/rocketmq ./mqnamesrv
2) Broker starten
$ docker run -it --net=host --mount source=/tmp/store,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876
Sie können auch einen RocketMQ-Cluster innerhalb eines Kubernetes-Clusters mit RocketMQ Operator ausführen.
Stellen Sie vor Ihren Operationen sicher, dass kubectl und die dazugehörige kubeconfig-Datei auf Ihrem Rechner installiert sind.
1) CRDs installieren
### CRDs installieren
$ git clone https://github.com/apache/rocketmq-operator
$ cd rocketmq-operator && make deploy
### Überprüfen, ob die CRDs erfolgreich installiert wurden
$ 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
### Überprüfen, ob der Operator läuft
$ kubectl get pods | grep rocketmq-operator
rocketmq-operator-6f65c77c49-8hwmj 1/1 Running 0 93s
2) Cluster-Instanz erstellen
### RocketMQ-Cluster-Ressource erstellen
$ cd example && kubectl create -f rocketmq_v1alpha1_rocketmq_cluster.yaml
### Überprüfen, ob die Cluster-Ressourcen laufen
$ kubectl get sts
NAME READY AGE
broker-0-master 1/1 107m
broker-0-replica-1 1/1 107m
name-service 1/1 107m
Wir begrüßen stets neue Beiträge, sei es für triviale Bereinigungen, große neue Funktionen oder andere materielle Belohnungen. Weitere Details finden Sie hier.
Apache License, Version 2.0 Copyright (C) Apache Software Foundation
Diese Distribution enthält kryptografische Software. Das Land, in dem Sie sich derzeit aufhalten, kann Beschränkungen für die Einfuhr, den Besitz, die Nutzung und/oder die Wiederausfuhr von Verschlüsselungssoftware in ein anderes Land haben. BEVOR Sie Verschlüsselungssoftware verwenden, überprüfen Sie bitte die Gesetze, Vorschriften und Richtlinien Ihres Landes bezüglich der Einfuhr, des Besitzes, der Nutzung und Wiederausfuhr von Verschlüsselungssoftware, um festzustellen, ob dies erlaubt ist. Weitere Informationen finden Sie unter http://www.wassenaar.org/.
Das US-Handelsministerium, Bureau of Industry and Security (BIS), hat diese Software als Export Commodity Control Number (ECCN) 5D002.C.1 eingestuft, zu der Informationssicherheitssoftware gehört, die asymmetrische Algorithmen verwendet oder kryptografische Funktionen ausführt. Die Form und Art dieser Apache Software Foundation Distribution macht sie für den Export unter der Lizenzausnahme ENC Technology Software Unrestricted (TSU) (siehe BIS Export Administration Regulations, Abschnitt 740.13) sowohl für Objektcode als auch für Quellcode geeignet.
Im Folgenden finden Sie weitere Details zur enthaltenen kryptografischen Software:
Diese Software verwendet Apache Commons Crypto (https://commons.apache.org/proper/commons-crypto/) zur Unterstützung der Authentifizierung sowie der Verschlüsselung und Entschlüsselung von Daten, die über das Netzwerk zwischen Diensten gesendet werden.