
स्वचालित DLL साइडलोडिंग टूल EDR एवेज़न क्षमताओं के साथ

जबकि DLL साइडलोडिंग का उपयोग वैध उद्देश्यों के लिए किया जा सकता है, जैसे कि किसी प्रोग्राम के काम करने के लिए आवश्यक लाइब्रेरी लोड करना, इसका उपयोग दुर्भावनापूर्ण उद्देश्यों के लिए भी किया जा सकता है। हमलावर DLL साइडलोडिंग का उपयोग लक्ष्य प्रणाली पर मनमाना कोड निष्पादित करने के लिए कर सकते हैं, अक्सर वैध अनुप्रयोगों में कमजोरियों का शोषण करके जिनका उपयोग DLL लोड करने के लिए किया जाता है।
DLL साइडलोडिंग प्रक्रिया को स्वचालित और अधिक प्रभावी बनाने के लिए, Chimera नामक एक उपकरण बनाया गया जिसमें EDR/AV उत्पादों को बायपास करने के लिए चोरी की पद्धतियां शामिल हैं। यह उपकरण स्वचालित रूप से एक यादृच्छिक कुंजी के माध्यम से XOR द्वारा शेलकोड को एन्क्रिप्ट कर सकता है और टेम्पलेट इमेज बना सकता है जिन्हें Visual Studio में आयात करके एक दुर्भावनापूर्ण DLL बनाया जा सकता है।
इसके अलावा, SysWhispers3 से Dynamic Syscalls का उपयोग किया जाता है और EDR द्वारा खोजे जाने वाले पैटर्न से बचने के लिए एक संशोधित असेंबली संस्करण का उपयोग किया जाता है, इसमें यादृच्छिक nop sleds जोड़े जाते हैं और रजिस्टरों को स्थानांतरित किया जाता है। इसके अतिरिक्त, Early Bird Injection का भी उपयोग किया जाता है ताकि शेलकोड को किसी अन्य प्रक्रिया में इंजेक्ट किया जा सके, जिसे उपयोगकर्ता Sandbox Evasion तंत्र जैसे HardDisk जांच और यदि प्रक्रिया डीबग की जा रही है, के साथ निर्दिष्ट कर सकता है। अंत में लोडर में Timing attack लगाया जाता है जो शेलकोड के निष्पादन में देरी करने के लिए waitable timers का उपयोग करता है।
यह उपकरण परीक्षण किया गया है और EDR/AV उत्पादों को बायपास करने और लक्ष्य प्रणाली पर मनमाना कोड निष्पादित करने में प्रभावी साबित हुआ है।
Chimera Unleashed के अद्यतन संस्करण ने स्थिर और गतिशील विश्लेषण दोनों से बचने में महत्वपूर्ण प्रगति दिखाई है, विशेष रूप से Microsoft 365 के Endpoint Detection and Response (EDR) सिस्टम के संदर्भ में। उपकरण की साइडलोडिंग तकनीकें, भले ही OneDrive जैसे प्रसिद्ध बाइनरी पर लागू की गई हों, सफलतापूर्वक पता लगाने से बच गईं। हालांकि, यह ध्यान देने योग्य है कि जबकि साइडलोडिंग पहलू का पता नहीं चला, उपकरण द्वारा नियोजित Early Bird Injection प्रक्रिया EDR सिस्टम द्वारा पहचानी गई। यह उपकरण की समग्र चोरी क्षमताओं को बढ़ाने में और अधिक शोधन के लिए एक क्षेत्र को उजागर करता है।
मुख्य अद्यतन और विशेषताएं:
Chimera python3 में लिखा गया है और किसी अतिरिक्त निर्भरता को स्थापित करने की आवश्यकता नहीं है।
Chimera वर्तमान में दो DLL विकल्पों का समर्थन करता है, या तो Microsoft Teams या Microsoft OneDrive।
कोई userenv.dll बना सकता है जो Microsoft Teams से एक लापता DLL है और इसे विशिष्ट फ़ोल्डर में डाल सकता है:
%USERPROFILE%/Appdata/local/Microsoft/Teams/current
Microsoft OneDrive के लिए, स्क्रिप्ट version DLL का उपयोग करती है जो सामान्य है क्योंकि यह बाइनरी उदाहरण onedriveupdater.exe से गायब है।
Chimera Unleashed कमांड-लाइन तर्क पार्सिंग के लिए argparser का उपयोग करता है। निम्नलिखित तर्क उपलब्ध हैं:
--raw या -r: शेलकोड वाली फ़ाइल का पथ। आवश्यक।--path या -p: C टेम्पलेट फ़ाइल को आउटपुट करने का पथ। आवश्यक।--pname या -n: प्रक्रिया का नाम जिसमें शेलकोड इंजेक्ट किया जाना है। आवश्यक।--dexports या -d: निर्दिष्ट करें कि कौन से DLL एक्सपोर्ट का उपयोग करना है ('teams' या 'onedrive')। आवश्यक।--enc या -e: पसंदीदा एन्क्रिप्शन निर्दिष्ट करें (XOR / AES)। आवश्यक।--inj या -i: पसंदीदा इंजेक्शन तकनीक निर्दिष्ट करें (EB / MS)। आवश्यक।--rshell या -s: [वैकल्पिक] शेलकोड चर नाम को एक अद्वितीय नाम से बदलें। डिफ़ॉल्ट 'encoded_shell' है।उदाहरण उपयोग: python Chimera.py --raw <shellcode_path> --path <output_path> --pname <process_name> --dexports <exports_file> --enc AES --inj EB --rshell my_shellcode
एक बार संकलन प्रक्रिया पूरी हो जाने पर, एक DLL उत्पन्न होगा, जिसमें OneDrive के लिए "version.dll" या Microsoft Teams के लिए "userenv.dll" शामिल होना चाहिए। इसके बाद, मूल DLL का नाम बदलना आवश्यक है।
उदाहरण के लिए, मूल "userenv.dll" का नाम बदलकर "tmpB0F7.dll" रखा जाना चाहिए, जबकि मूल "version.dll" का नाम बदलकर "tmp44BC.dll" रखा जाना चाहिए। इसके अतिरिक्त, आप DLL एक्सपोर्ट के स्रोत कोड को बदलकर प्रॉक्सी DLL का नाम अपनी इच्छानुसार संशोधित कर सकते हैं, डिफ़ॉल्ट स्क्रिप्ट नामों का उपयोग करने के बजाय।
code.h फ़ाइल में शेलकोड होता है।
चरण 1: DLL टेम्पलेट के साथ एक नया Visual Studio प्रोजेक्ट बनाना


चरण 2: Visual Studio प्रोजेक्ट में फ़ाइलें आयात करना
चरण 3: बिल्ड कस्टमाइज़ेशन
चरण 4: MASM सक्षम करें

चरण 5:


चरण 1: ऑप्टिमाइज़ेशन बदलें

चरण 2: डीबग जानकारी हटाएं

मूल योगदानकर्ता:
योगदानकर्ता:
लागू कानून द्वारा अनुमत अधिकतम सीमा तक, मैं (George Sotiriadis) और/या मेरे रेपो में सामग्री सबमिट करने वाले संबद्ध व्यक्ति किसी भी अप्रत्यक्ष, आकस्मिक, विशेष, परिणामी या दंडात्मक क्षति, या लाभ या राजस्व के किसी भी नुकसान के लिए उत्तरदायी नहीं होंगे, चाहे प्रत्यक्ष या अप्रत्यक्ष रूप से उत्पन्न हुआ हो, या डेटा, उपयोग, साख, या अन्य अमूर्त हानि के किसी भी नुकसान के लिए, जो (i) इस संसाधन तक आपकी पहुंच और/या इस संसाधन तक पहुंचने में असमर्थता; (ii) इस संसाधन द्वारा संदर्भित किसी भी तृतीय पक्ष के किसी भी आचरण या सामग्री, जिसमें बिना किसी सीमा के, कोई भी मानहानिकारक, आपत्तिजनक या अवैध आचरण या अन्य उपयोगकर्ता या तृतीय पक्ष शामिल हैं; (iii) इस संसाधन से प्राप्त किसी भी सामग्री के परिणामस्वरूप उत्पन्न होती है।
https://evasions.checkpoint.com/
https://github.com/Flangvik/SharpDllProxy
--rxor या -x: [वैकल्पिक] xor एन्क्रिप्शन नाम को एक अद्वितीय नाम से बदलें। डिफ़ॉल्ट 'do_xor' है।--rkey या -k: [वैकल्पिक] कुंजी चर नाम को एक अद्वितीय नाम से बदलें। डिफ़ॉल्ट 'key' है।--rsleep या -z: [वैकल्पिक] निष्पादन के दौरान शामिल करने का कुल स्लीप समय (सेकंड)। डिफ़ॉल्ट 4000 है।--size या -f: [वैकल्पिक] जंक डेटा का फ़ाइल आकार KB में। शून्य (0) अक्षम है, और एक (1) यादृच्छिक फ़ाइल आकार है। डिफ़ॉल्ट 0 है।