Hades | 结合多种规避技术的 Go Shellcode 加载器插图

Hades是一个概念验证加载器,它结合了多种规避技术,旨在绕过现代 AV/EDR 常用的防御机制。

用法

最简单的方法,可能是在 Linux 上使用make.

git clone https://github.com/f1zm0/hades && cd hades
make

然后您可以将可执行文件带到 x64 Windows 主机并使用.\hades.exe [options].

PS > .\hades.exe -h'||' '||' | '||''|. '||''''| .|'''.|
|| || ||| || || || . ||.. '
||''''|| | || || || ||''| ''|||.
|| || .''''|. || || || . '||
.||. .||. .|. .||. .||...|' .||.....| |'....|'version: dev [11/01/23] :: @f1zm0Usage:
hades -f <filepath> [-t selfthread|remotethread|queueuserapc]Options:
-f, --file <str> shellcode file path (.bin)
-t, --technique <str> injection technique [selfthread, remotethread, queueuserapc]

例子:

注入calc.exe使用queueuserapc技术生成的 shellcode

.\hades.exe -f calc.bin -t queueuserapc

展示

使用系统调用 RVA 排序绕过用户模式挂钩(NtQueueApcThread使用frida-trace自定义处理程序挂钩)

使用间接系统调用绕过检测回调注入的 DLL 来自jackullrich的syscall-detect补充笔记

直接系统调用版本

在最新版本中,直接系统调用功能已被acheron提供的间接系统调用所取代。如果出于某种原因你想使用以前使用直接系统调用的加载器版本,你需要显式地将标记传递direct_syscalls给编译器,编译器将确定哪些文件需要包含在构建中,哪些文件需要排除。

GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -tags='direct_syscalls' -o dist/hades_directsys.exe cmd/hades/main.go

免责声明

警告
创建此项目仅用于教育目的,用于在 Go 中试验恶意软件开发,并了解有关不安全和奇怪的Go 汇编语法的更多信息。不要在您不拥有的系统上使用它。本项目的开发者不对因不当使用本工具而造成的任何损害负责。