Malefic¶
malefic 是目前IoM提供的默认implant.
项目地址: https://github.com/chainreactors/malefic
架构¶
rust的crate的结构就是malefic的组成部分
主体结构:
- malefic, 主程序, 包含了beacon/bind两种模式的完整功能
- malefic-mutant, 用来实现自动化配置malefic的各种条件编译与特性, 以及生成shellcode, srdi等
- malefic-pulse, 最小化的shellcode模板, 对应CS的artifact, 能编译出只有4kb的上线马, 非常适合被各种loader加载
- malefic-prelude, 多段上线的中间阶段, 可以在这里按需配置权限维持, 反沙箱, 反调试等功能
- malefic-srdi, 最先进的srdi技术, 最大程度减少PE特征
- malefic-starship (Pro), 模块化shellcode加载框架, 支持60+执行技术、12种编码方案、8种运行时规避模块
- malefic-reactor, 独立runtime DLL, 通过C ABI提供模块加载与执行能力 (headless malefic)
- malefic-3rd, 第三方模块集合, 提供rem、curl等扩展模块
- malefic-proxydll, 代理DLL生成器, 支持DLL劫持与代理转发
- malefic-crates/*, 当前真实的基础设施层, 包含 module/manager/stub/transport/scheduler 等 workspace crate
基础库 (malefic-crates/):
malefic-crates 下包含了22个子crate, 构成了malefic的基础设施层:
| crate | 说明 |
|---|---|
malefic-module |
模块trait定义与基础接口 |
malefic-proto |
协议库, 定义了implant与server数据交互的协议 |
malefic-crypto |
加密库 (AES, ChaCha20, XOR) |
malefic-transport |
传输协议 (TCP, HTTP, REM, TLS) |
malefic-config |
配置管理 |
malefic-scheduler |
任务调度 |
malefic-dga |
域名生成算法 |
malefic-cron |
Cron表达式解析 |
malefic-codec |
编解码 (Base64/45/58, AES2, DES, UUID, MAC, IPv4) |
malefic-obfuscate (Pro) |
编译期混淆运行时 |
malefic-macro (Pro) |
过程宏引擎 |
malefic-evader (Pro) |
规避技术 (anti-emu, etw_pass, cfg_patch, sleep_encrypt等) |
malefic-guardrail |
环境检测护栏 |
malefic-loader |
进程注入/shellcode加载 |
malefic-process |
进程操作 (跨平台) |
malefic-net |
网络工具 |
malefic-sysinfo |
系统信息采集 |
malefic-autorun |
自动运行 |
malefic-common |
通用工具 |
malefic-manager |
模块管理 (addon/hot-load) |
malefic-runtime |
跨版本模块运行时 (C ABI + protobuf), 可编译为独立 DLL |
malefic-rem |
REM协议 |
malefic-win |
Windows OS特定功能 |
功能模块:
- malefic-modules, 各种模块的具体实现, 覆盖文件系统、进程管理、网络操作、执行引擎等功能
- malefic-crates/stub, 默认组合根与 stub 逻辑
- malefic-crates/manager, 模块注册表、热加载与查询接口
- malefic/src/session_loop.rs, beacon/bind 共享的模式驱动
kits (二进制开源):
- malefic-win-kit, 实现了loadpe, UDRL, SRDI, CLR, BOF执行, 堆栈混淆, BeaconGate等高级特性的OPSEC实现, 详见 win_kit文档
- 在professional版本中还会提供linux与mac的kit ......
IoM计划提供一整套互相解耦的implant解决方案, 实现各个阶段各种需求不同的二进制文件生成.
在已经实现的内容中还有更多的内容受限于精力没有文档化. 我们暂时编写了关于使用的简单介绍. 后续将随着开发进度逐步补全所有组件的设计与api文档.
文档导航¶
核心文档¶
| 文档 | 说明 |
|---|---|
| 架构设计 | 从 Starship 到 Malefic 的层层组装架构 |
| 编译与配置手册 | 编译环境、入口流程与各组件构建索引 |
开发文档¶
| 文档 | 说明 |
|---|---|
| Develop 入口 | FFI、模块系统与扩展开发索引 |
| FFI 接口 | Win-Kit 多语言调用接口(C/Go/Rust/Python/C#) |
| FFI Library | FFI 库接口与宿主集成 |
| 模块系统 | Module trait、内置模块与执行模型 |
| 第三方模块 | malefic-3rd 官方扩展模块 |
| 自定义模块开发 | malefic-3rd-template 多语言模块开发 |
入口 Crate 文档¶
| Crate | 文档 | 说明 |
|---|---|---|
| malefic | malefic.md | 主程序入口,beacon/bind 模式、运行时编排、命令分发 |
| malefic-mutant | mutant.md | 配置生成、编译构建与 implant.yaml |
| ↳ relink | Relink (Pro) | PE 后链接随机化(anti-YARA) |
| malefic-pulse | pulse.md | 轻量级 shellcode stager(~4KB) |
| malefic-prelude | prelude.md | 多段上线中间阶段加载器 |
| malefic-3rd | 3rd-party.md | 第三方模块(rem、curl、pty 等) |
| malefic-3rd-template | module-development.md | 多语言自定义模块开发模板(Rust/Go/C/Zig/Nim) |
| malefic-proxydll | proxydll.md | DLL 劫持框架 |
| malefic-modules | modules.md | 功能模块实现 |
| malefic-reactor | reactor.md | Headless runtime DLL, C ABI 模块加载与执行 |
| malefic-win-kit | win-kit.md | Windows 攻击性工具包 |
| malefic-starship (Pro) | Starship (Pro) | Shellcode 加载框架 |
高级主题¶
| 文档 | 说明 |
|---|---|
| Runtime FFI Host | Runtime DLL 编译与通讯协议(headless malefic) |
| 混淆技术 (Pro) | 源码级混淆与 OLLVM |
| 宏系统 (Pro) | 过程宏与编译期混淆 |
快速链接¶
- 架构总览 : architecture.md
- 构建入口 : build.md
- Build 文档 : build/index.md
- Mutant 工具 : mutant/index.md
- Malefic 构建 : build/malefic.md
- Pulse 构建 : build/pulse.md
- 模块构建 : build/modules.md