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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/ricardojoserf/nativedump
मेमोरी फोरेंसिकपोस्ट-शोषणरेड टीमिंग
GitHubricardojoserf/nativedump

NativeDump

केवल NTAPI फ़ंक्शनों का उपयोग करके lsass को डंप करें, मिनीडंप फ़ाइलों को हाथ से तैयार करके (MiniDumpWriteDump के बिना!!!)

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

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

सभी देखें →

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

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

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

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

NativeDump

NativeDump केवल NTAPIs का उपयोग करके lsass प्रक्रिया को डंप करने की अनुमति देता है, जो केवल उन स्ट्रीम्स के साथ एक Minidump फ़ाइल उत्पन्न करता है जिन्हें Mimikatz या Pypykatz जैसे उपकरणों द्वारा पार्स करने की आवश्यकता होती है (SystemInfo, ModuleList और Memory64List स्ट्रीम्स)।

योजना

  • NTOpenProcessToken और NtAdjustPrivilegeToken का उपयोग 'SeDebugPrivilege' विशेषाधिकार प्राप्त करने के लिए
  • RtlGetVersion का उपयोग ऑपरेटिंग सिस्टम संस्करण विवरण (मुख्य संस्करण, लघु संस्करण और बिल्ड नंबर) प्राप्त करने के लिए। यह SystemInfo स्ट्रीम के लिए आवश्यक है।
  • NtQueryInformationProcess और NtReadVirtualMemory का उपयोग lsasrv.dll का पता प्राप्त करने के लिए। ModuleList स्ट्रीम के लिए यह एकमात्र आवश्यक मॉड्यूल है।
  • lsass प्रक्रिया के लिए हैंडल प्राप्त करने के लिए NtOpenProcess
  • मेमोरी क्षेत्रों के माध्यम से लूप करने और सभी संभावित क्षेत्रों को डंप करने के लिए NtQueryVirtualMemory और NtReadVirtualMemory। साथ ही यह Memory64List स्ट्रीम को पॉप्युलेट करता है।

प्रोग्राम में आउटपुट फ़ाइल के लिए एक वैकल्पिक तर्क है, डिफ़ॉल्ट फ़ाइल नाम 'proc_<PID>.dmp' है:

NativeDump.exe [DUMP_FILE]

poc

यह उपकरण नवीनतम Windows संस्करणों के विरुद्ध सबसे सामान्य सुरक्षा समाधानों (Microsoft Defender for Endpoints, CrowdStrike...) के साथ परीक्षण किया गया है और ठीक काम करता है, लेकिन चुपके आपके द्वारा चुने गए 'स्वाद' पर निर्भर करेगा: सर्वोत्तम परिणामों के लिए असामान्य भाषाओं का उपयोग करें और बाइनरी को अनुकूलित करें! हालाँकि, यह काम नहीं करता है यदि PPL सक्षम है या PEB संरचना पढ़ने योग्य नहीं है। अद्यतन: अब PEB को पढ़े बिना प्रोग्राम को निष्पादित करना संभव है, peb-unreadable शाखा देखें :)

इस तकनीक के कुछ लाभ हैं:

  • यह प्रसिद्ध dbghelp!MinidumpWriteDump फ़ंक्शन का उपयोग नहीं करता है
  • यह केवल Ntdll.dll से फ़ंक्शन का उपयोग करता है, इसलिए लाइब्रेरी को रीमैप करके API हुकिंग को बायपास करना संभव है
  • Minidump फ़ाइल को डिस्क पर लिखने की आवश्यकता नहीं है, आप इसके बाइट्स (एन्कोडेड या एन्क्रिप्टेड) को रिमोट मशीन पर स्थानांतरित कर सकते हैं

आप प्रोजेक्ट को विभिन्न 'स्वादों' (या भाषाओं) में पा सकते हैं:

  • main - .NET मूल कार्यान्वयन (यह शाखा)

  • python-flavour - Python कार्यान्वयन जिसमें 3 ntdll.dll ओवरराइट विधियाँ + रिमोट मशीन पर एक्सफ़िल्ट्रेट करना

  • golang-flavour - Golang कार्यान्वयन जिसमें 3 ntdll.dll ओवरराइट विधियाँ + रिमोट मशीन पर एक्सफ़िल्ट्रेट करना

  • c-flavour - C/C++ कार्यान्वयन जिसमें 3 ntdll.dll ओवरराइट विधियाँ

  • bof-flavour - BOF फ़ाइल जिसमें 3 ntdll.dll ओवरराइट विधियाँ

  • rust-flavour - Rust कार्यान्वयन @safedv द्वारा

  • crystal-flavour - Crystal कार्यान्वयन जिसमें ntdll.dll ओवरराइट क्षमताएँ

  • nim-flavour - Nim कार्यान्वयन जिसमें ntdll.dll ओवरराइट क्षमताएँ

.NET का उपयोग करने वाली अन्य दिलचस्प शाखाएँ:

  • remote - रिमोट मशीन पर एक्सफ़िल्ट्रेट करना + 3 ntdll.dll ओवरराइट विधियाँ + डायनामिक फ़ंक्शन रिज़ॉल्यूशन + स्ट्रिंग AES एन्क्रिप्शन + XOR-एन्कोडिंग Minidump सामग्री

  • all-modules - सभी मॉड्यूल के लिए जानकारी प्राप्त करें (केवल lsasrv.dll नहीं)

  • peb-unreadable - lsass की PEB संरचना को पढ़े बिना कार्यान्वयन + 3 ntdll.dll ओवरराइट विधियाँ



तकनीक विस्तार से: एक न्यूनतम Minidump फ़ाइल बनाना

Minidump के अप्रलेखित संरचनाओं को पढ़ने के बाद, इसकी संरचना को इस प्रकार संक्षेपित किया जा सकता है:

  • हेडर: हस्ताक्षर ("MDMP"), स्ट्रीम निर्देशिका का स्थान और स्ट्रीम की संख्या जैसी जानकारी
  • स्ट्रीम निर्देशिका: प्रत्येक स्ट्रीम के लिए एक प्रविष्टि, जिसमें प्रकार, कुल आकार और फ़ाइल में प्रत्येक का स्थान शामिल है
  • स्ट्रीम्स: प्रत्येक स्ट्रीम में प्रक्रिया से संबंधित विभिन्न जानकारी होती है और इसका अपना प्रारूप होता है
  • क्षेत्र: प्रत्येक मेमोरी क्षेत्र से प्रक्रिया के वास्तविक बाइट्स जिन्हें पढ़ा जा सकता है

संरचना

मैंने एक पार्सिंग टूल बनाया है जो सहायक हो सकता है: MinidumpParser। हम एक वैध फ़ाइल बनाने पर ध्यान केंद्रित करेंगे जिसमें हेडर, स्ट्रीम निर्देशिका और Minidump फ़ाइल के लिए आवश्यक केवल 3 स्ट्रीम (SystemInfo, ModuleList और Memory64List स्ट्रीम्स) के आवश्यक मान हों, ताकि Mimikatz/Pypykatz द्वारा पार्स किया जा सके।


A. हेडर

हेडर एक 32-बाइट्स संरचना है जिसे C# में इस प्रकार परिभाषित किया जा सकता है:

public struct MinidumpHeader
{
    public uint Signature;
    public ushort Version;
    public ushort ImplementationVersion;
    public ushort NumberOfStreams;
    public uint StreamDirectoryRva;
    public uint CheckSum;
    public IntPtr TimeDateStamp;
}

आवश्यक मान हैं:

  • हस्ताक्षर: निश्चित मान 0x504d44d ("MDMP" स्ट्रिंग)
  • संस्करण: निश्चित मान 0xa793 (Microsoft स्थिरांक MINIDUMP_VERSION)
  • स्ट्रीम की संख्या: निश्चित मान 3, फ़ाइल के लिए आवश्यक तीन स्ट्रीम
  • स्ट्रीम निर्देशिका RVA: निश्चित मान 0x20 या 32 बाइट्स, हेडर का आकार

B. स्ट्रीम निर्देशिका

स्ट्रीम निर्देशिका में प्रत्येक प्रविष्टि एक 12-बाइट्स संरचना है, इसलिए 3 प्रविष्टियाँ होने पर आकार 36 बाइट्स है। एक प्रविष्टि के लिए C# स्ट्रक्ट परिभाषा है:

public struct MinidumpStreamDirectoryEntry
{
    public uint StreamType;
    public uint Size;
    public uint Location;
}

क्षेत्र 'StreamType' स्ट्रीम के प्रकार को एक पूर्णांक या आईडी के रूप में दर्शाता है, कुछ सबसे प्रासंगिक हैं:

आईडीस्ट्रीम प्रकार
0x00UnusedStream
0x01ReservedStream0
0x02ReservedStream1
0x03ThreadListStream
0x04ModuleListStream
0x05MemoryListStream
0x06ExceptionStream
0x07SystemInfoStream
0x08ThreadExListStream
0x09Memory64ListStream
0x0ACommentStreamA
0x0BCommentStreamW
0x0CHandleDataStream
0x0DFunctionTableStream
0x0EUnloadedModuleListStream
0x0FMiscInfoStream
0x10MemoryInfoListStream
0x11ThreadInfoListStream
0x12HandleOperationListStream
0x13TokenStream
0x16HandleOperationListStream

C. SystemInformation स्ट्रीम

पहली स्ट्रीम SystemInformation स्ट्रीम है, जिसका आईडी 7 है। इसका आकार 56 बाइट्स है और यह स्ट्रीम निर्देशिका के बाद ऑफ़सेट 68 (0x44) पर स्थित होगी। इसकी C# परिभाषा है:

public struct SystemInformationStream
{
    public ushort ProcessorArchitecture;
    public ushort ProcessorLevel;
    public ushort ProcessorRevision;
    public byte NumberOfProcessors;
    public byte ProductType;
    public uint MajorVersion;
    public uint MinorVersion;
    public uint BuildNumber;
    public uint PlatformId;
    public uint UnknownField1;
    public uint UnknownField2;
    public IntPtr ProcessorFeatures;
    public IntPtr ProcessorFeatures2;
    public uint UnknownField3;
    public ushort UnknownField14;
    public byte UnknownField15;
}
टूल डाउनलोड करें