
एक प्रूफ-ऑफ-कॉन्सेप्ट Cobalt Strike Reflective Loader जिसका उद्देश्य Cobalt Strike की चोरी-छिपी की सुविधाओं को पुनः निर्मित करना, एकीकृत करना और बढ़ाना है!

एक प्रूफ-ऑफ-कॉन्सेप्ट यूज़र-डिफाइंड रिफ्लेक्टिव लोडर (UDRL) जो कोबाल्ट स्ट्राइक के एवेज़न फीचर्स को पुनर्निर्मित, एकीकृत और बढ़ाने का लक्ष्य रखता है!
| योगदानकर्ता | ट्विटर | उल्लेखनीय योगदान |
|---|---|---|
| Bobby Cooke | @0xBoku | परियोजना के मूल लेखक और अनुरक्षक |
| Santiago Pecin | @s4ntiago_p | रिफ्लेक्टिव लोडर में प्रमुख सुधार |
| Chris Spehn | @ConsciousHacker | एग्रेसर स्क्रिप्टिंग |
| Joshua Magri | @passthehashbrwn | IAT हुकिंग |
| Dylan Tran | @d_tranman | रिफ्लेक्टिव कॉल स्टैक स्पूफिंग |
| James Yeung | @5cript1diot | अप्रत्यक्ष सिस्टम कॉल्स |
अंतर्निहित कोबाल्ट स्ट्राइक रिफ्लेक्टिव लोडर मजबूत है, जो कोबाल्ट स्ट्राइक द्वारा प्रदान किए जाने वाले सभी मैलिएबल PE एवेज़न फीचर्स को संभालता है। कस्टम UDRL का उपयोग करने का प्रमुख नुकसान यह है कि मैलिएबल PE एवेज़न फीचर्स आउट-ऑफ-द-बॉक्स समर्थित हो सकते हैं या नहीं।
सार्वजनिक BokuLoader परियोजना का उद्देश्य रेड टीमों को अपना स्वयं का इन-हाउस कोबाल्ट स्ट्राइक UDRL बनाने में सहायता करना है। परियोजना का लक्ष्य सभी उपयोगी CS मैलिएबल PE एवेज़न फीचर्स का समर्थन करना है। कुछ एवेज़न फीचर्स CS एकीकरण का लाभ उठाते हैं, कुछ पूरी तरह से पुनर्निर्मित किए गए हैं, और कुछ असमर्थित हैं।
इस परियोजना का किसी भी रूप में उपयोग करने से पहले, आपको यह सुनिश्चित करने के लिए उचित रूप से परीक्षण करना चाहिए कि एवेज़न फीचर्स इच्छित रूप से काम कर रहे हैं। C कोड और एग्रेसर स्क्रिप्ट के बीच, विभिन्न ऑपरेटिंग सिस्टम, कंपाइलर और जावा के संस्करणों के साथ संकलन भिन्न परिणाम दे सकता है।
NtProtectVirtualMemory के अप्रत्यक्ष सिस्कॉल के माध्यम से किए जाते हैं।obfuscate "true"।0x1000 बाइट्स शून्य होंगे।XGetProcAddress
Kernel32.GetProcAddress का उपयोग नहीं करताxLoadLibrary
TEB->PEB->PEB_LDR_DATA->InMemoryOrderModuleList से DLL बेस एड्रेस प्राप्त करता है।Kernel32.LoadLibraryA का उपयोग नहीं करताmake के साथ BokuLoader ऑब्जेक्ट फ़ाइल को संकलित करेंBokuLoader.cna एग्रेसर स्क्रिप्ट आयात करेंScript Console का उपयोग करें कि BokuLoader बीकन बिल्ड में लागू किया गया थाRAW बीकन उत्पन्न करना आउट-ऑफ-द-बॉक्स काम करता है। बीकन लोडर के लिए आर्टिफैक्ट किट का उपयोग करते समय, stagesize वेरिएबल डिफ़ॉल्ट से बड़ा होना चाहिए।
| मूल कोबाल्ट स्ट्राइक स्ट्रिंग | BokuLoader कोबाल्ट स्ट्राइक स्ट्रिंग |
|---|---|
| ReflectiveLoader | BokuLoader |
| Microsoft Base Cryptographic Provider v1.0 | 12367321236742382543232341241261363163151d |
| (admin) | (tomin) |
| beacon | bacons |
Kernel32.LoadLibraryExA को कॉल किया जाता हैKernel32.LoadLibraryExA का तीसरा तर्क DONT_RESOLVE_DLL_REFERENCES (0x00000001) है
RX या RWX मेमोरी मौजूद होगी।Kernel32.CreateFileMappingA और Kernel32.MapViewOfFile को कॉल किया जाता है।NtAllocateVirtualMemory, NtProtectVirtualMemoryntdll.dll में यूज़रलैंड हुक सेट करने से ये सिस्टम कॉल पहचाने नहीं जाएंगे।mov eax, r11d; mov r11, r10; mov r10, rcx; jmp r11 असेंबली निर्देश शामिल करेगा।0x1000 बाइट्स शून्य हैं।| कमांड | विकल्प | समर्थित |
|---|
allocator | HeapAlloc, MapViewOfFile, VirtualAlloc | BokuLoader कार्यान्वयन के माध्यम से सभी समर्थित |
module_x64 | string (DLL Name) | BokuLoader कार्यान्वयन के माध्यम से समर्थित। CS कार्यान्वयन के समान DLL स्टॉम्पिंग आवश्यकताएँ लागू होती हैं |
obfuscate | true/false | HTTP/S बीकन BokuLoader कार्यान्वयन के माध्यम से समर्थित। SMB/TCP वर्तमान में obfuscate true के लिए समर्थित नहीं है। विवरण इश्यू में। यदि आप ठीक कर सकते हैं तो सहायता स्वीकार है :) |
entry_point | RVA as decimal number | BokuLoader कार्यान्वयन के माध्यम से समर्थित |
cleanup | true | CS एकीकरण के माध्यम से समर्थित |
userwx | true/false | BokuLoader कार्यान्वयन के माध्यम से समर्थित |
sleep_mask | (true/false) or (Sleepmask Kit+true) | समर्थित। डिफ़ॉल्ट "sleepmask true" (sleepmask किट के बिना) का उपयोग करते समय "userwx true" सेट करें। RX बीकन.text मेमोरी (src47/Ekko) का समर्थन करने वाले sleepmask किट का उपयोग करते समय "sleepmask true" && "userwx false" सेट करें। |
magic_mz_x64 | 4 char string | CS एकीकरण के माध्यम से समर्थित |
magic_pe | 2 char string | CS एकीकरण के माध्यम से समर्थित |
transform-x64 prepend | escaped hex string | BokuLoader.cna एग्रेसर स्क्रिप्ट संशोधन |
transform-x64 strrep | string string | BokuLoader.cna एग्रेसर स्क्रिप्ट संशोधन |
stomppe | true/false | असमर्थित। BokuLoader बीकन DLL हेडर्स को कॉपी नहीं करता। वर्चुअल बीकन DLL के पहले 0x1000 बाइट्स 0x00 हैं |
checksum | number | प्रायोगिक। BokuLoader.cna एग्रेसर स्क्रिप्ट संशोधन |
compile_time | date-time string | प्रायोगिक। BokuLoader.cna एग्रेसर स्क्रिप्ट संशोधन |
image_size_x64 | decimal value | असमर्थित |
name | string | प्रायोगिक। BokuLoader.cna एग्रेसर स्क्रिप्ट संशोधन |
rich_header | escaped hex string | प्रायोगिक। BokuLoader.cna एग्रेसर स्क्रिप्ट संशोधन |
stringw | string | असमर्थित |
string | string | असमर्थित |