
Envoltorio Multi-Packer que nos permite encadenar varios empaquetadores, ofuscadores y otras armas orientadas al Red Team. Incluye marcado de artefactos, recolección de IOCs y backdooring de PE. Le introduces tu implante, hace muchas cosas sigilosas y escupe un ejecutable ofuscado.

La razón detrás de publicar este software se describió en una publicación de blog adjunta:
Script que envuelve una multitud de empaquetadores, protectores, ofuscadores, cargadores de shellcode, codificadores, generadores para producir complejos implantes protegidos de Red Team. Tu compañero perfecto en el pipeline de CI/CD de Desarrollo de Malware, ayudando a marcar tus artefactos, recolectar IOCs, backdoor y más.
ProtectMyToolingGUI.py

Con ProtectMyTooling puedes ofuscar rápidamente tus binarios sin tener que preocuparte por hacer clic a través de todos los diálogos, interfaces, menús, crear proyectos para ofuscar un solo binario, hacer clic en todas las opciones disponibles y perder el tiempo con todas esas tonterías. Te lleva directamente al punto - ofuscar tu herramienta.
El objetivo es ofrecer la interfaz más conveniente posible y permitir aprovechar una cadena en serie de múltiples empaquetadores combinados en un solo binario.
Así es - podemos lanzar ProtectMyTooling con varios empaquetadores a la vez:```
C:> py ProtectMyTooling.py hyperion,upx mimikatz.exe mimikatz-obf.exe
The above example will firstly pass `mimikatz.exe` to the Hyperion for obfuscation, and then the result will be provided to UPX for compression. Resulting with `UPX(Hyperion(file))`
## Características
- Soporta múltiples empaquetadores de PE diferentes, ofuscadores .NET, cargadores/constructores de shellcode
- Permite encadenar empaquetadores donde la salida de un empaquetador se pasa al siguiente: `callobf,hyperion,upx` producirá el artefacto `UPX(Hyperion(CallObf(file)))`
- Recopila IOCs en cada paso de ofuscación para que las solicitudes de auditoría y del equipo azul puedan ser satisfechas
- Ofrece funcionalidad para inyectar marcas de agua personalizadas en los artefactos PE resultantes: en el Stub DOS, Checksum, como una sección PE independiente, en el Overlay del archivo
- Incluye un script de agente de Cobalt Strike práctico que ofrece los comandos `protected-upload` y `protected-execute-assembly`
- Uso sencillo desde la línea de comandos
## Instalación
**Esta herramienta fue diseñada para funcionar en Windows, ya que la mayoría de los empaquetadores tienen como objetivo nativo esa plataforma.**
Algunas características pueden funcionar en Linux sin problemas, sin embargo, ese soporte no está completamente probado; por favor, reporta errores y problemas.
1. Primero, **desactiva tu AV** y agrega el directorio `contrib` a las exclusiones. Ese directorio contiene ofuscadores, protectores que serán detectados por el AV y eliminados.
2. Luego clona este repositorio```
PS C:\> git clone --recurse https://github.com/Binary-Offensive/ProtectMyTooling
Windows``` PS C:\ProtectMyTooling> .\install.ps1
**Linux**```
bash# ./install.sh
Para que el empaquetador ScareCrow funcione en Windows 10, es necesario tener instalado WSL y que bash.exe esté disponible (en %PATH%).
Luego, en WSL se necesita tener golang instalado en una versión al menos 1.16:```
cmd> bash
bash$ sudo apt update ; sudo apt upgrade -y ; sudo apt install golang=2:1.18~3 -y
## Configuración
Para conectar los ofuscadores compatibles, cambiar las opciones predeterminadas o apuntar **ProtectMyTooling** a la ruta de su ejecutable de ofuscación, deberá ajustar el archivo de configuración `config\ProtectMyTooling.yaml`.
También existe el archivo `config\sample-full-config.yaml` que contiene todas las opciones disponibles para todos los empaquetadores compatibles, sirviendo como punto de referencia.
## Recordatorio amigable
- Si su binario producido se bloquea o no se ejecuta como se espera, intente usar una cadena de empaquetadores diferente.
- Los empaquetadores no garantizan la estabilidad de los binarios producidos, por lo tanto, ProtectMyTooling tampoco puede hacerlo.
- Al encadenar, combine cuidadosamente los formatos de carga útil de salida->entrada según lo que espera el empaquetador consecutivo.
---
## Uso
Antes del primer uso de `ProtectMyTooling`, es esencial ajustar el archivo de configuración YAML del programa `ProtectMyTooling.yaml`.
El orden de procesamiento de parámetros es el siguiente:
- Primero se utilizan los parámetros predeterminados
- Luego son sobrescritos por los valores provenientes del YAML
- Finalmente, lo que se proporcione en la línea de comandos sobrescribirá los valores correspondientes
Allí, se deben establecer las rutas y opciones de los empaquetadores compatibles para habilitarlos.
### Escenario 1: Ofuscación simple con ConfuserEx
El uso es muy simple, todo lo que se necesita es pasar el nombre del ofuscador a elegir, la ruta del archivo de entrada y de salida:```
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%
También se puede ofuscar el archivo e inmediatamente intentar lanzarlo (también con parámetros opcionales proporcionados) para asegurarse de que funciona correctamente con las opciones -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!
### Escenario 3: Ofuscación compleja de malware con marca de agua y recopilación de IOCs
El caso de uso a continuación toma `beacon.exe` como entrada y lo alimenta consecutivamente en los empaquetadores `CallObf` -> `UPX` -> `Hyperion`.