Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/fabioeletto/hka-seminar-log4shell
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubfabioeletto/hka-seminar-log4shell

hka-seminar-log4shell

Log4Shell सुरक्षा छेद (CVE-2021-44228) का व्यावहारिक प्रदर्शन

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

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

सभी देखें →

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

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

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

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

सेमिनार कार्य - Log4Shell भेद्यता प्रदर्शन (CVE-2021-44228)

सुरक्षा सूचना

यह रिपॉजिटरी केवल शैक्षिक और प्रदर्शन उद्देश्यों के लिए है, जो एक सुरक्षा-संबंधित सेमिनार कार्य के भाग के रूप में है। इस कोड का उपयोग उत्पादन वातावरण में या स्पष्ट अनुमति के बिना सिस्टम के विरुद्ध न करें। इसका निर्माण सुरक्षा जागरूकता बढ़ाने और यह दिखाने के लिए किया गया है कि जब प्रतीत होने वाली हानिरहित सुविधाएँ जैसे लॉगिंग, नाम समाधान और क्लासेस का गतिशील लोडिंग एक साथ संयोजित होती हैं, तो जटिल भेद्यताएँ कैसे उत्पन्न हो सकती हैं।

विषयसूची

  • 1. परियोजना विवरण

    • 1.1 सेमिनार कार्य का उद्देश्य
    • 1.2 प्रदर्शन का अवलोकन
  • 2. Log4Shell क्या है?

  • 3. तकनीकी घटक विस्तार से

    • 3.1 Log4j - कार्यप्रणाली
    • 3.2 JNDI - लुकअप तंत्र
    • 3.3 LDAP - संरचना और भूमिका
    • 3.4 Log4Shell का सामान्य प्रवाह
  • 4. परियोजना संरचना और सेटअप

    • 4.1 निर्देशिका अवलोकन
    • 4.2 पूर्वापेक्षाएँ
    • 4.3 सेटअप
  • 5. परियोजना का डेमो

  • 6. सुरक्षा उपाय

  • 7. निष्कर्ष

  • 8. स्रोत

1. परियोजना विवरण

1.1 सेमिनार कार्य का उद्देश्य

इस सेमिनार कार्य का उद्देश्य Log4Shell सुरक्षा छिद्र (CVE-2021-44228) की गहरी समझ प्रदान करना है, जो दिसंबर 2021 में ज्ञात हुआ और हाल के वर्षों के सबसे गंभीर सुरक्षा छिद्रों में से एक माना गया। इस कार्य में सैद्धांतिक आधारों को समझाया गया है, साथ ही भेद्यता का एक व्यावहारिक प्रदर्शन भी दिखाया गया है।

1.2 प्रदर्शन का अवलोकन

Log4Shell सुरक्षा छिद्र के व्यावहारिक चित्रण के लिए, इस रिपॉजिटरी में एक पृथक और कंटेनरीकृत वातावरण स्थापित किया गया है, जो पूर्ण हमले की प्रक्रिया को पुनरुत्पादित रूप से प्रस्तुत करता है। प्रदर्शन तीन प्रमुख घटकों पर आधारित है:

  • vulnerable-app: एक जानबूझकर भेद्य स्प्रिंग बूट एप्लिकेशन जिसमें Log4j संस्करण 2.14.1 है। यह HTTP अनुरोध से User-Agent हेडर को लॉग करता है, जिसे हमलावर भेद्यता का शोषण करने के लिए हेरफेर कर सकते हैं।
  • ldap-server: प्रसिद्ध उपकरण marshalsec का एक फोर्क, जो LDAP सर्वर के रूप में कार्य करता है। यह सर्वर हमलावर के नियंत्रण में है और एक दुर्भावनापूर्ण Java क्लास का संदर्भ प्रदान करता है, जिसे बाद में निष्पादित किया जाता है।
  • payload-server: एक सरल HTTP सर्वर जो एक दुर्भावनापूर्ण Java क्लास (Exploit.class) प्रदान करता है। LDAP सर्वर की तरह, यह सर्वर भी हमलावर के नियंत्रण में है।

नोट: सेटअप और प्रदर्शन के निष्पादन के बारे में अधिक जानकारी के लिए अनुभाग 4. परियोजना संरचना और सेटअप और 5. परियोजना का डेमो देखें।

2. Log4Shell क्या है?

Log4Shell Java लाइब्रेरी Log4j में CVE-2021-44228 नामक एक गंभीर सुरक्षा छिद्र का नाम है। यह एक हमलावर को न्यूनतम प्रयास के साथ किसी दूरस्थ सर्वर पर मनमाना कोड निष्पादित करने (Remote Code Execution, संक्षेप में RCE) की अनुमति देता है।

यह भेद्यता Log4j के संस्करणों 2.0 से 2.14.1 को प्रभावित करती है और इतनी गंभीर है कि इसे कई सुरक्षा एजेंसियों, जिनमें BSI (Bundesamt für Sicherheit in der Informationstechnik) शामिल है, द्वारा उच्चतम जोखिम स्तर पर रखा गया है।

Log4Shell इसलिए विशेष रूप से खतरनाक है, क्योंकि ...

  • Log4j अत्यंत व्यापक रूप से उपयोग किया जाता है। इसका उपयोग गेम सर्वर से लेकर एंटरप्राइज़ अनुप्रयोगों तक होता है।
  • कोई प्रमाणीकरण आवश्यक नहीं है, कोई भी अनाम बाहरी हमलावर संभावित रूप से नुकसान पहुंचा सकता है।
  • हमले का वेक्टर तुच्छ है, अक्सर एप्लिकेशन को एक हेरफेर किया गया स्ट्रिंग भेजना पर्याप्त होता है।
  • Log4j में इस भेद्यता का शोषण करने की कार्यक्षमता डिफ़ॉल्ट रूप से सक्षम है।

वास्तविक कारण Log4j की एक कार्यक्षमता में निहित है जो लुकअप के माध्यम से लॉग संदेशों में गतिशील सामग्री लोड करने की अनुमति देती है। JNDI (Java Naming and Directory Interface) और प्रोटोकॉल LDAP (Lightweight Directory Access Protocol) के साथ संयोजन में, यह दूरस्थ दुर्भावनापूर्ण Java क्लासेस को लोड और निष्पादित करने की अनुमति देता है।

भेद्यता की खोज और प्रकाशन ने दुनिया भर में सुरक्षा की लहर पैदा कर दी। कई प्रणालियों को तुरंत पैच या बंद करना पड़ा। बाद के समय में, अन्य संबंधित भेद्यताएँ (जैसे CVE-2021-45046) ज्ञात हुईं, जो दर्शाती हैं कि समस्या कितनी गहरी और खतरनाक थी।

निम्नलिखित में, शामिल प्रौद्योगिकियों और उनकी अंतःक्रिया को विस्तार से समझाया गया है, ताकि भेद्यता की गहरी समझ विकसित की जा सके।

3. तकनीकी घटक विस्तार से

3.1 Log4j - कार्यप्रणाली

Log4j Apache द्वारा बनाई गई एक लाइब्रेरी है जो Java अनुप्रयोगों में घटनाओं को लॉग करने के लिए है। लॉगिंग सॉफ्टवेयर विकास में सिस्टम की निगरानी या त्रुटियों का विश्लेषण करने के लिए एक केंद्रीय उपकरण है। Log4j Java पारिस्थितिकी तंत्र में सबसे प्रसिद्ध और सबसे अधिक उपयोग किए जाने वाले लॉगिंग फ्रेमवर्क में से एक है, और इसका उपयोग छोटे अनुप्रयोगों से लेकर बड़े एंटरप्राइज़ सिस्टम तक किया जाता है।

लॉगिंग क्यों?

जब कोई प्रोग्राम चल रहा होता है, तो उदाहरण के लिए निम्नलिखित घटनाएँ होती हैं:

  • उपयोगकर्ता अनुरोध
  • आंतरिक स्थिति परिवर्तन
  • त्रुटि संदेश

इन घटनाओं को लॉग्स के साथ दस्तावेज़ित किया जा सकता है, आमतौर पर कंसोल, फ़ाइलों या नेटवर्क प्रोटोकॉल के माध्यम से केंद्रीय लॉग सर्वर पर पाठ आउटपुट के रूप में। सार्थक लॉगिंग के माध्यम से यह पता लगाया जा सकता है कि एप्लिकेशन ने कब क्या किया।

Log4j क्या प्रदान करता है?

Log4j लॉग संदेशों के उत्पादन और प्रसंस्करण के लिए एक लचीला, अत्यधिक कॉन्फ़िगरेबल बुनियादी ढाँचा प्रदान करता है। केंद्रीय कार्यों में शामिल हैं:

  • लॉग-स्तर: विभिन्न महत्व स्तर हैं (जैसे DEBUG, INFO, WARN, ERROR), जिनसे यह नियंत्रित किया जा सकता है कि कितने विस्तार से लॉग किया जाए।
  • अपेंडर: लॉग आउटपुट को विभिन्न गंतव्यों (जैसे कंसोल, फ़ाइल या दूरस्थ सर्वर) पर भेजा जा सकता है।
  • लेआउट: लेआउट के साथ लॉग संदेश का प्रारूप परिभाषित किया जा सकता है (जैसे टाइमस्टैम्प, थ्रेड, संदेश)।

सेमिनार कार्य के लिए प्रासंगिक अन्य सुविधाओं पर बाद के अनुभागों में चर्चा की जाएगी, विशेष रूप से प्लेसहोल्डर कार्यक्षमता और लुकअप कार्यक्षमता।

सरल उदाहरण```java

import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;

public class Example { private static final Logger logger = LogManager.getLogger();

public static void main(String[] args) {
    logger.info("Starte Anwendung...");
}

}

इस सरल उदाहरण में, एक Logger इंस्टेंस बनाया जाता है या यदि वह पहले से मौजूद है तो उसे प्राप्त किया जाता है। उसके बाद, `INFO` स्तर पर एक लॉग संदेश आउटपुट किया जाता है। Log4j कॉन्फ़िगरेशन के आधार पर संदेश को फ़ॉर्मेट और आउटपुट करता है। एक उदाहरण कॉन्फ़िगरेशन इस प्रकार दिख सकता है:```xml
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} - %m%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

यह कॉन्फ़िगरेशन एक Appender परिभाषित करता है जो लॉग संदेशों को प्रारूप Datum Uhrzeit Log-Level Loggername - Nachricht में कंसोल पर आउटपुट करता है। यह Appender फिर रूट-लॉगर को असाइन किया जाता है, जो INFO स्तर या उससे ऊपर के सभी लॉग संदेशों को संसाधित करता है।

आउटपुट कुछ इस तरह दिख सकता है:``` 2023-10-01 12:00:00 INFO Example - Starte Anwendung...

आइए अब Log4j की उन विशिष्ट विशेषताओं पर आते हैं जो Log4Shell सुरक्षा कमजोरी के लिए सबसे अधिक प्रासंगिक हैं।

#### लॉग संदेशों में प्लेसहोल्डर

Log4j की एक विशेष रूप से उपयोगी विशेषता लॉग संदेशों में **प्लेसहोल्डर** का समर्थन है। इस प्रकार रनटाइम पर गतिशील सामग्री को लॉग आउटपुट में डाला जा सकता है:```java
String username = "Alice";
logger.info("Benutzer angemeldet: {}", username);

इसके लिए रनटाइम पर {} को वेरिएबल username के वास्तविक मान से बदल दिया जाता है।
इससे निम्नलिखित आउटपुट प्राप्त होता है:```text "Benutzer angemeldet: Alice"

#### गतिशील अभिव्यक्तियाँ (तथाकथित लुकअप)
टूल डाउनलोड करें