
Excel 4.0 (XLM) मैक्रो जनरेटर DLL और EXE को मेमोरी में इंजेक्ट करने के लिए।
| \ / / | | | _ __ | || _ \ ___ _ __ _ | | | | \ / | | | | | | ' | | | | |/ _ | ' | | | | | | | / \ || || |__| | | | || || | () | | | | || | | |_____//__|||| ||_|____/ _/|| ||_,|__| @JoeLeonJr (@FortyNorthSec) द्वारा
EXCELntDonut एक XLM (Excel 4.0) मैक्रो जनरेटर है। C# स्रोत कोड (EXE) से शुरू करें और एक XLM (Excel 4.0) मैक्रो के साथ समाप्त करें जो आपके कोड को मेमोरी में निष्पादित करेगा। XLM (Excel 4.0) मैक्रोज़ को .XLS फ़ाइलों में सहेजा जा सकता है।
## स्थापना
```bash
chmod +x install.sh
./install.sh
क्या स्थापित होता है?
यदि आप EXCELntDonut को केवल एक Python स्क्रिप्ट के रूप में चलाना चाहते हैं, तो आपको "pandas" और "donut-shellcode" नामक दो पैकेजों के साथ एक वर्चुअल एनवायरनमेंट सेट अप करना होगा। इसके अतिरिक्त, आपको apt-get install mono-complete करना होगा और python3 का उपयोग करके drive.py स्क्रिप्ट को कॉल करना होगा। हम सिर्फ ./install.sh bash स्क्रिप्ट का उपयोग करने की सलाह देते हैं, लेकिन यह आप पर निर्भर है।
Usage:
$ EXCELntDonut -f exe_source.cs -r System.Windows.Forms.dll --sandbox --obfuscate
Flags:
(आवश्यक)
-f आपके C# स्रोत कोड वाली फ़ाइल का पथ (केवल exe)
-r आपके C# कोड को संकलित करने के लिए आवश्यक संदर्भ (Linux पर mcs का उपयोग करते समय वही)
(उदा: -r 'System.Management')
(वैकल्पिक)
-o आउटपुट फ़ाइल नाम
--sandbox
बुनियादी सैंडबॉक्स जाँचें करें। जैसे-जैसे नए दृष्टिकोण खोजे जाएंगे, इसे अपडेट किया जाएगा।
--obfuscate
बुनियादी मैक्रो अस्पष्टीकरण करें।
आप एक C# फ़ाइल प्रदान करते हैं जिसमें आपका पेलोड होता है (जैसे एक EXE जिसमें एक मुख्य विधि होती है जो कोबाल्ट स्ट्राइक बीकन पेलोड को निष्पादित करती है)। उस C# फ़ाइल को MCS का उपयोग करके दो .NET असेंबली में संकलित किया जाता है: x86 और x64। संकलन के बाद, शानदार उपकरण Donut (x86 के लिए) और CLRvoyance (x64 के लिए) प्रत्येक असेंबली को स्थिति-स्वतंत्र शेलकोड में परिवर्तित करते हैं। इसके बाद, सभी नलबाइट्स हटा दिए जाते हैं, क्योंकि XLM (Excel 4.0) मैक्रो नलबाइट्स के साथ अच्छी तरह से काम नहीं करते हैं, और पेलोड को 255 से अधिक वर्णों (x86 के लिए) या 10 वर्णों (x64 के लिए) वाली पंक्तियों में विभाजित किया जाता है।
एक बार जब शेलकोड तैयार हो जाता है, तो इसे बुनियादी प्रक्रिया इंजेक्शन फ़ंक्शन (VirtualAlloc, WriteProcessMemory और CreateThread) के साथ-साथ एक आर्किटेक्चर जाँच फ़ंक्शन के साथ जोड़ा जाता है ताकि यह निर्धारित किया जा सके कि लक्ष्य सिस्टम पर कौन सा पेलोड (x86 या x64) चलाना है। यदि आप सैंडबॉक्स जाँच या बुनियादी अस्पष्टीकरण चलाना चुनते हैं, तो वे फ़ंक्शन आपके मैक्रो को अपडेट करेंगे। अंत में, आउटपुट एक CSV फ़ाइल (.txt के रूप में सहेजी गई) में रखा जाता है।
एक बार जब आपके पास EXCELntDonut से आउटपुट फ़ाइल हो, तो आउटपुट फ़ाइल को एक टेक्स्ट एडिटर में खोलें और इसकी पूरी सामग्री को कॉपी करें (Ctrl-A, Ctrl-S)। Windows VM पर Excel खोलें, "Sheet 1" पर राइट-क्लिक करें और "Insert" चुनें। "MS Excel 4.0 Macro" चुनें। सेल A1 पर जाएं और EXCELntDonut आउटपुट पेस्ट करें। सभी डेटा संभवतः एक कॉलम में पेस्ट हो जाएगा। डेटा अर्धविराम ";" से अलग किया गया है। "Data" टैब पर जाएं और "Text-to-columns" पर क्लिक करें। "Delimited" चुनें और अगली स्क्रीन पर "Semicolon" चुनें और फिर "Finish" पर क्लिक करें। मैक्रो उपयुक्त कॉलम और पंक्तियों में फैल जाएगा।
(नोट - यदि आपने "--obfuscate" फ्लैग चुना है, तो आपको अपना वास्तविक कोड खोजने के लिए काफी क्षैतिज रूप से स्क्रॉल करना होगा, क्योंकि अस्पष्टीकरण तर्क का हिस्सा मैक्रो को वर्कशीट के यादृच्छिक भाग में ले जाता है)।
हम इस बिंदु पर दो चीजों की सलाह देते हैं:
फ़ाइल (.xls) को सहेजें और इसे खोलने का प्रयास करें। इसे स्वचालित रूप से आपका पेलोड निष्पादित करना चाहिए।
ये जाँचें वास्तविक खतरे वाले अभिनेताओं द्वारा अपने मैलवेयर में उपयोग किए जाने वाले तरीकों पर आधारित हैं।
=FORMULA(D3&D23&D54&D23&D44,E45)
FORMULA फ़ंक्शन हमें एक सूत्र रखने की अनुमति देता है, जिसे बाद में निष्पादित किया जा सकता है, दूसरे सेल में। इस मामले में, हम प्रक्रिया इंजेक्शन निर्देश डालते हैं और फिर वास्तविक फ़ंक्शन को निष्पादित करने के लिए FORMULA फ़ंक्शन का उपयोग करके उसे दूसरे सेल में रखते हैं। यह रक्षकों को "VirtualAlloc" जैसी चीजों को देखने से स्थैतिक विश्लेषण करने से बचाता है।
root@excelntdonut-test:/opt# EXCELntDonut -f test.cs
_______ ______ _____ _ _ ____ _
| ____\ \/ / ___| ____| | _ __ | |_| _ \ ___ _ __ _ _| |_
| _| \ / | | _| | | | '_ \| __| | | |/ _ \| '_ \| | | | __|
| |___ / \ |___| |___| |___| | | | |_| |_| | (_) | | | | |_| | |_
|_____/_/\_\____|_____|_____|_| |_|\__|____/ \___/|_| |_|\__,_|\__|
@JoeLeonJr (@FortyNorthSec) द्वारा
[i] आपकी x86 .NET असेंबली तैयार की जा रही है।
warning CS8001: SDK पथ हल नहीं किया जा सका
test.cs(2,14): error CS0234: प्रकार या नामस्थान का नाम `Management' नामस्थान `System' में मौजूद नहीं है। क्या आप एक असेंबली संदर्भ याद कर रहे हैं?
यह त्रुटि सबसे अधिक संभावना है कि mono का उपयोग करके संकलन के दौरान आप एक संदर्भ असेंबली याद कर रहे हैं। इसे ठीक करने के लिए, बस -r फ्लैग में उल्लिखित नामस्थान को पास करें। इस मामले में, हम कमांड लाइन में -r 'System.Management' जोड़ेंगे। नया कमांड होगा:
root@excelntdonut-test:/opt# EXCELntDonut -f test.cs -r 'System.Management'
root@excelntdonut-test:/opt# EXCELntDonut -f test.cs -r System.Management
_______ ______ _____ _ _ ____ _
| ____\ \/ / ___| ____| | _ __ | |_| _ \ ___ _ __ _ _| |_
| _| \ / | | _| | | | '_ \| __| | | |/ _ \| '_ \| | | | __|
| |___ / \ |___| |___| |___| | | | |_| |_| | (_) | | | | |_| | |_
|_____/_/\_\____|_____|_____|_| |_|\__|____/ \___/|_| |_|\__,_|\__|
@JoeLeonJr (@FortyNorthSec) द्वारा
[i] आपकी x86 .NET असेंबली तैयार की जा रही है।
warning CS8001: SDK पथ हल नहीं किया जा सका
error CS0006: मेटाडेटा फ़ाइल `System.Management' नहीं मिल सकी