
टेम्पलेट-संचालित AV/EDR चोरी-छिपे रहने का ढाँचा
🚩 यह Inceptor का सार्वजनिक भंडार है, नवीनतम संस्करण और अपडेट के लिए कृपया https://porchetta.industries/ के माध्यम से हमें समर्थन देने पर विचार करें।
यदि आप इस परियोजना को प्रायोजित करना चाहते हैं और Inceptor पर नवीनतम अपडेट, नवीनतम समस्याएं ठीक होने, नवीनतम सुविधाएं प्राप्त करना चाहते हैं, तो कृपया https://porchetta.industries/ पर हमारा समर्थन करें।
डिस्कॉर्ड पर आएं और बातचीत करें!
NW: हम वर्तमान में टेम्पलेट इंजन को बेहतर बनाने पर काम कर रहे हैं! जैसे ही हम अगला संस्करण जारी करेंगे, उपकरण का उपयोग, अनुकूलन और विस्तार करने के निर्देश विकी में उपलब्ध होंगे।
आधुनिक पेनिट्रेशन टेस्टिंग और रेड टीमिंग में अक्सर लक्ष्य पर कोड निष्पादित करने के लिए सामान्य AV/EDR उपकरणों को बायपास करने की आवश्यकता होती है। समय के साथ, बचाव अधिक जटिल और स्वाभाविक रूप से बायपास करना अधिक कठिन होता जा रहा है।
Inceptor एक उपकरण है जो इस प्रक्रिया के एक बड़े हिस्से को स्वचालित करने में मदद कर सकता है, उम्मीद है कि इसके लिए आगे कोई प्रयास नहीं करना पड़ेगा।
Inceptor विंडोज के लिए एक टेम्पलेट-आधारित PE पैकर है, जिसे पेनिट्रेशन टेस्टर्स और रेड टीमर्स को सामान्य AV और EDR समाधानों को बायपास करने में मदद करने के लिए डिज़ाइन किया गया है। Inceptor को उपयोगिता पर ध्यान केंद्रित करके डिज़ाइन किया गया है, और व्यापक उपयोगकर्ता अनुकूलन की अनुमति देता है।
यह समझने के लिए कि क्या कार्यान्वित किया गया और क्यों, निम्नलिखित संसाधनों पर एक नज़र डालना उपयोगी हो सकता है:
Inceptor विभिन्न ओपन-सोर्स कन्वर्टर्स का उपयोग करके मौजूदा EXE/DLL को शेलकोड में बदलने में सक्षम है:
Inceptor विभिन्न माध्यमों का उपयोग करके शेलकोड को एन्कोड, संपीड़ित या एन्क्रिप्ट कर सकता है। उपकरण विकसित करते समय, मैंने लोडर-इंडिपेंडेंट (LI) एन्कोडिंग और लोडर-डिपेंडेंट (LD) एन्कोडिंग के बीच अंतर करना शुरू किया।
लोडर-इंडिपेंडेंट एन्कोडिंग एक प्रकार की एन्कोडिंग है जो उपयोगकर्ता द्वारा चुने गए टेम्पलेट (लोडर) द्वारा प्रबंधित नहीं की जाती है। इसका मतलब आमतौर पर है कि डिकोडिंग स्टब टेम्पलेट का हिस्सा नहीं है, बल्कि शेलकोड में ही एम्बेडेड है। Inceptor इस प्रकार की सुविधा प्रदान करता है ओपन-सोर्स टूल sgn का उपयोग करके, जिसका उपयोग पेलोड को पॉलीमॉर्फिक और सामान्य हस्ताक्षर पहचान का उपयोग करके अज्ञेय बनाने के लिए किया जाता है।
भले ही यह मजबूत है, Shikata-Ga-Nai कुछ टेम्पलेट्स के लिए वास्तव में उपयुक्त नहीं है। इस कारण से, Inceptor लोडर-डिपेंडेंट एन्कोडर भी लागू करता है, जो डिकोडिंग का ध्यान रखने के लिए लोडर को डिज़ाइन किए गए हैं। इस प्रकार, LD एन्कोडर डिकोडिंग स्टब को सीधे टेम्पलेट में स्थापित करते हैं। Inceptor के भीतर लागू इस प्रकार के एन्कोडर "चेनएबल" भी हैं, जिसका अर्थ है कि उन्हें पेलोड को एन्कोड करने के लिए जोड़ा जा सकता है।
जबकि एन्कोडर की श्रृंखला का उपयोग कभी-कभी किसी दिए गए पेलोड के अस्पष्टीकरण में सुधार कर सकता है, यह तकनीक कई डिकोडिंग रूटीन को उजागर कर सकती है, जो डिफेंडर्स को उनके खिलाफ हस्ताक्षर डिजाइन करने में मदद कर सकती है। इस कारण से, Inceptor अंतिम आर्टिफैक्ट्स को अस्पष्ट करने के कई तरीके प्रदान करता है, जिससे RE प्रक्रिया कठिन हो जाती है।
इस लेखन के समय, Inceptor के सार्वजनिक संस्करण को निम्नलिखित एन्कोडर/संपीड़क/एन्क्रिप्टर के साथ प्रदान किया गया है:
Inceptor एक एन्कोडिंग श्रृंखला को स्थिर और गतिशील रूप से मान्य कर सकता है, स्थिर रूप से डिकोडर्स के इनपुट/आउटपुट प्रकारों की जांच कर सकता है, और एक स्वतंत्र कार्यान्वयन के साथ गतिशील रूप से कार्यान्वयन को सत्यापित कर सकता है।
किसी भी समय, उपयोगकर्ता chain-validate.py उपयोगिता का उपयोग करके एक श्रृंखला को आसानी से मान्य कर सकता है।
Inceptor स्वाभाविक रूप से AV बचाव तंत्र भी लागू करता है, और इस प्रकार, यह पेलोड में "मॉड्यूल" (प्लगइन) के रूप में AV बचाव सुविधाओं को शामिल करने की संभावना प्रदान करता है।
एम्बेड किए जा सकने वाले प्लगइन हैं:
Inceptor EDR बचाव तंत्र भी लागू करता है, जैसे पूर्ण अनहुकिंग, प्रत्यक्ष सिस्कॉल आह्वान और मैनुअल डीएलएल मैपिंग। प्रत्यक्ष सिस्कॉल C# में उत्कृष्ट "DInvoke" प्रोजेक्ट का उपयोग करके लागू किए गए हैं, फिर से TheWover द्वारा। C/C++ में, Syscalls SysWhispers और SysWhispers2 प्रोजेक्ट का उपयोग करके लागू किए गए हैं, Jackson_T द्वारा। इसके अलावा, Inceptor में x86 Syscalls के लिए भी अंतर्निहित समर्थन है।
AV बायपास सुविधाओं की तरह, इन सुविधाओं को मॉड्यूल के रूप में सक्षम किया जा सकता है, केवल इस अंतर के साथ कि उन्हें उस टेम्पलेट पर काम करने की आवश्यकता होती है जो उनका समर्थन करता है। अब तक लागू की गई तकनीकें हैं:
Inceptor बाहरी उपयोगिताओं जैसे ConfuserEx और Chameleon का उपयोग करके पेलोड अस्पष्टीकरण का समर्थन करता है, और LLVM-Obfuscator का उपयोग करके C/C++ अस्पष्टीकरण के लिए समर्थन प्रदान करता है, जो कि LLVM संकलन प्लेटफॉर्म का उपयोग करने वाला IR-आधारित अस्पष्टीकरण है।
Inceptor की एक और विशेषता यह है कि यह CarbonCopy टूल का उपयोग करके परिणामी बाइनरी/dll को कोड-साइन कर सकता है। आमतौर पर, कोड हस्ताक्षर प्रमाणपत्रों के साथ हस्ताक्षरित फाइलों का कम सख्ती से विश्लेषण किया जाता है। कई एंटी-मैलवेयर उत्पाद इन प्रमाणपत्रों को मान्य/सत्यापित नहीं करते हैं।
पूर्ण कार्यप्रवाह को निम्नलिखित उच्च-स्तरीय और सरलीकृत योजना में संक्षेपित किया जा सकता है:

Inceptor को विंडोज पर काम करने के लिए डिज़ाइन किया गया है। update-config.py उपयोगिता आवश्यक Microsoft बाइनरी का पता लगा सकती है और उसके अनुसार कॉन्फ़िगरेशन को अपडेट कर सकती है। Microsoft Build Tools, Windows SDK और Visual Studio को स्थापित करना आवश्यक हो सकता है, update-config.py उपयोगकर्ता को आवश्यक निर्भरता स्थापित करने के तरीके पर मार्गदर्शन करेगा।
git clone --recursive https://github.com/klezVirus/inceptor.git
cd inceptor
virtualenv venv
venv\Scripts\activate.bat
pip install -r requirements.txt
cd inceptor
python update-config.py
Inceptor का वर्तमान संस्करण एक सरल नामकरण परंपरा (टेम्पलेट नाम न बदलें) और उपयोगकर्ता द्वारा दिए गए तर्कों के सेट का उपयोग करके एक विशिष्ट टेम्पलेट का पता लगाता है। तर्कों में लोडर (-t) भी शामिल है। यदि निर्दिष्ट नहीं किया गया है, तो लोडर को पैक की जाने वाली फ़ाइल के फलन के रूप में चुना जाएगा, इस सरल योजना का पालन करते हुए:
$ python inceptor.py -hh
[*] डिफ़ॉल्ट लोडर
इनपुट फ़ाइल एक्सटेंशन विशेष स्थिति अनुमानित फ़ाइल प्रकार डिफ़ॉल्ट लोडर डिफ़ॉल्ट टेम्पलेट
0 .raw NaN शेलकोड सिंपल लोडर क्लासिक
1 .exe .NET डॉटनेट एक्जीक्यूटेबल Donut क्लासिक
2 .exe NaN नेटिव एक्जीक्यूटेबल Pe2Shellcode PE लोड
3 .dll NaN नेटिव लाइब्रेरी sRDI क्लासिक
आर्टिफैक्ट के व्यवहार की गलत व्याख्या से बचने के लिए टेम्पलेट नामकरण परंपरा को समझना भी बहुत महत्वपूर्ण है।
$ usage: inceptor.py [-h] [-hh] [-Z] {native,dotnet,powershell} ...
inceptor: A Windows-based PE Packing framework designed to help
Red Team Operators to bypass common AV and EDR solutions
positional arguments:
{native,dotnet,powershell}
native Native Binaries Generator
dotnet .NET Binaries Generator
powershell PowerShell Wrapper Scripts Generator
optional arguments:
-h, --help show this help message and exit
-hh Show functional table
-Z, --check Check file against ThreatCheck