Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
EXCELntDonut — Excel 4.0 (XLM) मैक्रो जनरेटर DLL और EXE को मेमोरी में इंजेक्ट करने के लिए। | Kitploit
उपकरण/GitHubGitHub/redsiege/excelntdonut
फ़िशिंग उपकरणपेलोड जनरेशनशोषणशेलकोडफिशिंगरेड टीमिंगशेलकोड जनरेशन
GitHubredsiege/excelntdonut

EXCELntDonut

Excel 4.0 (XLM) मैक्रो जनरेटर DLL और EXE को मेमोरी में इंजेक्ट करने के लिए।

रिपॉजिटरी देखें
517895 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

| \ / / | | | _ __ | || _ \ ___ _ __ _ | | | | \ / | | | | | | ' | | | | |/ _ | ' | | | | | | | / \ || || |__| | | | || || | () | | | | || | | |_____//__|||| ||_|____/ _/|| ||_,|__| @JoeLeonJr (@FortyNorthSec) द्वारा

root@kitploit:~

EXCELntDonut एक XLM (Excel 4.0) मैक्रो जनरेटर है। C# स्रोत कोड (EXE) से शुरू करें और एक XLM (Excel 4.0) मैक्रो के साथ समाप्त करें जो आपके कोड को मेमोरी में निष्पादित करेगा। XLM (Excel 4.0) मैक्रोज़ को .XLS फ़ाइलों में सहेजा जा सकता है।

## स्थापना

```bash
chmod +x install.sh
./install.sh

क्या स्थापित होता है?

  • pip3
  • mono-complete (mcs और आपकी स्रोत फ़ाइलों में संदर्भित सभी संभावित लाइब्रेरीज़)
  • EXCELntDonut एक CLI के रूप में

यदि आप EXCELntDonut को केवल एक Python स्क्रिप्ट के रूप में चलाना चाहते हैं, तो आपको "pandas" और "donut-shellcode" नामक दो पैकेजों के साथ एक वर्चुअल एनवायरनमेंट सेट अप करना होगा। इसके अतिरिक्त, आपको apt-get install mono-complete करना होगा और python3 का उपयोग करके drive.py स्क्रिप्ट को कॉल करना होगा। हम सिर्फ ./install.sh bash स्क्रिप्ट का उपयोग करने की सलाह देते हैं, लेकिन यह आप पर निर्भर है।

उपयोग

root@kitploit:~
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 के रूप में सहेजी गई) में रखा जाता है।

XLM (Excel 4.0) मैक्रो कैसे बनाएं

एक बार जब आपके पास 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" फ्लैग चुना है, तो आपको अपना वास्तविक कोड खोजने के लिए काफी क्षैतिज रूप से स्क्रॉल करना होगा, क्योंकि अस्पष्टीकरण तर्क का हिस्सा मैक्रो को वर्कशीट के यादृच्छिक भाग में ले जाता है)।

हम इस बिंदु पर दो चीजों की सलाह देते हैं:

  1. प्रारंभिक सेल ढूंढें (आपके मैक्रो कोड का शीर्ष-बाएं सेल, संभवतः A1)। राइट-क्लिक करें और "Run" चुनें। यह सुनिश्चित करने के लिए अपने मैक्रो का परीक्षण करें कि यह काम करता है।
  2. एक बार जब आप सत्यापित कर लें कि मैक्रो काम करता है, तो उसी शीर्ष-बाएं सेल पर फिर से क्लिक करें। स्क्रीन के बाईं ओर, एक ड्रॉपडाउन होना चाहिए जो उस सेल को दर्शाता है जिसमें आप हैं (संभवतः "A1")। ड्रॉपडाउन पर क्लिक करें और टेक्स्ट वैल्यू को "Auto_open" में बदलें। यह वही स्वचालित निष्पादन कार्यक्षमता उत्पन्न करेगा जो आप VBA मैक्रोज़ में उपयोग करते हैं।

फ़ाइल (.xls) को सहेजें और इसे खोलने का प्रयास करें। इसे स्वचालित रूप से आपका पेलोड निष्पादित करना चाहिए।

सैंडबॉक्स जाँचें

ये जाँचें वास्तविक खतरे वाले अभिनेताओं द्वारा अपने मैलवेयर में उपयोग किए जाने वाले तरीकों पर आधारित हैं।

  1. क्या कोई माउस सक्रिय है?
  2. क्या स्क्रीन का आकार 770 चौड़ाई और 381 ऊंचाई से अधिक है?
  3. क्या होस्ट ध्वनि चला सकता है?
  4. क्या यह एक Windows मशीन है?

अस्पष्टीकरण

  1. प्रक्रिया इंजेक्शन निर्देशों (VirtualAlloc, WriteProcessMemory, CreateThread) और सैंडबॉक्स जाँचों के लिए, सभी मैक्रो फ़ंक्शन निम्नलिखित संरचना में बदल जाएंगे:
root@kitploit:~
=FORMULA(D3&D23&D54&D23&D44,E45)

FORMULA फ़ंक्शन हमें एक सूत्र रखने की अनुमति देता है, जिसे बाद में निष्पादित किया जा सकता है, दूसरे सेल में। इस मामले में, हम प्रक्रिया इंजेक्शन निर्देश डालते हैं और फिर वास्तविक फ़ंक्शन को निष्पादित करने के लिए FORMULA फ़ंक्शन का उपयोग करके उसे दूसरे सेल में रखते हैं। यह रक्षकों को "VirtualAlloc" जैसी चीजों को देखने से स्थैतिक विश्लेषण करने से बचाता है।

  1. पूरा मैक्रो कुछ मान को दाईं ओर स्थानांतरित कर देगा, ताकि जब आप मैक्रो वाली शीट को शुरू में खोलें, तो वह खाली दिखाई दे।

जानने योग्य बातें

  • कम परिष्कृत पेलोड आदेशों को निष्पादित करने के लिए =EXEC() कमांड का उपयोग करते हैं। कुछ फ़ाइलों को डाउनलोड करने के लिए URLMON का भी उपयोग करते हैं। अन्य फ़ाइलों में "SHELL" शब्द भी शामिल होता है। यह सब हमें एक बुरा विचार लगा। यह उपकरण उनमें से कुछ भी शामिल नहीं करता है। इसके बजाय यह आपके C# स्रोत कोड को Excel प्रक्रिया (या तो 32-बिट या 64-बिट) में इंजेक्ट करता है और फिर निष्पादित करता है। वहाँ से, यह आपके पेलोड पर निर्भर करता है कि वह आगे क्या करता है।

सुझाव

  • आपका C# स्रोत कोड वह सब कुछ कर सकता है जो आप चाहते हैं। हम अनुशंसा करते हैं कि आपका स्रोत कोड Excel और आपके द्वारा स्पॉन की गई किसी भी चीज़ के बीच Parent > Child संबंध को तोड़ देता है।
  • "बहुत छिपी" (Very Hidden) एक्सेल शीट के बारे में बहुत सारे अच्छे ब्लॉग पोस्ट हैं। उसका उपयोग करने पर विचार करें।
  • अपनी Excel फ़ाइल को वास्तविक दिखाना न भूलें।

समस्या निवारण

"प्रकार या नामस्थान का नाम ... मौजूद नहीं है ... "
root@kitploit:~
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@kitploit:~
root@excelntdonut-test:/opt# EXCELntDonut -f test.cs -r 'System.Management'

"मेटाडेटा फ़ाइल ... नहीं मिल सकी"
root@kitploit:~
root@excelntdonut-test:/opt# EXCELntDonut -f test.cs -r System.Management
 _______  ______ _____ _           _   ____                    _   
| ____\ \/ / ___| ____| |    _ __ | |_|  _ \  ___  _ __  _   _| |_ 
|  _|  \  / |   |  _| | |   | '_ \| __| | | |/ _ \| '_ \| | | | __|
| |___ /  \ |___| |___| |___| | | | |_| |_| | (_) | | | | |_| | |_ 
|_____/_/\_\____|_____|_____|_| |_|\__|____/ \___/|_| |_|\__,_|\__|
                    @JoeLeonJr (@FortyNorthSec) द्वारा                
[i] आपकी x86 .NET असेंबली तैयार की जा रही है।
warning CS8001: SDK पथ हल नहीं किया जा सका
error CS0006: मेटाडेटा फ़ाइल `System.Management' नहीं मिल सकी

[x] MCS का उपयोग करके x86 .NET असेंबली तैयार करने में त्रुटि। ऊपर दिया गया त्रुटि संदेश देखें।

यह त्रुटि तब तक नहीं आनी चाहिए जब तक कि आप EXCELntDonut को install.sh bash स्क्रिप्ट का उपयोग किए बिना नहीं चलाते। उस स्थिति में, आपको मैन्युअल रूप से mono-complete स्थापित करना होगा। यह प्रासंगिक निर्भरताओं को डाउनलोड करेगा। आप इसे इस प्रकार apt का उपयोग करके स्थापित कर सकते हैं:

root@kitploit:~
apt-get install mono-complete
"प्रोग्राम ... में एक स्थिर 'Main' विधि नहीं है ..."
root@kitploit:~
root@kali:~/Desktop# EXCELntDonut -f test.cs
 _______  ______ _____ _           _   ____                    _   
| ____\ \/ / ___| ____| |    _ __ | |_|  _ \  ___  _ __  _   _| |_ 
|  _|  \  / |   |  _| | |   | '_ \| __| | | |/ _ \| '_ \| | | | __|
| |___ /  \ |___| |___| |___| | | | |_| |_| | (_) | | | | |_| | |_ 
|_____/_/\_\____|_____|_____|_| |_|\__|____/ \___/|_| |_|\__,_|\__|
                    @JoeLeonJr (@FortyNorthSec) द्वारा                
[i] आपकी x86 .NET असेंबली तैयार की जा रही है।
error CS5001: प्रोग्राम `_excelntdonut_GJAoNuVPMcX.exe' में एक प्रवेश बिंदु के लिए उपयुक्त स्थिर `Main' विधि नहीं है

[x] MCS का उपयोग करके x86 .NET असेंबली तैयार करने में त्रुटि। ऊपर दिया गया त्रुटि संदेश देखें।

फिलहाल, EXCELntDonut केवल Main फ़ंक्शन में पेलोड वाली C# फ़ाइलों की अनुमति देता है।

सामान्य समस्या निवारण सलाह
  1. सबसे पहले, windows पर csc का उपयोग करके अपने C# स्रोत कोड को संकलित करें और यह सत्यापित करने के लिए निष्पादित करें कि पेलोड काम करता है। इसे x86 और x64 पेलोड में संकलित करके परीक्षण करें, क्योंकि यह संभावना है कि आप नहीं जानते होंगे कि आपका लक्ष्य वातावरण 32-बिट या 64-बिट Excel संचालित करता है।
  2. आपको अपने पेलोड को एक ही प्रक्रिया में कई बार चलाने में सक्षम होना चाहिए, लेकिन यदि आपको अजीब त्रुटियां मिल रही हैं, तो Excel से बाहर निकलें, पुनः खोलें और पुनः प्रयास करें।
  3. संदेह होने पर, Excel बंद करें और परीक्षण करने के लिए एक नई फ़ाइल बनाएं।

पहचान

  • @InQuest द्वारा शुरुआत करने के लिए कुछ Yara नियम:

    बहुत छिपी शीट खोजें

    https://github.com/InQuest/yara-rules/blob/master/Excel_Hidden_Macro_Sheet.rule

    Auto_Open स्ट्रिंग खोजें

    https://github.com/Neo23x0/signature-base/blob/master/yara/general_officemacros.yar

XLM फ़ाइलों की समीक्षा करने के लिए OLEDUMP.py का उपयोग करने के बारे में बहुत सारे पोस्ट हैं। इस पर विचार करें:

https://clickallthethings.wordpress.com/2020/04/06/covid-19-excel-4-0-macros-and-sandbox-detection/

रक्षा

  1. इंटरनेट से डाउनलोड की गई फ़ाइलों के लिए मैक्रो निष्पादन को अवरुद्ध करने के लिए GPO सक्षम करें। देखें - https://www.microsoft.com/security/blog/2016/03/22/new-feature-in-office-2016-can-block-macros-and-help-prevent-infection/
  2. AMSI दुर्भाग्य से यहाँ मदद नहीं करता है।
  3. ASR नियम... हमें यकीन नहीं है।
  4. अधिकांश उपयोगकर्ता आजकल .xlsx फ़ाइलें भेजते हैं। हो सकता है कि आप अपने कर्मचारियों के इनबॉक्स में .xls फ़ाइलें भेजने से रोकें। किसी को .xlsx के रूप में सहेजी गई फ़ाइल को पुनः भेजने के लिए कहना अनुचित नहीं होगा।
  5. Defender ATP के सबसे हाल के संस्करण ने डिस्क पर ड्रॉप होने पर इस फ़ाइल के अस्पष्टीकृत संस्करण को पकड़ लिया।

आभार

यह हमारे रडार पर भी नहीं होता अगर Outflank (@outflanknl) के लोगों द्वारा किए गए शानदार काम के लिए नहीं। @StanHacked को इस परियोजना के दौरान उनकी अंतर्दृष्टि के लिए विशेष धन्यवाद। साथ ही, यह परियोजना Donut (@TheWover और @odzhan द्वारा) और संबंधित Python लाइब्रेरी (@byt3bl33d3r द्वारा) के बिना संभव नहीं होती। संबंधित, Accenture की टीम ने CLRvoyance बनाया, जिसने कुछ x64 समस्याओं को हल किया जिन्हें हम Donut + XLM 4.0 मैक्रो के साथ हल नहीं कर पाए। अंत में, XLM मैक्रो को Excel के 64-बिट संस्करणों के साथ संगत बनाने पर शानदार शोध के लिए Cybereason के Philip Tsukerman को धन्यवाद।

अस्वीकरण

हम इस उपकरण के दुरुपयोग के लिए जिम्मेदार नहीं हैं। यह उपकरण शैक्षिक और अधिकृत-परीक्षण उद्देश्यों के लिए तैयार किया गया था ताकि यह प्रदर्शित किया जा सके कि C# स्रोत कोड को XLM (Excel 4.0) मैक्रो का उपयोग करके मेमोरी में कैसे इंजेक्ट किया जा सकता है। इस परियोजना का अंतिम लक्ष्य है (1) रेड टीमर्स को एक और फ़िशिंग पेलोड विकल्प प्रदान करना ताकि वास्तविक विरोधी वर्तमान में जो उपयोग कर रहे हैं उसका अनुकरण किया जा सके, और (2) रक्षकों को विश्लेषण और शमन बनाने के लिए एक संदर्भ बिंदु प्रदान करना। इस प्रकार के पेलोड को तुरंत उत्पन्न करने के लिए एक उपकरण के बिना, हमारा मानना है कि रक्षक वास्तव में आने वाली चीज़ों के लिए पर्याप्त रूप से तैयार नहीं होंगे। कृपया जिम्मेदारी से कार्य करें।

लाइसेंस

कृपया इस फ़ोल्डर में लाइसेंस फ़ाइल देखें। कृपया ध्यान दें कि यह उपकरण Donut और CLRvoyance सहित दो अन्य ओपन सोर्स उपकरणों को शामिल करता है।

टूल डाउनलोड करें