
Mangle एक उपकरण है जो संकलित निष्पादनयोग्य फ़ाइलों (.exe या DLL) के पहलुओं में हेरफेर करता है ताकि EDRs से पहचान से बचा जा सके।
Mangle के नवीनतम संस्करण को देखने या कोई समस्या सबमिट करने के लिए, https://github.com/Tylous/Mangle देखें।
लेखक: Tyl0us
Source Zero Con 2022 में प्रदर्शित
Mangle एक उपकरण है जो संकलित एक्जीक्यूटेबल्स (.exe या DLL) के पहलुओं में हेरफेर करता है। यह ज्ञात इंडिकेटर्स ऑफ कॉम्प्रोमाइज (IoC) आधारित स्ट्रिंग्स को हटा सकता है और उन्हें यादृच्छिक वर्णों से बदल सकता है, EDR से बचने के लिए फ़ाइल को आकार में बढ़ाकर बदल सकता है, और वैध फ़ाइलों से कोड-साइनिंग प्रमाणपत्र क्लोन कर सकता है। ऐसा करके, Mangle लोडर को डिस्क-ऑन और मेमोरी-इन स्कैनर्स से बचने में मदद करता है।
Mangle को Golang में विकसित किया गया था।
पहला कदम, हमेशा की तरह, रिपॉजिटरी को क्लोन करना है। Mangle को संकलित करने से पहले, आपको निर्भरताएँ स्थापित करनी होंगी। उन्हें स्थापित करने के लिए, निम्नलिखित कमांड चलाएँ:
go get github.com/Binject/debug/pe
फिर इसे बनाएँ
go build Mangle.go
जबकि Mangle Golang में लिखा गया है, इसकी अधिकांश सुविधाएँ अन्य भाषाओं से एक्जीक्यूटेबल फ़ाइलों पर काम करने के लिए डिज़ाइन की गई हैं। रिलीज़ के समय, केवल Golang-विशिष्ट सुविधा स्ट्रिंग हेरफेर भाग है।
./mangle -h
_____ .__
/ \ _____ ____ ____ | | ____
/ \ / \\__ \ / \ / ___\| | _/ __ \
/ Y \/ __ \| | \/ /_/ > |_\ ___/
\____|__ (____ /___| /\___ /|____/\___ >
\/ \/ \//_____/ \/
(@Tyl0us)
Usage of ./Mangle:
-C string
Path to the file containing the certificate you want to clone
-I string
Path to the orginal file
-M Edit the PE file to strip out Go indicators
-O string
The new file name
-S int
How many MBs to increase the file by
Mangle इनपुट एक्जीक्यूटेबल लेता है और ज्ञात स्ट्रिंग्स की खोज करता है जिन्हें सुरक्षा उत्पाद देखते या अलर्ट करते हैं। ये स्ट्रिंग्स अकेले पहचान का एकमात्र बिंदु नहीं हैं। अक्सर, ये स्ट्रिंग्स पहचान और रोकथाम के लिए अन्य डेटा बिंदुओं और टेलीमेट्री के साथ जुड़ी होती हैं। Mangle इन ज्ञात स्ट्रिंग्स को ढूंढता है और हेक्स मानों को यादृच्छिक वर्णों से बदल देता है। महत्वपूर्ण: Mangle जिन स्ट्रिंग्स में हेरफेर करता है, उनके सटीक आकार को बदलता है। यह न तो अधिक जोड़ता है और न ही कम, क्योंकि इससे फ़ाइल में असंगति और अस्थिरता उत्पन्न होगी। Mangle ऐसा -M कमांड-लाइन विकल्प का उपयोग करके करता है।
वर्तमान में, Mangle केवल Golang फ़ाइलों के साथ काम करता है, लेकिन समय के साथ अन्य भाषाएँ जोड़ी जाएँगी। यदि आप अन्य भाषाओं के लिए कुछ जानते हैं, तो कृपया एक इश्यू टिकट खोलें और उन्हें सबमिट करें।
पहले
बाद में
लगभग सभी EDR डिस्क या मेमोरी में फ़ाइलों को एक निश्चित आकार से अधिक स्कैन नहीं कर सकते। यह केवल इस तथ्य से उत्पन्न होता है कि बड़ी फ़ाइलों की समीक्षा, स्कैन या निगरानी में अधिक समय लगता है। EDR उपयोगकर्ता की उत्पादकता को धीमा करके प्रदर्शन को प्रभावित नहीं करना चाहते। Mangle फ़ाइल के अंत में नल बाइट्स (शून्य) का पैडिंग बनाकर फ़ाइलों को फुलाता है। यह सुनिश्चित करता है कि फ़ाइल के अंदर कुछ भी प्रभावित न हो। किसी एक्जीक्यूटेबल को फुलाने के लिए, -S कमांड-लाइन विकल्प का उपयोग उन बाइट्स की संख्या के साथ करें जिन्हें आप फ़ाइल में जोड़ना चाहते हैं। बड़े पेलोड अब वास्तव में कोई समस्या नहीं हैं क्योंकि इंटरनेट की गति कितनी तेज़ है, लेकिन फिर भी, 2 गीगाबाइट की फ़ाइल बनाने की अनुशंसा नहीं की जाती है।
कई यूजरलैंड और कर्नेल EDR पर परीक्षण मामलों के आधार पर, आकार को 95-100 मेगाबाइट तक बढ़ाने की सिफारिश की जाती है। क्योंकि विक्रेता बड़ी फ़ाइलों की जाँच नहीं करते, गतिविधि किसी का ध्यान नहीं जाती, जिसके परिणामस्वरूप शेलकोड का सफल निष्पादन होता है।
Mangle में किसी फ़ाइल से वैध कोड-साइनिंग प्रमाणपत्र से पूरी श्रृंखला और सभी विशेषताएँ लेने और उन्हें किसी अन्य फ़ाइल पर कॉपी करने की क्षमता भी है। इसमें हस्ताक्षर तिथि, प्रतिहस्ताक्षर और अन्य मापनीय विशेषताएँ शामिल हैं।
जबकि यह सुविधा मेरे द्वारा विकसित एक अन्य उपकरण, Limelighter के समान लग सकती है, दोनों के बीच मुख्य अंतर यह है कि Limelighter एक डोमेन के आधार पर नकली प्रमाणपत्र बनाता है और इसे वर्तमान दिनांक और समय के साथ हस्ताक्षरित करता है, जबकि Mangle वैध विशेषताओं का उपयोग करता है जहाँ टाइमस्टैम्प मूल फ़ाइल से लिया जाता है। यह विकल्प DLL या .exe फ़ाइलों का उपयोग करके कॉपी करने के लिए -C कमांड-लाइन विकल्प के साथ, उस फ़ाइल के पथ के साथ जिससे आप प्रमाणपत्र कॉपी करना चाहते हैं, का उपयोग कर सकता है।