
.NET/PowerShell/VBA आक्रामक सुरक्षा ऑब्फस्केटर
Codecepticon एक .NET एप्लिकेशन है जो आपको C#, VBA/VB6 (मैक्रो), और PowerShell सोर्स कोड को अस्पष्ट (obfuscate) करने की सुविधा देता है, और इसे Red/Purple Teams जैसे आक्रामक सुरक्षा अभियानों के लिए विकसित किया गया है। Codecepticon को अन्य obfuscators से अलग बनाने वाली बात यह है कि यह संकलित एक्ज़ीक्यूटेबल्स के बजाय सोर्स कोड को लक्षित करता है, और इसे विशेष रूप से AV/EDR से बचने (evasion) के लिए विकसित किया गया था।
Codecepticon आपको कोड को अस्पष्ट और पुनः लिखने की सुविधा देता है, लेकिन कमांड लाइन को पुनः लिखने जैसी सुविधाएँ भी प्रदान करता है।
! शुरू करने से पहले !
यह दस्तावेज़ केवल Codecepticon को इंस्टॉल और उपयोग करने के तरीके के बारे में है। Rubeus और SharpHound जैसे टूल्स के संकलन, उपयोग और समर्थन प्रदान नहीं किया जाएगा। अधिक जानकारी के लिए प्रत्येक प्रोजेक्ट के रेपो को अलग से देखें।
Codecepticon को VS2022 में सक्रिय रूप से विकसित/परीक्षण किया जाता है, लेकिन यह VS2019 में भी काम करना चाहिए। VS2019 और उससे नीचे के लिए बनाए गए किसी भी टिकट/इश्यू की जाँच नहीं की जाएगी, जब तक कि समस्या VS2022 में पुनरुत्पादित न हो सके। इसलिए कृपया नवीनतम और सर्वोत्तम VS2022 का उपयोग करें।
निम्नलिखित पैकेज v3.9.0 होने चाहिए, क्योंकि नए संस्करणों में निम्नलिखित समस्या है जो अभी भी खुली है: https://github.com/dotnet/roslyn/issues/58463
Codecepticon रनटाइम पर इन पैकेजों के संस्करण की जाँच करता है और यदि संस्करण v3.9.0 से भिन्न है तो आपको सूचित करेगा।
इस बात पर पर्याप्त ज़ोर नहीं दिया जा सकता: हमेशा अपने अस्पष्ट कोड का पहले स्थानीय रूप से परीक्षण करें।


Codecepticon खोलें, सभी NuGet पैकेज डाउनलोड होने तक प्रतीक्षा करें और फिर सॉल्यूशन बिल्ड करें। आप एक पूर्व-संकलित Release भी डाउनलोड कर सकते हैं।
Codecepticon का उपयोग करने के दो तरीके हैं, या तो सभी आर्ग्युमेंट्स को कमांड लाइन में डालकर या एकल XML कॉन्फ़िगरेशन फ़ाइल पास करके। समर्थित अनुकूलनों के उच्च स्तर के कारण, यह अनुशंसित नहीं है कि आप मैन्युअल रूप से --help आउटपुट देखकर यह पता लगाने की कोशिश करें कि कौन से पैरामीटर और कैसे उपयोग करें। CommandLineGenerator.html का उपयोग करें और अपना कमांड शीघ्रता से जनरेट करें:

कमांड जनरेटर का आउटपुट फ़ॉर्मेट या तो Console या XML हो सकता है, जो भी आप पसंद करते हैं। Console कमांड को इस प्रकार निष्पादित किया जा सकता है:
Codecepticon.exe --action obfuscate --module csharp --verbose ...etc
XML कॉन्फ़िग फ़ाइल का उपयोग करते समय, जैसे:
Codecepticon.exe --config C:\Your\Path\To\The\File.xml
Codecepticon की कार्यक्षमता में गहराई से जाने के लिए, इस दस्तावेज़ को देखें।
उपयोगी सुझावों के लिए, इस दस्तावेज़ को देखें।
C# प्रोजेक्ट को अस्पष्ट करना सरल है, बस उस समाधान का चयन करें जिसे आप लक्षित करना चाहते हैं। ध्यान दें कि समाधान का बैकअप नहीं लिया जाएगा, और वर्तमान वाला ही अस्पष्ट किया जाएगा। सुनिश्चित करें कि Codecepticon को इसके विरुद्ध चलाने से पहले आप लक्षित प्रोजेक्ट को स्वतंत्र रूप से संकलित कर सकते हैं।
VBA अस्पष्टीकरण Microsoft Office दस्तावेज़ के बजाय स्रोत कोड के विरुद्ध काम करता है। इसका मतलब है कि आप Codecepticon को doc(x) या xls(x) फ़ाइल नहीं दे सकते। यह मॉड्यूल के स्रोत कोड का ही होना चाहिए (Alt-F11 दबाएँ और वहाँ से कोड कॉपी करें)।
PowerShell स्क्रिप्ट की जटिलता, और स्क्रिप्ट लिखने के तरीके में यह जो स्वतंत्रता प्रदान करता है, उसके कारण सभी एज केसों को कवर करना और यह सुनिश्चित करना चुनौतीपूर्ण है कि अस्पष्ट किया गया परिणाम पूरी तरह कार्यात्मक होगा। हालाँकि Codecepticon के सरल स्क्रिप्ट/कार्यक्षमता के विरुद्ध ठीक काम करने की अपेक्षा है, PowerView जैसे जटिल स्क्रिप्ट के विरुद्ध इसे चलाना काम नहीं करेगा - यह एक कार्य प्रगति पर है।
किसी एप्लिकेशन या स्क्रिप्ट को अस्पष्ट करने के बाद, यह बहुत संभव है कि कमांड लाइन आर्ग्युमेंट्स का भी नाम बदल दिया गया हो। इसका समाधान यह है कि नए नामों को खोजने के लिए HTML मैपिंग फ़ाइल का उपयोग करें। उदाहरण के लिए, आइए निम्नलिखित कमांड लाइन को परिवर्तित करें:
SharpHound.exe --CollectionMethods DCOnly --OutputDirectory C:\temp\
प्रत्येक आर्ग्युमेंट के लिए HTML मैपिंग फ़ाइल में खोज करने पर, हमें यह प्राप्त होता है:



और सभी स्ट्रिंग्स को बदलने पर परिणाम यह होता है:
ObfuscatedSharpHound.exe --AphylesPiansAsp TurthsTance --AnineWondon C:\temp\
हालाँकि, कुछ मान एक से अधिक श्रेणियों में मौजूद हो सकते हैं:

इसलिए अपने परिणाम का पहले स्थानीय वातावरण में परीक्षण करना हमेशा महत्वपूर्ण है।
Codecepticon का उपयोग निष्पादन योग्य फ़ाइलों (आपके संकलित आउटपुट) पर डिजिटल रूप से हस्ताक्षर करने के लिए भी किया जा सकता है। Codecepticon आपके लिए एक साइनिंग प्रमाणपत्र उत्पन्न कर सकता है, और इसका (या आपके द्वारा प्रदान किए गए किसी अन्य प्रमाणपत्र का) उपयोग आपकी लक्ष्य फ़ाइल पर हस्ताक्षर करने के लिए भी कर सकता है।