
Nim-basierter Process-Hollowing-Loader für PE-Executables mit konfigurierbaren Injektionsmethoden, direkten/indirekten Syscalls, Anti-Debug, Payload-Verschlüsselung und Aufteilung der Injektion auf mehrere Prozesse.
--== Prozess-Hollowing-Loader, geschrieben in Nim, nur für PEs ==--
Ich habe PichichiH0ll0wer gebaut, um zu lernen und beizutragen, klar, aber auch weil ich Shellcodes überall ziemlich leid bin. Das Laden von PEs mag weniger ausweichend sein, ich weiß, aber es ist immer noch effizient und bequemer, als jedes Mal darum zu kämpfen, dein PE-Payload in einen Shellcode zu verwandeln (was nicht immer reibungslos funktioniert). Außerdem hat PichichiH0ll0wer einige Funktionen, um dein Payload zu schützen. Unterstützt nur x64 EXEs.

Beispiel für Split-Hollowing von cscript.exe mit cmd.exe, das whoami.exe startet:

Erstellt mit Nim 1.6.12, sollte nur unter Windows ausgeführt werden.
nimble install winim ptr_math nimprotect supersnappy argparse
Usage:
[options] exe_file injection_method
Arguments:
exe_file Exe file to load
injection_method Injection method
1 - Simple hollowing
2 - Direct syscalls hollowing
3 - Indirect syscalls hollowing
4 - Split hollowing using multiple processes
5 - Split hollowing using multiple processes and direct syscalls
6 - Split hollowing using multiple processes and indirect syscalls
Options:
-h, --help
-s, --sponsor=SPONSOR Sponsor path to hollow (default: self hollowing)
-a, --args=ARGS Command line arguments to append to the hollowed process
-f, --format=FORMAT PE hollower format Possible values: [exe, dll] (default: exe)
-e, --export=EXPORT DLL export name (relevant only for Dll format) (default: DllRegisterServer)
-b, --block Block unsigned Microsoft Dlls in the hollowed process
-p, --split Split and hide the payload blob in hollower (takes long to compile!)
-t, --sleep=SLEEP Number of seconds to sleep before hollowing (default: 0)
-g, --anti-debug=ANTI_DEBUG
Action to perform upon debugger detection Possible values: [none, die, troll] (default: none)
-k, --key=KEY RC4 key to [en/de]crypt the payload (supplied as a command line argument to the hollower)
-v, --veh Hollow will occur within VEH
-d, --debug Compile as debug instead of release (loader is verbose)
Siehe auch die Beispiele.