
Multi-Packer обёртка, позволяющая связывать цепочкой различные упаковщики, обфускаторы и другое ориентированное на Red Team оружие. Оснащена маркировкой артефактов, сбором IOCs и бэкдорингом PE. Вы передаёте ей свой имплант, она проделывает много скрытных операций и выдаёт обфусцированный исполняемый файл.

Обоснование выпуска этого программного обеспечения было изложено в сопроводительной статье блога:
Скрипт, который объединяет множество упаковщиков, протекторов, обфускаторов, загрузчиков шеллкода, кодировщиков, генераторов для создания сложных защищённых имплантов для Red Team. Ваш идеальный помощник в конвейере CI/CD разработки вредоносного ПО, помогающий маркировать ваши артефакты, собирать IOCs, внедрять бэкдоры и многое другое.
ProtectMyToolingGUI.py

С помощью ProtectMyTooling вы можете быстро обфусцировать ваши бинарные файлы, не беспокоясь о том, чтобы щёлкать по всем диалогам, интерфейсам, меню, создавать проекты для обфускации одного бинарника, щёлкать по всем доступным опциям и тратить время на всю эту ерунду. Он сразу переходит к делу — к обфускации вашего инструмента.
Цель — предложить максимально удобный интерфейс и позволить использовать цепочку из нескольких упаковщиков, применяемых к одному бинарному файлу.
Верно — мы можем запустить ProtectMyTooling сразу с несколькими упаковщиками:```
C:> py ProtectMyTooling.py hyperion,upx mimikatz.exe mimikatz-obf.exe
В приведённом выше примере сначала `mimikatz.exe` передаётся в Hyperion для обфускации, а затем результат передаётся в UPX для сжатия. В итоге получается `UPX(Hyperion(file))`
## Возможности
- Поддержка множества различных упаковщиков PE, обфускаторов .NET, загрузчиков/сборщиков шелл-кода
- Возможность цепочного объединения упаковщиков, когда вывод одного упаковщика передаётся следующему: `callobf,hyperion,upx` создаст артефакт `UPX(Hyperion(CallObf(file)))`
- Сбор IOC на каждом этапе обфускации, чтобы удовлетворить запросы аудита и синей команды
- Предоставляет функциональность для внедрения пользовательских водяных знаков в результирующие артефакты PE — в DOS Stub, ControlSum, как отдельную секцию PE, в оверлей файла
- Включает удобный скрипт aggressor для Cobalt Strike, добавляющий команды `protected-upload` и `protected-execute-assembly`
- Простое использование через командную строку
## Установка
**Этот инструмент разработан для работы в Windows, так как большинство упаковщиков изначально нацелены на эту платформу.**
Некоторые функции, однако, могут работать и в Linux, но эта поддержка полностью не протестирована, сообщайте об ошибках и проблемах.
1. Во-первых, **отключите ваш антивирус** и добавьте каталог `contrib` в исключения. Этот каталог содержит обфускаторы и протекторы, которые будут помечены антивирусом и удалены.
2. Затем клонируйте этот репозиторий```
PS C:\> git clone --recurse https://github.com/Binary-Offensive/ProtectMyTooling
Windows``` PS C:\ProtectMyTooling> .\install.ps1
**Linux**```
bash# ./install.sh
Для работы упаковщика ScareCrow в Windows 10 необходимо установить WSL и обеспечить доступность bash.exe (в %PATH%).
Затем в WSL нужно установить golang версии не ниже 1.16:```
cmd> bash
bash$ sudo apt update ; sudo apt upgrade -y ; sudo apt install golang=2:1.18~3 -y
## Конфигурация
Чтобы подключить поддерживаемые обфускаторы, изменить параметры по умолчанию или указать **ProtectMyTooling** путь к исполняемому файлу обфускатора, необходимо настроить файл конфигурации `config\ProtectMyTooling.yaml`.
Также есть файл `config\sample-full-config.yaml`, содержащий все доступные опции для всех поддерживаемых паковщиков и служащий справочной точкой.
## Дружеское напоминание
- Если созданный вами бинарник аварийно завершает работу или не запускается, как ожидалось, попробуйте другую цепочку паковщиков.
- Паковщики не гарантируют стабильности создаваемых бинарников, поэтому ProtectMyTooling также не может этого гарантировать.
- При объединении в цепочку тщательно сопоставляйте форматы выходных и входных полезных нагрузок в соответствии с тем, что ожидает следующий паковщик.
---
## Использование
Перед первым использованием `ProtectMyTooling` необходимо настроить файл конфигурации YAML `ProtectMyTooling.yaml`.
Порядок обработки параметров следующий:
- Сначала используются параметры по умолчанию
- Затем они перезаписываются значениями из YAML
- Наконец, всё, что указано в командной строке, перезаписывает соответствующие значения
Там должны быть заданы пути к поддерживаемым паковщикам и их опции для включения.
### Сценарий 1: Простое обфускация с ConfuserEx
Использование очень простое, всё, что нужно, — передать имя обфускатора, пути к входному и выходному файлам:```
C:\> py ProtectMyTooling.py confuserex Rubeus.exe Rubeus-obf.exe
::::::::::.:::::::.. ... :::::::::::.,:::::: .,-::::::::::::::::
`;;;```.;;;;;;``;;;; .;;;;;;;;;;;;;;;\''';;;;\'\''',;;;'````;;;;;;;;\'\'''
`]]nnn]]' [[[,/[[[' ,[[ \[[, [[ [[cccc [[[ [[
$$$"" $$$$$$c $$$, $$$ $$ $$"""" $$$ $$
888o 888b "88bo"888,_ _,88P 88, 888oo,_`88bo,__,o, 88,
. YMMMb :.-:.MM ::-. "YMMMMMP" MMM """"YUMMM"YUMMMMMP" MMM
;;,. ;;;';;. ;;;;'
[[[[, ,[[[[, '[[,[[['
$$$$$$$$"$$$ c$$"
888 Y88" 888o,8P"`
::::::::::::mM... ... ::: :::::. :::. .,-:::::/
;;;;;;;;\'''.;;;;;;;. .;;;;;;;. ;;; ;;`;;;;, `;;,;;-'````'
[[ ,[[ \[[,[[ \[[,[[[ [[[ [[[[[. '[[[[ [[[[[[/
$$ $$$, $$$$$, $$$$$' $$$ $$$ "Y$c$"$$c. "$$
88, "888,_ _,88"888,_ _,88o88oo,._888 888 Y88`Y8bo,,,o88o
MMM "YMMMMMP" "YMMMMMP"""""YUMMMMM MMM YM `'YMUP"YMM
Red Team implants protection swiss knife.
Multi-Packer wrapping around multitude of packers, protectors, shellcode loaders, encoders.
Mariusz Banach / mgeeky '20-'22, <[email protected]>
v0.16
[.] Processing x86 file: "\Rubeus.exe"
[.] Generating output of ConfuserEx(<file>)...
[+] SUCCEEDED. Original file size: 417280 bytes, new file size ConfuserEx(<file>): 756224, ratio: 181.23%
Также можно обфусцировать файл и сразу же попытаться запустить его (также с предоставленными необязательными параметрами), чтобы убедиться, что он работает корректно, с опциями -r --cmdline CMDLINE:```
C:> py ProtectMyTooling.py confuserex Rubeus.exe Rubeus-obf.exe -r --cmdline "hash /password:foobar"
[...]
[.] Processing x86 file: "\Rubeus.exe" [.] Generating output of ConfuserEx()...
[+] SUCCEEDED. Original file size: 417280 bytes, new file size ConfuserEx(): 758272, ratio: 181.72%
Running application to test it...
(_____ \ | | ) ) | | _____ _ _ ___ | __ /| | | | _ | ___ | | | |/) | | \ | || | |) ) | || | | || ||/|/|_____)__/(_/
v2.0.0
[*] Action: Calculate Password Hash(es)
[] Input password : foobar [] rc4_hmac : BAAC3929FABC9E6DCD32421BA94A84D4
[!] /user:X and /domain:Y need to be supplied to calculate AES and DES hash types!
### Сценарий 3: Комплексная обфускация вредоносного ПО с внедрением водяных знаков и сбором IOCs
В приведённом ниже сценарии использования на вход подаётся `beacon.exe`, который последовательно обрабатывается обфускаторами `CallObf` -> `UPX` -> `Hyperion`.
Затем в финальный сгенерированный артефакт внедряется указанный водяной знак `fooobar` в DOS Stub, а также изменяется контрольная сумма этого артефакта на значение `0xAABBCCDD`.