
Multi-Packer Wrapper, der es ermöglicht, verschiedene Packer, Obfuskatoren und andere Red Team-orientierte Waffen aneinanderzureihen. Ausgestattet mit Artefakt-Watermarking, IOCs-Sammlung und PE Backdooring. Du fütterst es mit deinem Implant, es führt eine Menge heimlicher Dinge aus und gibt eine obfuskierte ausführbare Datei aus.

Die Beweggründe für die Veröffentlichung dieser Software wurden in einem begleitenden Blogbeitrag dargelegt:
Ein Skript, das eine Vielzahl von Packern, Protectoren, Obfuskatoren, Shellcode-Ladern, Encodern und Generatoren umschließt, um komplex geschützte Red-Team-Implantate zu erzeugen. Ihr perfekter Begleiter in der CI/CD-Pipeline für Malware-Entwicklung, der hilft, Ihre Artefakte zu watermarken, IOCs zu sammeln, Backdoors zu setzen und mehr.
ProtectMyToolingGUI.py

Mit ProtectMyTooling können Sie Ihre Binärdateien schnell obfuskieren, ohne sich durch all die Dialoge, Schnittstellen, Menüs klicken, Projekte erstellen, um eine einzelne Binärdatei zu obfuskieren, durch alle Optionen zu klicken und Zeit mit all dem Unsinn zu verschwenden. Es bringt Sie direkt zum Ziel - Ihr Werkzeug zu obfuskieren.
Ziel ist es, die benutzerfreundlichste Schnittstelle zu bieten und die Verwendung einer Kette mehrerer Packer auf einer einzelnen Binärdatei zu ermöglichen.
Das ist richtig - wir können ProtectMyTooling mit mehreren Packern gleichzeitig starten:```
C:> py ProtectMyTooling.py hyperion,upx mimikatz.exe mimikatz-obf.exe
Das obige Beispiel übergibt zunächst `mimikatz.exe` an Hyperion zur Verschleierung, und dann wird das Ergebnis an UPX zur Komprimierung übergeben. Ergebnis: `UPX(Hyperion(file))`
## Funktionen
- Unterstützt mehrere verschiedene PE-Packer, .NET-Obfuskatoren, Shellcode-Lader/Builder
- Ermöglicht das Verketten von Packern, bei dem die Ausgabe eines Packers an den nächsten weitergegeben wird: `callobf,hyperion,upx` erzeugt das Artefakt `UPX(Hyperion(CallObf(file)))`
- Sammelt IOCs bei jedem Verschleierungsschritt, sodass Auditing & Anforderungen des Blue Teams erfüllt werden können
- Bietet die Möglichkeit, benutzerdefinierte Wasserzeichen in resultierende PE-Artefakte einzufügen – im DOS-Stub, in der Prüfsumme, als eigenständiger PE-Abschnitt, im Overlay der Datei
- Enthält ein praktisches Cobalt-Strike-Aggressor-Skript, das die Befehle `protected-upload` und `protected-execute-assembly` bereitstellt
- Einfache Befehlszeilennutzung
## Installation
**Dieses Tool wurde für die Verwendung unter Windows entwickelt, da die meisten Packer nativ auf diese Plattform abzielen.**
Einige Funktionen können jedoch auch unter Linux einwandfrei funktionieren; dennoch wird dieser Support nicht umfassend getestet. Bitte melden Sie Fehler und Probleme.
1. **Deaktivieren Sie zunächst Ihr Antivirenprogramm** und fügen Sie das Verzeichnis `contrib` zu den Ausschlüssen hinzu. Dieses Verzeichnis enthält Obfuskatoren und Schutzprogramme, die vom Antivirenprogramm erkannt und entfernt werden.
2. Klonen Sie dann dieses Repository.```
PS C:\> git clone --recurse https://github.com/Binary-Offensive/ProtectMyTooling
Windows``` PS C:\ProtectMyTooling> .\install.ps1
**Linux**```
bash# ./install.sh
Damit das ScareCrow Packer unter Windows 10 ausgeführt werden kann, muss WSL installiert und bash.exe (in %PATH%) verfügbar sein.
Dann muss in WSL golang in mindestens Version 1.16 installiert sein:```
cmd> bash
bash$ sudo apt update ; sudo apt upgrade -y ; sudo apt install golang=2:1.18~3 -y
## Konfiguration
Um unterstützte Obfuskierer einzubinden, Standardoptionen zu ändern oder **ProtectMyTooling** auf den Pfad Ihrer Obfuskierer-ausführbaren Datei zu verweisen, müssen Sie die Konfigurationsdatei `config\ProtectMyTooling.yaml` anpassen.
Es gibt auch die Datei `config\sample-full-config.yaml`, die alle verfügbaren Optionen für alle unterstützten Packer enthält und als Referenz dient.
## Freundlicher Hinweis
- Wenn Ihr erzeugtes Binary abstürzt oder nicht wie erwartet läuft, versuchen Sie es mit einer anderen Packer-Kette.
- Packer garantieren keine Stabilität der erzeugten Binaries, daher kann ProtectMyTooling dies auch nicht.
- Verkettung: Achten Sie sorgfältig darauf, dass die Ausgabe- und Eingabe-Payload-Formate den Erwartungen des jeweils nächsten Packers entsprechen.
---
## Verwendung
Vor der ersten Verwendung von `ProtectMyTooling` ist es wichtig, die YAML-Konfigurationsdatei `ProtectMyTooling.yaml` des Programms anzupassen. Die Reihenfolge der Parameterverarbeitung ist wie folgt:
- Zuerst werden Standardparameter verwendet
- Dann werden sie durch Werte aus der YAML-Datei überschrieben
- Schließlich überschreibt alles, was in der Befehlszeile angegeben wird, die entsprechenden Werte
Dort müssen die Pfade und Optionen der unterstützten Packer festgelegt werden, um sie zu aktivieren.
### Szenario 1: Einfache ConfuserEx-Obfuskierung
Die Verwendung ist sehr einfach: Es reicht, den Namen des zu wählenden Obfuskierers sowie die Pfade der Eingabe- und Ausgabedateien zu übergeben:```
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%
Man kann die Datei auch verschleiern und sofort versuchen, sie zu starten (auch mit bereitgestellten optionalen Parametern), um sicherzustellen, dass sie mit den Optionen -r --cmdline CMDLINE ordnungsgemäß funktioniert:```
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!
### Szenario 3: Komplexe Malware-Verschleierung mit Wasserzeichen und IOCs-Sammlung
Der folgende Anwendungsfall nimmt `beacon.exe` als Eingabe und führt es nacheinander durch die Packer `CallObf` -> `UPX` -> `Hyperion`.