paint-brush
Pentests और Log4J: एक कमजोर प्रणाली का शोषण कैसे करेंद्वारा@raxis
1,693 रीडिंग
1,693 रीडिंग

Pentests और Log4J: एक कमजोर प्रणाली का शोषण कैसे करें

द्वारा Raxis2022/05/28
Read on Terminal Reader
Read this story w/o Javascript

बहुत लंबा; पढ़ने के लिए

इस लेख में, हम एक कमजोर प्रणाली का परीक्षण करते हैं और प्रदर्शित करते हैं कि किसी के लिए उपलब्ध Log4j ओपन-सोर्स शोषण का उपयोग करके एक दूरस्थ शेल कैसे प्राप्त किया जा सकता है। परिचय CVE-2021-44228 लेबल वाली यह महत्वपूर्ण भेद्यता बड़ी संख्या में ग्राहकों को प्रभावित करती है, क्योंकि Apache Log4j घटक का व्यापक रूप से वाणिज्यिक और ओपन-सोर्स सॉफ़्टवेयर दोनों में उपयोग किया जाता है। इसके अलावा, रैंसमवेयर हमलावर दुनिया भर में अधिक पीड़ितों तक अपनी पहुंच बढ़ाने के लिए Log4j शोषण को हथियार बना रहे हैं। यह प्रदर्शन कैसे काम करता है, इस बारे में अधिक जागरूकता प्रदान करने के लक्ष्य के साथ अधिक तकनीकी दर्शकों के लिए शैक्षिक उद्देश्यों के लिए हमारा प्रदर्शन प्रदान किया गया है। रैक्सिस का मानना है कि शोषण की संरचना की बेहतर समझ उपयोगकर्ताओं के लिए यह सीखने का सबसे अच्छा तरीका है कि इंटरनेट पर बढ़ते खतरों का मुकाबला कैसे किया जाए।

Company Mentioned

Mention Thumbnail
featured image - Pentests और Log4J: एक कमजोर प्रणाली का शोषण कैसे करें
Raxis HackerNoon profile picture


इस लेख में, हम एक कमजोर प्रणाली का परीक्षण करते हैं और प्रदर्शित करते हैं कि किसी के लिए उपलब्ध Log4j ओपन-सोर्स शोषण का उपयोग करके एक दूरस्थ शेल कैसे प्राप्त किया जा सकता है।

परिचय

CVE-2021-44228 लेबल वाली यह महत्वपूर्ण भेद्यता बड़ी संख्या में ग्राहकों को प्रभावित करती है, क्योंकि Apache Log4j घटक का व्यापक रूप से वाणिज्यिक और ओपन-सोर्स सॉफ़्टवेयर दोनों में उपयोग किया जाता है। इसके अलावा, रैंसमवेयर हमलावर दुनिया भर में अधिक पीड़ितों तक अपनी पहुंच बढ़ाने के लिए Log4j शोषण को हथियार बना रहे हैं।


यह शोषण कैसे काम करता है, इसके बारे में अधिक जागरूकता प्रदान करने के लक्ष्य के साथ अधिक तकनीकी दर्शकों के लिए शैक्षिक उद्देश्यों के लिए हमारा प्रदर्शन प्रदान किया जाता है।


रैक्सिस का मानना है कि शोषण की संरचना की बेहतर समझ उपयोगकर्ताओं के लिए यह सीखने का सबसे अच्छा तरीका है कि इंटरनेट पर बढ़ते खतरों का मुकाबला कैसे किया जाए।

Log4j शोषण स्टोरीबोर्ड

Apache Log4j भेद्यता, CVE-2021-44228 ( https://nvd.nist.gov/vuln/detail/CVE-2021-44228 ), बड़ी संख्या में सिस्टम को प्रभावित करती है, और हमलावर वर्तमान में इंटरनेट से जुड़े इस भेद्यता का फायदा उठा रहे हैं। दुनिया भर में सिस्टम।


इस तरह के हमले की शारीरिक रचना को प्रदर्शित करने के लिए, रक्सिस कार्रवाई में शोषण का चरण-दर-चरण प्रदर्शन प्रदान करता है। हमारे प्रदर्शन के भीतर, हम पीड़ित सर्वर के लिए उपयोग किए जाने वाले नेटवर्क वातावरण के बारे में धारणा बनाते हैं जो इस हमले को होने देगा।


इस हमले को सफल होने से रोकने के लिए निश्चित रूप से कई तरीके हैं, जैसे कि अधिक सुरक्षित फ़ायरवॉल कॉन्फ़िगरेशन या अन्य उन्नत नेटवर्क सुरक्षा उपकरणों का उपयोग करना, हालांकि, हमने इस हमले को प्रदर्शित करने के उद्देश्यों के लिए एक सामान्य "डिफ़ॉल्ट" सुरक्षा कॉन्फ़िगरेशन का चयन किया।

पीड़ित सर्वर

सबसे पहले, हमारा शिकार सर्वर एक टॉमकैट 8 वेब सर्वर है जो Apache Log4j के एक कमजोर संस्करण का उपयोग करता है और इसे एक डॉकटर कंटेनर में कॉन्फ़िगर और स्थापित किया जाता है।


डॉकर कंटेनर हमें पीड़ित सर्वर के लिए एक अलग वातावरण प्रदर्शित करने की अनुमति देता है जो हमारे परीक्षण वातावरण से अलग है। हमारा टॉमकैट सर्वर https://github.com/cyberxml/log4j-poc से प्राप्य एक नमूना वेबसाइट की मेजबानी कर रहा है और कमजोर वेब सर्वर के लिए पोर्ट 8080 को उजागर करने के लिए कॉन्फ़िगर किया गया है।


इस डॉकटर कंटेनर के लिए कोई अन्य इनबाउंड पोर्ट 8080 के अलावा उजागर नहीं किया गया है। डॉकर कंटेनर कई सर्वर नेटवर्क के डिफ़ॉल्ट कॉन्फ़िगरेशन के समान आउटबाउंड ट्रैफ़िक की अनुमति देता है।


ध्यान दें, इस विशेष GitHub रिपॉजिटरी में Log4j अटैक कोड और पेलोड का एक अंतर्निहित संस्करण भी दिखाया गया है, हालांकि, हमने इसे अपने उदाहरण के लिए अक्षम कर दिया ताकि स्क्रीन में एक दृश्य प्रदान किया जा सके जैसा कि एक हमलावर द्वारा देखा गया है। हम केवल टॉमकैट 8 वेब सर्वर भागों का उपयोग कर रहे हैं, जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है।


चित्र 1: पीड़ित टॉमकैट 8 डेमो वेब सर्वर रनिंग कोड Log4j शोषण के लिए असुरक्षित है


इसके बाद, हमें हमलावर के वर्कस्टेशन को सेटअप करने की आवश्यकता है। https://github.com/kozmer/log4j-shell-poc से शोषण कोड का उपयोग करते हुए, Raxis तीन टर्मिनल सत्रों को कॉन्फ़िगर करता है, जिन्हें Netcat श्रोता, पायथन वेब सर्वर और एक्सप्लॉइट कहा जाता है, जैसा कि नीचे दिखाया गया है।

नेटकैट श्रोता, पोर्ट 9001

नेटकैट श्रोता सत्र, चित्र 2 में दर्शाया गया है, पोर्ट 9001 पर चलने वाला एक नेटकैट श्रोता है। यह सत्र उस शेल को पकड़ने के लिए है जो शोषण के माध्यम से पीड़ित सर्वर से हमें भेजा जाएगा।

चित्र 2: पोर्ट 9001 पर हमलावर का नेटकैट श्रोता

पायथन वेब सर्वर, पोर्ट 80

चित्र 3 में पायथन वेब सर्वर सत्र एक पायथन वेब सर्वर है जो पीड़ित सर्वर को पेलोड वितरित करने के लिए पोर्ट 80 पर चल रहा है।


चित्र 3: पेलोड वितरित करने के लिए हमलावर का पायथन वेब सर्वर

एक्सप्लॉइट कोड, पोर्ट 1389

एक्सप्लॉइट सत्र, चित्र 4 में दिखाया गया है, प्रूफ-ऑफ-कॉन्सेप्ट Log4j शोषण कोड है जो पोर्ट 1389 पर संचालित होता है, जो एक हथियारयुक्त LDAP सर्वर बनाता है।


यह कोड पीड़ित सर्वर को जावा क्लास को डाउनलोड करने और निष्पादित करने के लिए पुनर्निर्देशित करेगा जो कि हमारे पायथन वेब सर्वर से ऊपर पोर्ट 80 पर चल रहा है।


जावा क्लास को शेल को पोर्ट 9001 में स्पॉन करने के लिए कॉन्फ़िगर किया गया है, जो कि चित्र 2 में हमारा नेटकैट श्रोता है।

चित्र 4: हमलावर का Log4J शोषण कोड

हमले को अंजाम दें

अब जब कोड का मंचन हो गया है, तो हमारे हमले को अंजाम देने का समय आ गया है। हम Chrome वेब ब्राउज़र का उपयोग करके पीड़ित वेबसर्वर से कनेक्ट होंगे।


चित्रा 5 में दिखाया गया हमारा हमला स्ट्रिंग, पोर्ट 1389 पर चल रहे हमलावर के शोषण सत्र के लिए एलडीएपी क्वेरी बनाने के लिए जेएनडीआई का शोषण करता है।


चित्र 5: पीड़ित की वेबसाइट और अटैक स्ट्रिंग


आक्रमण स्ट्रिंग Log4j में एक भेद्यता का शोषण करती है और अनुरोध करती है कि हमलावर के हथियारयुक्त LDAP सर्वर के विरुद्ध एक लुकअप किया जाए।


ऐसा करने के लिए, पोर्ट 1389 पर पीड़ित सर्वर से हमलावर के सिस्टम के लिए एक आउटबाउंड अनुरोध किया जाता है। चित्रा 6 में शोषण सत्र इनबाउंड एलडीएपी कनेक्शन की प्राप्ति और हमारे हमलावर के पायथन वेब सर्वर पर किए गए पुनर्निर्देशन को इंगित करता है।


चित्र 6: हमलावर का शोषण सत्र इनबाउंड कनेक्शन और पुनर्निर्देशन का संकेत देता है


एक्सप्लॉइट सत्र ने हमारे पायथन वेब सर्वर पर एक रीडायरेक्ट भेजा है, जो एक हथियारयुक्त जावा क्लास की सेवा कर रहा है जिसमें एक शेल खोलने के लिए कोड होता है।


यह जावा वर्ग वास्तव में हमारे शोषण सत्र से कॉन्फ़िगर किया गया था और इसे केवल पोर्ट 80 पर पायथन वेब सर्वर द्वारा परोसा जा रहा है। कनेक्शन लॉग नीचे चित्र 7 में दिखाया गया है।


चित्र 7: हमलावर का पायथन वेब सर्वर जावा शेल भेज रहा है


हमारे हमले का अंतिम चरण वह है जहां रैक्सिस पीड़ित के सर्वर के नियंत्रण के साथ शेल प्राप्त करता है। हमारे शिकार को भेजे गए जावा क्लास में कोड होता है जो हमारे हमलावर के नेटकैट सत्र के लिए एक दूरस्थ शेल खोलता है, जैसा कि चित्र 8 में दिखाया गया है।


हमलावर के पास अब टॉमकैट 8 सर्वर का पूर्ण नियंत्रण है, हालांकि उस डॉक सत्र तक सीमित है जिसे हमने इस परीक्षण परिदृश्य में कॉन्फ़िगर किया था।


चित्र 8: पीड़ित के सर्वर को नियंत्रित करने वाले शेल तक हमलावर की पहुंच

निष्कर्ष

जैसा कि हमने प्रदर्शित किया है, Log4j भेद्यता एक बहु-चरणीय प्रक्रिया है जिसे एक बार आपके पास सही टुकड़े होने के बाद निष्पादित किया जा सकता है। रैक्सिस इस कोड को रैंसमवेयर अटैक बॉट्स में लागू होते हुए देख रहा है जो सिस्टम का फायदा उठाने के लिए इंटरनेट पर खोज कर रहे हैं।


यह निश्चित रूप से एक महत्वपूर्ण मुद्दा है जिसे जल्द से जल्द संबोधित करने की आवश्यकता है, क्योंकि यह एक हमलावर के सामने आने से पहले की बात है।


यहाँ भी प्रकाशित