
Envoltório Multi-Packer que nos permite encadear vários packers, ofuscadores e outras armas voltadas para Red Team. Apresenta recursos de marca d'água de artefatos, coleta de IOCs e backdooring de PE. Você alimenta com seu implante, ele faz muitas coisas sorrateiras e produz um executável ofuscado.

A justificativa por trás do lançamento deste software foi descrita em uma postagem de blog complementar:
Script que envolve uma infinidade de packers, protectores, ofuscadores, carregadores de shellcode, codificadores, geradores para produzir implantes complexos e protegidos para Red Team. Seu companheiro perfeito no pipeline de desenvolvimento de malware CI/CD, ajudando a marcar seus artefatos, coletar IOCs, backdoor e mais.
ProtectMyToolingGUI.py

Com o ProtectMyTooling você pode ofuscar rapidamente seus binários sem precisar se preocupar em clicar em todos os Diálogos, interfaces, menus, criar projetos para ofuscar um único binário, clicar em todas as opções disponíveis e perder tempo com toda essa bobagem. Ele vai direto ao ponto - ofuscar sua ferramenta.
O objetivo é oferecer a interface mais conveniente possível e permitir aproveitar uma cadeia de vários packers combinados em um único binário.
Isso mesmo - podemos executar o ProtectMyTooling com vários packers de uma vez:```
C:> py ProtectMyTooling.py hyperion,upx mimikatz.exe mimikatz-obf.exe
O exemplo acima primeiramente passará `mimikatz.exe` para o Hyperion para ofuscação, e então o resultado será fornecido ao UPX para compressão. Resultando em `UPX(Hyperion(file))`
## Recursos
- Suporta múltiplos Packers PE diferentes, Ofuscadores .NET, Loaders/Builders de Shellcode
- Permite encadeamento de packers onde a saída de um packer é passada para o consecutivo: `callobf,hyperion,upx` produzirá o artefato `UPX(Hyperion(CallObf(file)))`
- Coleta IOCs em cada etapa de ofuscação para que solicitações de auditoria e Blue Team possam ser atendidas
- Oferece funcionalidade para injetar Watermarks personalizadas em artefatos PE resultantes - no DOS Stub, Checksum, como uma Seção PE independente, no Overlay do arquivo
- Vem com um script agressor do Cobalt Strike que traz comandos `protected-upload` e `protected-execute-assembly`
- Uso direto pela linha de comando
## Instalação
**Esta ferramenta foi projetada para funcionar no Windows, já que a maioria dos packers tem como alvo nativo essa plataforma.**
Algumas funcionalidades podem funcionar no Linux, no entanto, esse suporte não é totalmente testado, por favor reporte bugs e problemas.
1. Primeiro, **desabilite seu AV** e adicione o diretório `contrib` às exclusões. Esse diretório contém ofuscadores, protetores que serão sinalizados pelo AV e removidos.
2. Em seguida, clone este repositório```
PS C:\> git clone --recurse https://github.com/Binary-Offensive/ProtectMyTooling
Windows``` PS C:\ProtectMyTooling> .\install.ps1
**Linux**```
bash# ./install.sh
Para o packer ScareCrow funcionar no Windows 10, é necessário ter o WSL instalado e o bash.exe disponível (em %PATH%). Então, no WSL é preciso ter o golang instalado em versão pelo menos 1.16:```
cmd> bash
bash$ sudo apt update ; sudo apt upgrade -y ; sudo apt install golang=2:1.18~3 -y
## Configuração
Para conectar ofuscadores suportados, alterar opções padrão ou apontar **ProtectMyTooling** para o caminho do executável do seu ofuscador, você precisará ajustar o arquivo de configuração `config\ProtectMyTooling.yaml`.
Há também o arquivo `config\sample-full-config.yaml` contendo todas as opções disponíveis para todos os empacotadores suportados, servindo como ponto de referência.
## Lembrete amigável
- Se o binário produzido falhar ou não funcionar como esperado - tente usar uma cadeia diferente de empacotadores.
- Empacotadores não garantem a estabilidade dos binários produzidos, portanto, o ProtectMyTooling também não pode.
- Ao encadear, combine cuidadosamente os formatos de carga útil de saída->entrada de acordo com o que o empacotador consecutivo espera.
---
## Uso
Antes do primeiro uso do `ProtectMyTooling`, é essencial ajustar o arquivo de configuração YAML do programa `ProtectMyTooling.yaml`.
A ordem de processamento dos parâmetros é a seguinte:
- Primeiramente, os parâmetros padrão são usados
- Em seguida, eles são substituídos pelos valores provenientes do YAML
- Finalmente, o que for fornecido na linha de comando substituirá os valores correspondentes
Lá, os caminhos e opções dos empacotadores suportados devem ser configurados para habilitar.
### Cenário 1: Ofuscação simples com ConfuserEx
O uso é muito simples, basta passar o nome do ofuscador a escolher, os caminhos dos arquivos de entrada e saída:```
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%
Também é possível ofuscar o arquivo e tentar executá-lo imediatamente (também com parâmetros opcionais fornecidos) para garantir que funcione corretamente com as opções -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!
### Cenário 3: Ofuscação complexa de malware com marca d'água e coleta de IOCs
O caso de uso abaixo recebe `beacon.exe` como entrada e o alimenta consecutivamente nos empacotadores `CallObf` -> `UPX` -> `Hyperion`.
Em seguida, injetará a marca d'água `fooobar` especificada no DOS Stub do artefato de saída final gerado, bem como modificará a soma de verificação desse artefato com o valor `0xAABBCCDD`.