
一个完全用 Rust 编写的 Cobalt Strike 用户自定义反射加载器。我只是想看看构建这东西有多难。结果发现并不难。我可能会在某个时候添加睡眠混淆功能。目前,它只是一个没有任何特殊功能的基础加载器。唯一具有“操作安全”考量的功能是它从不在任何阶段使用 RWX 页面。
下载发布版并加载 .cna 文件。
你也可以自己编译。确保使用 MSVC 工具链和 release 配置。你可以使用附带的 extractor 来提取加载器的 .text 节。例如:
cd extractor
cargo run --release -- ../target/release/crabloader.exe ../bin/crabloader.bin
我使用了这个 profile 进行测试:https://github.com/BC-SECURITY/Malleable-C2-Profiles/blob/master/APT/apt1_virtuallythere.profile
它不包含更改内存指标的设置,只包含网络相关的内容。所以我猜测所有默认设置都可以正常工作。如果你使用 magic_mz_x64 更改 MZ 头,加载器将无法工作,因为它会搜索该头。