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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Macrome — एक्सेल मैक्रो दस्तावेज़ रीडर/राइटर रेड टीमर्स और विश्लेषकों के लिए | Kitploit
उपकरण/GitHubGitHub/michaelweber/macrome
पेलोड जनरेशनशोषणफिशिंगमालवेयर विश्लेषणपेनिट्रेशन टेस्टिंगसामाजिक इंजीनियरिंगबाइनरी विश्लेषणरेड टीमिंग
GitHubmichaelweber/macrome

Macrome

एक्सेल मैक्रो दस्तावेज़ रीडर/राइटर रेड टीमर्स और विश्लेषकों के लिए

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

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

सभी देखें →

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

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

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

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

Macrome

एक रेड टीम सदस्यों और विश्लेषकों के लिए एक्सेल मैक्रो दस्तावेज़ पाठक/लेखक। इस टूल के वास्तविक कार्य का वर्णन करने वाले ब्लॉग पोस्ट यहाँ और यहाँ पाए जा सकते हैं।

डिफ़ॉल्ट टेम्पलेट का उपयोग करके बनाए गए एक उदाहरण दस्तावेज़।

स्थापना / निर्माण

इस रिपॉजिटरी को क्लोन या डाउनलोड करें, फिर टूल को dotnet का उपयोग करके चलाया जा सकता है - उदाहरण के लिए:

root@kitploit:~
dotnet run -- build --decoy-document Docs\decoy_document.xls --payload Docs\popcalc.bin 

या

root@kitploit:~
dotnet build
cd bin/Debug/netcoreapp2.0
dotnet Macrome.dll deobfuscate --path obfuscated_document.xls

ध्यान दें कि इसके लिए कॉन्फ़िगर किए गए अनुसार कार्य करने के लिए dotnet के 5.0+ बिल्ड की आवश्यकता है - इसे https://dotnet.microsoft.com/download/dotnet/5.0 से प्राप्त किया जा सकता है।

टूल के बाइनरी रिलीज़ जिन्हें dotnet की आवश्यकता नहीं है और जिनमें एक्ज़ीक्यूटेबल बाइनरी है, Windows, OSX और Linux के लिए Release अनुभाग में पाए जा सकते हैं।

उपयोग

मैक्रोम को या तो समाधान निर्देशिका से dotnet run का उपयोग करके, या निर्मित मैक्रोम बाइनरी के विरुद्ध dotnet का उपयोग करके चलाएँ। मैक्रोम के लिए ऑपरेशन के तीन मोड हैं - बिल्ड मोड, डंप मोड और डीओबफसकेशन मोड।

बिल्ड मोड

प्रदान किए गए डिकॉय दस्तावेज़ और मैक्रो पेलोड का उपयोग करके एक ऑबफस्केटेड मैक्रो शीट वाला एक्सेल दस्तावेज़ उत्पन्न करने के लिए मैक्रोम को build कमांड के साथ चलाएँ। dotnet Macrome.dll build -h पूर्ण उपयोग निर्देश प्रदर्शित करेगा।

उदाहरण के लिए, डिकॉय दस्तावेज़ path/to/decoy_document.xls और path/to/shellcode.bin पर संग्रहीत बाइनरी x86 शेलकोड का उपयोग करके एक दस्तावेज़ बनाने के लिए, dotnet Macrome.dll build --decoy-document path/to/decoy_document.xls --payload /path/to/shellcode.bin चलाएँ। यह एक XLS 2003 दस्तावेज़ उत्पन्न करेगा जो खोलने और "Enable Content" बटन दबाने के बाद, shellcode.bin के शेलकोड को निष्पादित करेगा।

मुझे इसे कैसे चलाना चाहिए?

बाकी दस्तावेज़ प्रत्येक फ़्लैग/फ़ंक्शन को विस्तार से समझाएगा, लेकिन अभी Macrome द्वारा प्रदान की जाने वाली "नवीनतम और सर्वश्रेष्ठ" सुविधा निम्नलिखित चलाकर प्राप्त की जा सकती है:

root@kitploit:~
Macrome build --decoy-document decoy_document.xls --payload beacon.bin --payload64-bit beacon64.bin --payload-method Base64 --method ArgumentSubroutines --password VelvetSweatshop --preamble preamble.txt --output-file-name ReadyToPhish.xls

बाइनरी पेलोड उपयोग

पहले एक आधार "डिकॉय" एक्सेल दस्तावेज़ बनाएँ जिसमें उपयोगकर्ताओं को देखने के लिए सामग्री हो। यह किसी प्रकार का लालच होना चाहिए जो उपयोगकर्ताओं को एक्सेल में प्रदर्शित "Enable Macros" बटन पर क्लिक करने के लिए राजी करे। https://inquest.net/blog/2020/05/06/ZLoader-4.0-Macrosheets- पर "नवीनतम और सर्वश्रेष्ठ" लालच निर्माण के कुछ उदाहरण हैं। यह शीट बनाने के बाद, दस्तावेज़ को नए Excel Workbook (*.xlsx) प्रारूप के बजाय Excel 97-2003 Workbook (*.xls) प्रकार के रूप में सहेजें। एक उदाहरण डिकॉय दस्तावेज़ /Docs/decoy_document.xls में शामिल है। ध्यान दें कि यदि आप अपने दस्तावेज़ की सुरक्षा के लिए XOR ओबफस्केशन का उपयोग कर रहे हैं, तो आप वर्तमान में अपने डिकॉय में कोई छवि नहीं जोड़ सकते।

इसके बाद, टूल को प्रदान करने के लिए एक शेलकोड पेलोड उत्पन्न करें। उदाहरण बाइनरी पेलोड (जो कैल्क खोलता है) निम्नलिखित मापदंडों का उपयोग करके msfvenom के साथ उत्पन्न किया गया था:

root@kitploit:~
 msfvenom -a x86 -b '\x00' --platform windows -p windows/exec cmd=calc.exe -e x86/alpha_mixed -f raw EXITFUNC=thread > popcalc.bin

64-बिट पेलोड भी समर्थित हैं। उदाहरण 64-बिट पेलोड, popcalc64.bin, निम्न कमांड का उपयोग करके उत्पन्न किया गया था:

root@kitploit:~
msfvenom -a x64 -b '\x00' --platform windows -p windows/x64/exec cmd=calc.exe -e x64/xor -f raw EXITFUNC=thread > popcalc64.bin

इस पेलोड को फिर निम्न कमांड निष्पादित करके एम्बेड किया जा सकता है:

root@kitploit:~
dotnet Macrome.dll build --decoy-document decoy_document.xls --payload popcalc.bin --payload64-bit popcalc64.bin

वर्तमान में 64-बिट पेलोड के लिए आवश्यक है कि एक x86 पेलोड भी प्रदान किया जाए। यदि यह कोई समस्या नहीं है, तो आप x86 पेलोड फ़्लैग के लिए कोई कचरा भी निर्दिष्ट कर सकते हैं।

दस्तावेज़ में सीधे .NET असेंबली एम्बेड करने के लिए अंततः समर्थन है, लेकिन यदि आप अभी ऐसा करना चाहते हैं तो मैं EXCELntDonut का उपयोग करने का सुझाव देता हूँ।

Macrome 0.5.0 और उससे ऊपर के संस्करणों में, सभी पेलोड को base64 के साथ एनकोड किया जाएगा, इसलिए आपका पेलोड किसी भी बाइट अनुक्रम (शून्य बाइट्स सहित) को शामिल कर सकेगा।

एक्ज़ीक्यूटेबल एम्बेड करना

यदि आप Macrome का उपयोग करके .NET एक्ज़ीक्यूटेबल एम्बेड करना चाहते हैं, तो मैं Donut का उपयोग करने का सुझाव देता हूँ जिसमें कमांड donut.exe -a 3 -b 1 -z 1 executableToEmbed.exe हो, और फिर परिणामी पेलोड को अपने 32-बिट और 64-बिट दोनों पेलोड के रूप में एम्बेड करें।

एक और ठोस विकल्प Amber है जो काफी बड़े Go बाइनरी को एम्बेड करने के लिए बढ़िया काम करता है।

लीगेसी पेलोड एनकोडिंग

यदि किसी कारण से आप pre-Macrome 0.5.0 के लीगेसी पेलोड एनकोडिंग मोड का उपयोग करना चाहते हैं, तो --payload-method फ़्लैग का उपयोग SheetPackingMethod के साथ करें। ध्यान दें कि लीगेसी मोड में अधिकांश अल्फ़ा-न्यूमेरिक पेलोड का उपयोग करने से उत्पन्न मैक्रो फ़ाइल का आकार कम हो जाएगा क्योंकि =CHAR(123)&CHAR(124)&CHAR(125)... आदि की तरह बार-बार CHAR फ़ंक्शन कॉल जोड़ने के बजाय अक्षरों और संख्याओं को मैक्रो रूप में व्यक्त करना आसान होता है। लेकिन टूल को पूरी तरह से अप्रिंटेबल बाइनरी पेलोड को भी संभालने में सक्षम होना चाहिए।

मैक्रो पेलोड उपयोग

बाइनरी पेलोड उपयोग के समान, पहले एक डिकॉय दस्तावेज़ उत्पन्न किया जाना चाहिए। इसके बाद, चलाने के लिए मैक्रो वाली एक टेक्स्ट फ़ाइल बनाई जानी चाहिए। मैक्रो में कॉलम ; वर्णों द्वारा और पंक्तियाँ न्यूलाइन द्वारा अलग की जानी चाहिए। वर्तमान में निर्दिष्ट मैक्रो की सामग्री A1 से शुरू होकर लिखी और निष्पादित की जाएगी - हालाँकि भविष्य में प्रारंभ स्थान निर्दिष्ट करने की अनुमति देने के लिए समर्थन जोड़ा जाएगा। उदाहरण मैक्रो /Docs/macro_example.txt और /Docs/multi_column_macro_example.txt में पाए जा सकते हैं।

अंत में कमांड चलाएँ:

root@kitploit:~
dotnet Macrome.dll build --decoy-document decoy_document.xls --payload macro-example.txt --payload-type Macro

payload-type फ़्लैग के Macro पर सेट उपयोग पर ध्यान दें।

आप स्वयं एक मैक्रो उत्पन्न कर सकते हैं, या आप अपने लिए मैक्रो बनाने के लिए अद्भुत EXCELntDonut टूल का उपयोग कर सकते हैं।

एनकोडिंग विधि चयन

इन्हें आगामी ब्लॉग पोस्ट में विस्तृत किया जाएगा, लेकिन Macrome अब मैक्रो पेलोड को तीन अलग-अलग तरीकों से एनकोड कर सकता है। इनमें से अधिकांश अभी भी किसी भी AV द्वारा पहचाने नहीं जाते हैं - लेकिन यह देखने के लिए कि कौन सा सबसे अच्छा काम करता है, अपने पेलोड के साथ प्रयोग करें।

  1. CharSubroutine - बार-बार CHAR() फ़ंक्शन के उपयोग को एक यादृच्छिक सेल पर एक सबरूटीन बनाकर और फिर IF और SET.NAME फ़ंक्शन की एक लंबी श्रृंखला का उपयोग करके इसे आह्वान करके प्रतिस्थापित करता है। यह कुछ ऐसा है जिसका अभी तक प्रमुख मालडॉक लेखकों द्वारा दुरुपयोग नहीं किया गया है, इसलिए इसके AV पर हिट होने की संभावना नहीं है।
  2. ObfuscatedCharFunc - मूल Macrome एनकोडिंग फ़ंक्शन। CHAR() को आह्वान करें लेकिन इसे एक यादृच्छिक खाली सेल में जोड़ें और मान को ROUND फ़ंक्शन में लपेटें।
  3. ObfuscatedCharFuncAlt - मूल एनकोडिंग पर एक मामूली भिन्नता, CHAR को आह्वान करने के लिए PtgFunc का उपयोग करने के बजाय, हम PtgFuncVar का उपयोग करते हैं - यह उन अधिकांश हस्ताक्षरों को तोड़ता है जो CHAR आह्वानों की गणना करने का प्रयास करते हैं।
  4. AntiAnalysisCharSubroutine - CharSubroutine के समान लेकिन सबरूटीन को पास किए जाने वाले वेरिएबल यहाँ वर्णित अनुसार यूनिकोड शेनानिगन्स का उपयोग करके ओबफस्केट किए जाते हैं। ध्यान दें कि यह डिकॉय वेरिएबल नामों के जुड़ने के कारण CharSubroutine मोड की तुलना में एक बड़ा दस्तावेज़ उत्पन्न करेगा।
  5. ArgumentSubroutines - CHAR() और FORMULA() के लिए एक कस्टम सबरूटीन बनाता है, उन्हें कस्टम फ़ंक्शन के रूप में आह्वान करता है, और ARGUMENT() मैक्रो का उपयोग करके तर्कों को पार्स करता है जो एमुलेटर द्वारा कम समर्थित है।

बिल्ड करते समय method फ़्लैग का उपयोग करके एक एनकोडिंग निर्दिष्ट करें - उदाहरण के लिए, CharSubroutine एनकोडर का उपयोग करने के लिए:

root@kitploit:~
dotnet Macrome.dll b --decoy-document decoy_document.xls --method CharSubroutine --payload popcalc.bin --output-file-name CharSubroutine-Macro.xls

प्रीएम्बल मैक्रो

कभी-कभी आप चाह सकते हैं कि कुछ मैक्रो पेलोड कोड चलने से पहले चलें। यह तब सहायक होता है जब आप सैंडबॉक्स से बचाव और/या यह सत्यापित करने के लिए मैक्रो जोड़ रहे हैं कि आपका पेलोड सही होस्ट पर चल रहा है।

प्रीएम्बल फ़ाइलों का प्रारूप बिल्कुल वैसा ही है जैसा payload-type Macro का उपयोग करते समय होता है, लेकिन यह केवल एकल कॉलम का समर्थन करता है। उदाहरण के लिए, आप एक प्रीएम्बल हो सकता है:

root@kitploit:~
=IF(GET.WORKSPACE(13)<770, CLOSE(FALSE),)
=IF(GET.WORKSPACE(14)<390, CLOSE(FALSE),)
=IF(GET.WORKSPACE(19),,CLOSE(FALSE))
=IF(GET.WORKSPACE(42),,CLOSE(FALSE))

यह स्क्रीन रिज़ॉल्यूशन मान, माउस की उपस्थिति और ध्वनि चलाने की क्षमता की जाँच करेगा। यदि इनमें से कोई भी विफल होता है, तो मुख्य पेलोड सामग्री चलाने से पहले ऐप बंद हो जाएगा।

इसके अतिरिक्त, यदि आप चाहते हैं कि एक प्रीएम्बल मैक्रो तुरंत मूल्यांकन करे, न कि बाकी मैक्रो को अनपैक करने के बाद, तो आप कमांड के आगे %%%%% लगा सकते हैं। उदाहरण के लिए:

root@kitploit:~
%%%%%=IF(GET.WORKSPACE(13)<770, HALT(),)
%%%%%=IF(GET.WORKSPACE(14)<390, HALT(),)
%%%%%=IF(GET.WORKSPACE(19),,HALT())
%%%%%=IF(GET.WORKSPACE(42),,HALT())

यह दस्तावेज़ को मारने से पहले चलाए जाने वाले XLM कमांड की संख्या को कम करने में सहायक है और सैंडबॉक्स संकेतकों की उपस्थिति पर अधिक तत्काल प्रतिक्रिया के लिए सहायक हो सकता है।

XOR ओबफस्केशन पासवर्ड सुरक्षा

Macrome 0.3.0+ Office के बहुत पुराने संस्करणों से एक लीगेसी एन्क्रिप्शन मोड, XOR ओबफस्केशन का उपयोग करके दस्तावेज़ों की पासवर्ड सुरक्षा का समर्थन करता है। यह एन्क्रिप्शन मोड अक्सर IR टूलिंग द्वारा असमर्थित होता है और दस्तावेज़ सामग्री को निरीक्षण से बचाने में मदद कर सकता है।

Excel में VelvetSweatshop का एक "डिफ़ॉल्ट" पासवर्ड है, जो आपको दस्तावेज़ सामग्री को एन्क्रिप्ट करने की अनुमति देगा, जबकि दस्तावेज़ खोलने पर स्वचालित रूप से डिक्रिप्ट हो जाएगा। यह आक्रामक संदर्भ में XOR ओबफस्केशन का उपयोग करने का "आदर्श" तरीका है। Macrome किसी दस्तावेज़ को डीओबफस्केट या डंप करते समय स्वचालित रूप से इस पासवर्ड का उपयोग करने का प्रयास करेगा।

इस कार्यक्षमता का उपयोग करने के लिए, बस अपने बिल्ड कमांड में --password <passwordToEncrypt> जोड़ें।

डंप मोड

मनमाने दस्तावेज़ों के लिए सबसे प्रासंगिक BIFF8 रिकॉर्ड प्रिंट करने के लिए Macrome को dump कमांड के साथ चलाएँ। यह कार्यक्षमता olevba की मैक्रो डंपिंग कार्यक्षमता के समान है, लेकिन इसमें एज-केस Ptg प्रविष्टियों का कुछ अधिक पूर्ण प्रसंस्करण है ताकि यह सुनिश्चित हो सके कि प्रारूप Excel की वास्तविक FORMULA प्रविष्टियों के जितना संभव हो उतना करीब है। इस टूल को बनाते समय मैं कुछ विचित्र एज-केस दस्तावेज़ों को डीबग करने के लिए इसका उपयोग कर रहा हूँ, इसलिए यह तुलनात्मक रूप से मजबूत है। मुझे यकीन है कि बहुत सारे एज-केस हैं जो अभी समर्थित नहीं हैं, इसलिए यदि आपको कोई ऐसा दस्तावेज़ मिलता है जो इसकी सामग्री को ठीक से डंप नहीं करता है, तो कृपया एक मुद्दा खोलें और दस्तावेज़ को ज़िप फ़ाइल के रूप में साझा करें।

डंप कमांड को केवल लक्ष्य फ़ाइल की ओर इशारा करते हुए एक path तर्क की आवश्यकता होती है। एक उदाहरण आह्वान है:

root@kitploit:~
dotnet Macrome.dll dump --path docToDump.xls

डंप कमांड के अधिकांश फ़्लैग डीबगिंग के लिए हैं, लेकिन dump-hex-bytes उन उपयोगकर्ताओं के लिए उपयोगी हो सकता है जो प्रासंगिक रिकॉर्ड के लिए अलग-अलग बाइट पेलोड देखना चाहते हैं। यह BiffView की समान कार्यक्षमता है, हालाँकि डिफ़ॉल्ट रूप से केवल मालडॉक-विशिष्ट प्रविष्टियाँ प्रदर्शित की जाएंगी।

डीओबफस्केशन मोड

एक ऑबफस्केटेड XLS बाइनरी दस्तावेज़ लेने और कई एंटी-एनालिसिस व्यवहारों को उलटने का प्रयास करने के लिए Macrome को deobfuscate कमांड के साथ चलाएँ। dotnet Macrome.dll deobfuscate -h पूर्ण उपयोग निर्देश प्रदर्शित करेगा। वर्तमान में, डिफ़ॉल्ट रूप से यह मोड निम्नलिखित करेगा:

  • उनकी छिपी स्थिति की परवाह किए बिना सभी शीट को दिखाएँ
  • सभी Lbl प्रविष्टियों के लिए मैन्युअल रूप से निर्दिष्ट लेबल को सामान्य करें जिन्हें Excel उनके नाम के उस स्ट्रिंग से मेल न खाने के बावजूद Auto_Open प्रविष्टियों के रूप में व्याख्या करेगा।

उदाहरण के लिए, path/to/obfuscated_file.xls पर एक दुर्भावनापूर्ण XLS 2003 मैक्रो फ़ाइल को डीओबफस्केट करने के लिए, dotnet Macrome.dll deobfuscate --path path/to/obfuscated_file.xls चलाएँ। यह ऑबफस्केटेड फ़ाइल की एक प्रति उत्पन्न करेगा जिसका मैन्युअल या टूल के साथ विश्लेषण करना आसान होगा।

नोट: यह अभी बहुत कुछ नहीं करता है, इसका मुख्य उद्देश्य यह प्रदर्शित करना है कि संशोधित b2xtranslator लाइब्रेरी का उपयोग डीओबफस्केशन को स्वचालित करने में कैसे मदद कर सकता है। जल्द ही और अधिक उपयोगी सुविधाएँ आ रही हैं।

आभार

इसे लिखने के लिए मैं जिन कंधों पर खड़ा हो सका, उन सभी को बहुत-बहुत धन्यवाद।

  • https://outflank.nl/blog/2018/10/06/old-school-evil-excel-4-0-macros-xlm/ - Outflank टीम ने इस हमले को बनाया, मैं बस कुछ कठिन भागों को स्वचालित कर रहा हूँ।
  • InQuest के लोगों का उनके उत्कृष्ट लेखों के लिए धन्यवाद कि मैलवेयर लेखक अभी पहचान से बचने के लिए क्या कर रहे हैं।
    • https://inquest.net/blog/2019/01/29/Carving-Sneaky-XLM-Files
    • https://inquest.net/blog/2020/03/18/Getting-Sneakier-Hidden-Sheets-Data-Connections-and-XLM-Macros
    • https://inquest.net/blog/2020/05/06/ZLoader-4.0-Macrosheets-
  • @DissectMalware का उनके किलर XLMMacroDeobfuscator टूल के लिए धन्यवाद जिसके खिलाफ परीक्षण करना शानदार रहा है और यदि आप रक्षा/विश्लेषक पक्ष पर हैं तो यह वास्तव में एक बेहतरीन तकनीक है।
  • @JoeLeonJr का उनके शानदार EXCELntDonut टूल के लिए धन्यवाद जिसके मल्टी-आर्किटेक्चर एक्सेल मैक्रो को मैंने Macrome में x64 आर्किटेक्चर समर्थन जोड़ने के लिए चुराया अनुकूलित किया।
  • b2xtranslator लाइब्रेरी के मूल लेखकों के साथ-साथ EvolutionJobs के लोगों का धन्यवाद जिन्होंने इसे अपडेट किया और dotnet पर पोर्ट किया। यहाँ उपयोग किया गया कोड शुरू में https://github.com/EvolutionJobs/b2xtranslator से लिया गया था।
  • https://gunshowcomic.com/648 पर KC Green के कॉमिक से ली गई कल्पना।
टूल डाउनलोड करें