
Loader de hollowing de processos baseado em Nim para executáveis PE com métodos de injeção configuráveis, chamadas de sistema diretas/indiretas, anti-debug, criptografia de payload e injeção dividida entre múltiplos processos.
--== Loader de hollowing de processos escrito em Nim apenas para PEs ==--
Construí o PichichiH0ll0wer para aprender e contribuir, claro, mas também porque estou bastante cansado de shellcodes por toda parte. Carregar PEs pode ser menos evasivo, eu sei, mas ainda é eficiente e mais conveniente do que lutar para transformar seu payload PE em um shellcode toda vez (o que nem sempre funciona bem). Além disso, o PichichiH0ll0wer possui algumas características para proteger seu payload. Suporta apenas EXEs x64.

Exemplo de hollowing dividido de cscript.exe com cmd.exe que spawna whoami.exe:

Construído com Nim 1.6.12, deve ser executado apenas no Windows.
nimble install winim ptr_math nimprotect supersnappy argparse
Usage:
[options] exe_file injection_method
Arguments:
exe_file Arquivo EXE a carregar
injection_method Método de injeção
1 - Hollowing simples
2 - Hollowing com syscalls diretas
3 - Hollowing com syscalls indiretas
4 - Hollowing dividido usando múltiplos processos
5 - Hollowing dividido usando múltiplos processos e syscalls diretas
6 - Hollowing dividido usando múltiplos processos e syscalls indiretas
Options:
-h, --help
-s, --sponsor=SPONSOR Caminho do sponsor para hollow (padrão: self hollowing)
-a, --args=ARGS Argumentos de linha de comando para acrescentar ao processo hollowed
-f, --format=FORMAT Formato do hollower de PE Valores possíveis: [exe, dll] (padrão: exe)
-e, --export=EXPORT Nome da exportação da DLL (relevante apenas para formato Dll) (padrão: DllRegisterServer)
-b, --block Bloquear DLLs da Microsoft não assinadas no processo hollowed
-p, --split Dividir e ocultar o blob do payload no hollower (demora muito para compilar!)
-t, --sleep=SLEEP Número de segundos para dormir antes do hollowing (padrão: 0)
-g, --anti-debug=ANTI_DEBUG
Ação a ser executada ao detectar depurador Valores possíveis: [none, die, troll] (padrão: none)
-k, --key=KEY Chave RC4 para [en/de]criptografar o payload (fornecida como argumento de linha de comando para o hollower)
-v, --veh O hollow ocorrerá dentro do VEH
-d, --debug Compilar como debug em vez de release (loader é verboso)
Além disso, veja os exemplos.