
Go-Shellcode-Loader, der mehrere Umgehungstechniken kombiniert.
Hades ist ein Proof-of-Concept-Lader, der verschiedene Umgehungstechniken kombiniert, um die von modernen AV/EDRs üblicherweise verwendeten Verteidigungsmechanismen zu umgehen.
Der einfachste Weg ist wahrscheinlich, das Projekt unter Linux mit make zu bauen.
git clone https://github.com/f1zm0/hades && cd hades
make
Dann kannst du die ausführbare Datei auf einen x64-Windows-Host übertragen und mit .\hades.exe [Optionen] ausführen.
PS > .\hades.exe -h
'||' '||' | '||''|. '||''''| .|'''.|
|| || ||| || || || . ||.. '
||''''|| | || || || ||''| ''|||.
|| || .''''|. || || || . '||
.||. .||. .|. .||. .||...|' .||.....| |'....|'
version: dev [11/01/23] :: @f1zm0
Usage:
hades -f <filepath> [-t selfthread|remotethread|queueuserapc]
Options:
-f, --file <str> shellcode file path (.bin)
-t, --technique <str> injection technique [selfthread, remotethread, queueuserapc]
Shellcode injizieren, der calc.exe mit der queueuserapc-Technik startet:
.\hades.exe -f calc.bin -t queueuserapc
Umgehung von User-Mode-Hooks mit Syscall-RVA-Sortierung (NtQueueApcThread mit frida-trace und benutzerdefiniertem Handler gehooked)

Umgehung von Instrumentierungs-Callbacks mit indirekten Syscalls (die injizierte DLL stammt von syscall-detect von jackullrich)

In der neuesten Version wurden die Fähigkeiten für direkte Syscalls durch indirekte Syscalls von acheron ersetzt. Falls du aus irgendeinem Grund die vorherige Version des Loaders verwenden möchtest, die direkte Syscalls verwendet hat, musst du explizit das Tag direct_syscalls an den Compiler übergeben, der dann ermittelt, welche Dateien in den Build ein- und ausgeschlossen werden müssen.
GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -tags='direct_syscalls' -o dist/hades_directsys.exe cmd/hades/main.go
Warnung
Dieses Projekt wurde nur zu Bildungszwecken erstellt, um mit Malware-Entwicklung in Go zu experimentieren und mehr über das unsafe-Paket und die seltsame Go-Assembly-Syntax zu lernen. Verwende es nicht auf Systemen, die dir nicht gehören. Der Entwickler dieses Projekts übernimmt keine Verantwortung für Schäden, die durch unsachgemäße Verwendung dieses Tools entstehen.
Ein Dank an die folgenden Personen, die ihr Wissen und ihren Code geteilt haben, die dieses Tool inspiriert haben:
Dieses Projekt ist unter der GPLv3-Lizenz lizenziert – siehe die Datei LICENSE für Details.