
Multi-Packer wrapper che ci consente di concatenare vari packer, obfuscator e altre armi orientate al Red Team. Caratterizzato da watermarking degli artefatti, raccolta di IOCs e PE Backdooring. Gli fornisci il tuo implant, svolge molte attività furtive e produce un eseguibile offuscato.

La motivazione alla base del rilascio di questo software è stata delineata in un post del blog di accompagnamento:
Script che avvolge una moltitudine di packer, protector, offuscatori, loader di shellcode, codificatori, generatori per produrre complessi implant protetti per Red Team. Il tuo perfetto compagno nel pipeline CI/CD dello sviluppo di malware, aiutando a watermarkare i tuoi artefatti, raccogliere IOCs, creare backdoor e altro.
ProtectMyToolingGUI.py

Con ProtectMyTooling puoi offuscare rapidamente i tuoi binari senza doverti preoccupare di cliccare attraverso tutti i dialoghi, interfacce, menu, creare progetti per offuscare un singolo binario, cliccare su tutte le opzioni disponibili e perdere tempo con tutte queste sciocchezze.
Ti porta direttamente al punto - offuscare il tuo tool.
L'obiettivo è offrire l'interfaccia più comoda possibile e consentire di sfruttare una catena di più packer combinati su un singolo binario.
Esatto - possiamo lanciare ProtectMyTooling con più packer contemporaneamente:```
C:> py ProtectMyTooling.py hyperion,upx mimikatz.exe mimikatz-obf.exe
L'esempio sopra passerà prima `mimikatz.exe` a Hyperion per l'offuscamento, e poi il risultato sarà fornito a UPX per la compressione. Risultando in `UPX(Hyperion(file))`
## Caratteristiche
- Supporta diversi PE Packers, .NET Obfuscators, Shellcode Loaders/Builders
- Permette di concatenare packer dove l'output di un packer viene passato al successivo: `callobf,hyperion,upx` produrrà un artefatto `UPX(Hyperion(CallObf(file)))`
- Raccoglie IOCs a ogni passaggio di offuscamento in modo che le richieste di audit e Blue Team possano essere soddisfatte
- Offre funzionalità per iniettare Watermark personalizzati negli artefatti PE risultanti - nel DOS Stub, Checksum, come sezione PE indipendente, nell'Overlay del file
- Fornisce un pratico script aggressor di Cobalt Strike che introduce i comandi `protected-upload` e `protected-execute-assembly`
- Utilizzo semplice tramite riga di comando
## Installazione
**Questo strumento è stato progettato per funzionare su Windows, poiché la maggior parte dei packer hanno come target nativo quella piattaforma.**
Alcune funzionalità potrebbero comunque funzionare su Linux, tuttavia quel supporto non è completamente testato; si prega di segnalare bug e problemi.
1. Prima, **disattiva l'antivirus** e aggiungi la directory `contrib` alle esclusioni. Tale directory contiene offuscatori, protettori che verranno segnalati dall'AV e rimossi.
2. Poi clona questo repository```
PS C:\> git clone --recurse https://github.com/Binary-Offensive/ProtectMyTooling
Windows``` PS C:\ProtectMyTooling> .\install.ps1
**Linux**```
bash# ./install.sh
Per eseguire il packer ScareCrow su Windows 10, è necessario che WSL sia installato e che bash.exe sia disponibile (in %PATH%).
Quindi, in WSL è necessario avere golang installato in versione almeno 1.16:```
cmd> bash
bash$ sudo apt update ; sudo apt upgrade -y ; sudo apt install golang=2:1.18~3 -y
## Configurazione
Per collegare gli offuscatori supportati, cambiare le opzioni predefinite o puntare **ProtectMyTooling** al percorso dell'eseguibile del tuo offuscatore, dovrai modificare il file di configurazione `config\ProtectMyTooling.yaml`.
Esiste anche il file `config\sample-full-config.yaml` che contiene tutte le opzioni disponibili per tutti i packer supportati, fungendo da punto di riferimento.
## Promemoria
- Se il binario prodotto si blocca o non funziona come previsto, prova a usare una catena di packer diversa.
- I packer non garantiscono la stabilità dei binari prodotti, quindi nemmeno ProtectMyTooling può farlo.
- Durante il concatenamento, abbina attentamente i formati output->input del payload secondo quanto previsto dal packer successivo.
---
## Utilizzo
Prima del primo utilizzo di `ProtectMyTooling`, è essenziale regolare il file di configurazione YAML del programma `ProtectMyTooling.yaml`.
L'ordine di elaborazione dei parametri è il seguente:
- Prima vengono utilizzati i parametri predefiniti
- Poi vengono sovrascritti dai valori provenienti da YAML
- Infine, tutto ciò che viene fornito dalla riga di comando sovrascriverà i valori corrispondenti
Lì, i percorsi e le opzioni dei packer supportati devono essere impostati per abilitarli.
### Scenario 1: Offuscazione semplice con ConfuserEx
L'utilizzo è molto semplice, basta passare il nome dell'offuscatore da scegliere, i percorsi del file di input e di output:```
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%
Si può anche offuscare il file e tentare immediatamente di eseguirlo (anche con parametri opzionali forniti) per assicurarsi che funzioni correttamente con le opzioni -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!
### Scenario 3: Offuscamento complesso di malware con watermarking e raccolta di IOC
Il caso d'uso seguente prende `beacon.exe` come input e lo alimenta consecutivamente nei packer `CallObf` -> `UPX` -> `Hyperion`.
Successivamente, inietterà il watermark specificato `fooobar` nel DOS Stub dell'artefatto finale generato, e modificherà anche il checksum di tale artefatto con il valore `0xAABBCCDD`.