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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
KslDump — KslDump — अपना खुद का चाकू क्यों लाएं जब Defender पहले से ही रसोई में एक छोड़ गया है? | Kitploit
उपकरण/GitHubGitHub/andreisss/ksldump
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंगरेड टीमिंगबाइनरी शोषण
GitHubandreisss/ksldump

KslDump

KslDump — अपना खुद का चाकू क्यों लाएं जब Defender पहले से ही रसोई में एक छोड़ गया है?

रिपॉजिटरी देखें
3985195 महीने पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

KslDump - BMVD (माइक्रोसॉफ्ट असुरक्षित ड्राइवर लाएँ)

GitHub stars GitHub forks GitHub downloads Sponsor License: GPL v3

महत्वपूर्ण संदर्भ

मैंने इस मुद्दे को 7 मार्च 2026 को माइक्रोसॉफ्ट को रिपोर्ट किया। हालांकि, लगभग 20 दिन पहले, गेम-हैकिंग समुदाय ने पहले ही इसे रिवर्स कर लिया था और सार्वजनिक रूप से चर्चा की थी। अपनी तरफ से, मैं उनके प्रोजेक्ट्स का अनुसरण नहीं करता और मुझे इस बारे में कुछ भी पता नहीं था। यह भी स्पष्ट है कि ये दो पूरी तरह से अलग और असंबंधित प्रोजेक्ट हैं।

संदर्भ

  • Avantguard ब्लॉग पोस्ट

जब डिफेंडर पहले से ही रसोई में एक चाकू छोड़ गया है तो अपना चाकू क्यों लाएं?

KslDump केवल माइक्रोसॉफ्ट-हस्ताक्षरित घटकों का उपयोग करके PPL-संरक्षित LSASS से क्रेडेंशियल निकालता है। कोई शोषण नहीं लगाया जाता। कोई ड्राइवर लोड नहीं किया जाता। पूरी हमला श्रृंखला विंडोज डिफेंडर के साथ पूर्व-स्थापित आती है। माइक्रोसॉफ्ट ने MmCopyMemory को नल करके चल रहे संस्करण (wd\KslD.sys) को पैच किया, लेकिन पुराना असुरक्षित संस्करण (drivers\KslD.sys) डिस्क पर छोड़ दिया। हमलावर कुछ भी नहीं लाता — वे बस सेवा को उस चीज़ की ओर इंगित करते हैं जिसे माइक्रोसॉफ्ट साफ करना भूल गया।

image

https://github.com/user-attachments/assets/78dfce25-56b3-4eb8-9de2-7c183601e597


भेद्यता

KslD.sys एक कर्नेल ड्राइवर है जो माइक्रोसॉफ्ट डिफेंडर के साथ आता है। यह माइक्रोसॉफ्ट-हस्ताक्षरित है, एक विश्वसनीय कर्नेल मॉड्यूल के रूप में लोड होता है, और एक उपकरण ऑब्जेक्ट \\.\KslD को उजागर करता है जो यूज़रमोड से सुलभ है।

ड्राइवर कई उप-आदेशों के साथ IOCTL 0x222044 स्वीकार करता है जो डिवाइस हैंडल खोलने वाली किसी भी प्रक्रिया को अप्रतिबंधित कर्नेल और भौतिक मेमोरी एक्सेस प्रदान करते हैं।

असुरक्षित उप-आदेश

उप-आदेशक्षमताप्रभाव
2CR3, IDTR और अन्य CPU नियंत्रण रजिस्टरों को यूज़रमोड में लौटाता हैतत्काल KASLR पराजय
12हमलावर-नियंत्रित पते और आकार के साथ MmCopyMemory() को कॉल करता हैमनमाना कर्नेल/भौतिक मेमोरी पठन

"पहुँच नियंत्रण"

डिवाइस हैंडल का एकमात्र द्वार ड्राइवर की सेवा कुंजी के अंतर्गत एक रजिस्ट्री कुंजी (AllowedProcessName) में संग्रहीत प्रक्रिया नाम स्ट्रिंग है। यह मान:

  • किसी भी स्थानीय व्यवस्थापक द्वारा संपादन योग्य
  • डिफेंडर की छेड़छाड़ सुरक्षा द्वारा संरक्षित नहीं
  • कोड हस्ताक्षर, अखंडता या किसी बाइनरी संपत्ति के विरुद्ध मान्य नहीं
  • एक सादा स्ट्रिंग तुलना — अपनी बाइनरी का नाम बदलें और आप अंदर हैं

अंतर CCommand::Initialize में एक पंक्ति का है:

// 82 KB version (patched) — deliberately clears the pointer:
v3 = MmGetSystemRoutineAddress(L"MmCopyMemory");
if (v3 >= 0) {
    *(a1 + 24) = 0;        // ← NULLs it — SubCmd 12 is dead
}

// 333 KB version (vulnerable) — stores the pointer:
ptr = MmGetSystemRoutineAddress(L"MmCopyMemory");
if (ptr) {
    *(this + 0x18) = ptr;   // ← Keeps it — SubCmd 12 works
}

डिफेंडर प्लेटफ़ॉर्म अपडेट पैच किए गए 82 KB संस्करण को drivers\wd\ में डालते दिखते हैं और ImagePath को उस पर इंगित करते हैं, जबकि पुराना 333 KB संस्करण drivers\ में बना रहता है। परीक्षण किए गए सिस्टम पर, पुरानी बाइनरी को कभी नहीं हटाया गया। शोषण बस ImagePath को वापस असुरक्षित संस्करण पर स्विच करता है और सेवा को पुनरारंभ करता है। दोनों बाइनरी माइक्रोसॉफ्ट-हस्ताक्षरित हैं और OS द्वारा विश्वसनीय हैं।


पुराना ड्राइवर अभी भी डिस्क पर क्यों है - व्यक्तिगत सिद्धांत

Microsoft का सार्वजनिक दस्तावेज़ीकरण दिखाता है कि KB4052623 Defender प्लेटफ़ॉर्म अपडेट देता है, जिसमें Defender ड्राइवरों का System32\drivers\wd में ऐतिहासिक स्थानांतरण शामिल है, जबकि Windows सर्विसिंग NTFS हार्ड लिंक के माध्यम से WinSxS-समर्थित घटक-स्टोर फ़ाइलों को रखता है और केवल सफाई के दौरान अप्रचलित घटक संस्करणों को हटाता है। परीक्षण किए गए सिस्टम पर, यह बताता है कि नया 82 KB KslD.sys Defender प्लेटफ़ॉर्म-अपडेट पथ के माध्यम से कैसे आ सकता है जबकि पुराना 333 KB System32\drivers\KslD.sys वर्तमान CBS-समर्थित घटक-स्टोर प्रतिलिपि के रूप में तब तक उपस्थित रहा जब तक कि नए CBS संस्करण द्वारा अप्रचलित नहीं कर दिया गया।


ब्लॉकलिस्ट विरोधाभास

माइक्रोसॉफ्ट एक असुरक्षित ड्राइवर ब्लॉकलिस्ट (DriverSiPolicy.p7b) बनाए रखता है जो विशेष रूप से BYOVD हमलों को रोकने के लिए है। यह ब्लॉकलिस्ट HVCI के माध्यम से लागू की जाती है और ज्ञात-असुरक्षित हस्ताक्षरित ड्राइवरों को लोड होने से रोकती है।

माइक्रोसॉफ्ट के अपने दस्तावेज़ीकरण से:

"असुरक्षित ड्राइवर ब्लॉकलिस्ट विंडोज पारिस्थितिकी तंत्र में गैर-माइक्रोसॉफ्ट-विकसित ड्राइवरों के खिलाफ सिस्टम को मजबूत करने में मदद करने के लिए डिज़ाइन की गई है"

माइक्रोसॉफ्ट के अपने ड्राइवर डिज़ाइन द्वारा ब्लॉकलिस्ट से बाहर रखे गए हैं।


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

मूल कारण सरल है: MmCopyMemory PPL का सम्मान नहीं करता।

PPL (Protected Process Light) LSASS के खिलाफ OpenProcess और ReadProcessMemory कॉल को अवरुद्ध करके क्रेडेंशियल चोरी को रोकने के लिए डिज़ाइन किया गया था। लेकिन PPL केवल यूज़रमोड API पथ की रक्षा करता है। इसका कर्नेल-मोड भौतिक मेमोरी रीड पर कोई अधिकार नहीं है।

KslD.sys यूज़रमोड कोड को MmCopyMemory() — माइक्रोसॉफ्ट का अपना कर्नेल API जो भौतिक या आभासी पते द्वारा मेमोरी कॉपी करता है — तक सीधा रास्ता देता है। ड्राइवर निम्नलिखित करता है:

  • कोई पता सीमा सत्यापन नहीं — कोई भी भौतिक पता स्वीकार किया जाता है
  • कोई आकार सीमा प्रवर्तन नहीं — जितना चाहें उतना पढ़ें
  • कोई कॉलर सत्यापन नहीं एक रजिस्ट्री स्ट्रिंग जांच से परे जिसे एक व्यवस्थापक संपादित कर सकता है

परिणाम: एक माइक्रोसॉफ्ट-हस्ताक्षरित ड्राइवर बॉक्स से बाहर एक पूर्ण PPL बाईपास प्रदान करता है।


रीड प्रिमिटिव

भेद्यता का मूल उप-आदेश 12 है — एक अप्रतिबंधित MmCopyMemory() रैपर:

IOCTL:    0x222044
Input:    struct {
            DWORD  SubCmd;       // 12
            DWORD  Reserved;     // 0
            QWORD  Address;      // Target VA or PA
            QWORD  Size;         // Bytes to read
            DWORD  Flags;        // 1 = Physical, 2 = Virtual
            DWORD  Padding;
          }
Output:   Raw memory contents (up to Size bytes)

भौतिक रीड (Flags = 1) महत्वपूर्ण प्रिमिटिव है। भौतिक मेमोरी एक्सेस प्रक्रिया सुरक्षा स्तरों, EPROCESS फ़्लैग्स या किसी यूज़रमोड API प्रतिबंधों के अधीन नहीं है, यही PPL को बायपास करता है।

आभासी रीड (Flags = 2) कर्नेल आभासी पतों को सीधे पढ़ता है, जो मैन्युअल पेज टेबल अनुवाद के बिना कर्नेल संरचनाओं (EPROCESS, ntoskrnl निर्यात) को चलने के लिए उपयोगी है।



हमला श्रृंखला

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