
Cargador de Shellcode mediante Syscall (Trabajo en Progreso)
Shhhloader es un cargador de shellcode en desarrollo. Toma shellcode sin procesar como entrada y compila un stub en C++ que realiza varias cosas para intentar evadir AV/EDR. El constructor Python incluido funcionará en cualquier sistema Linux que tenga Mingw-w64 instalado.
Edición 25/1/24: Shhhloader ahora es compatible con la variante 7 de PoolParty! También se agregó una opción que combinará PoolParty con Module Stomping para evitar que el shellcode ejecutado resida en memoria no respaldada. Vea a continuación un video que demuestra este nuevo método de inyección contra Defender ATP:
┳┻|
┻┳|
┳┻|
┻┳|
┳┻| _
┻┳| •.•) - Shhhhh, AV might hear us!
┳┻|⊂ノ
┻┳|
usage: Shhhloader.py [-h] [-p explorer.exe] [-m QueueUserAPC] [-u] [-w] [-nr] [-ns] [-l] [-v] [-sc GetSyscallStub] [-d] [-dp apphelp.dll] [-s domain]
[-sa testlab.local] [-o a.exe] [-pp explorer.exe] [-ppv] [-np] [-cp] [-td ntdll.dll] [-ef NtClose]
file
ICYGUIDER'S CUSTOM SYSCALL SHELLCODE LOADER
positional arguments:
file File containing raw shellcode
options:
-h, --help show this help message and exit
-p explorer.exe, --process explorer.exe
Process to inject into (Default: explorer.exe)
-m QueueUserAPC, --method QueueUserAPC
Method for shellcode execution (Options: PoolPartyModuleStomping, PoolParty, ThreadlessInject, ModuleStomping, QueueUserAPC,
ProcessHollow, EnumDisplayMonitors, RemoteThreadContext, RemoteThreadSuspended, CurrentThread) (Default: QueueUserAPC)
-u, --unhook Unhook NTDLL in current process
-w, --word-encode Save shellcode in stub as array of English words
-nr, --no-randomize Disable syscall name randomization
-ns, --no-sandbox Disable sandbox checks
-l, --llvm-obfuscator
Use Obfuscator-LLVM to compile stub
-v, --verbose Enable debugging messages upon execution
-sc GetSyscallStub, --syscall GetSyscallStub
Syscall execution method (Options: SysWhispers2, SysWhispers3, GetSyscallStub, None) (Default: GetSyscallStub)
-d, --dll Generate a DLL instead of EXE
-dp apphelp.dll, --dll-proxy apphelp.dll
Create Proxy DLL using supplied legitimate DLL (File must exist in current dir)
-s domain, --sandbox domain
Sandbox evasion technique (Options: sleep, domain, hostname, username, dll) (Default: sleep)
-sa testlab.local, --sandbox-arg testlab.local
Argument for sandbox evasion technique (Ex: WIN10CO-DESKTOP, testlab.local)
-o a.exe, --outfile a.exe
Name of compiled file
PPID Spoofing:
-pp explorer.exe, --ppid explorer.exe
Parent process to use for PPID Spoofing (Default: explorer.exe)
-ppv, --ppid-priv Enable spoofing for privileged parent process (Disabled by default)
-np, --no-ppid-spoof Disable PPID spoofing
ThreadlessInject:
-cp, --create-process
Create process instead of injecting into existing one
-td ntdll.dll, --target-dll ntdll.dll
Target DLL containing export function to overwrite
-ef NtClose, --export-function NtClose
Export function to overwrite
Características:
Vea a continuación un video PoC del método ThreadlessInject utilizado para inyectar un beacon de Havoc en IE sin generar alertas y con eventos mínimos en Microsoft Defender for Endpoint (MDE) EDR (Grabado el 3/4/2023):
Vea el siguiente video que demuestra la técnica de inyección Module Stomping ejecutada mediante DLL Proxying (Grabado el 9/8/2022):
Shhhloader también se ha integrado en el framework Havoc C2 mediante un módulo de @jakobfriedl. Vea a continuación un video que demuestra el módulo:
Problemas conocidos/Notas:
-p para proporcionar el nombre de un proceso que sepa o sospeche que ya se está ejecutando en el sistema objetivo.Actualizaciones planificadas: