RustiveDump是一款基于NT系统调用的LSASS内存转储工具,该工具使用Rust开发,旨在帮助广大研究人员仅使用NT 系统调用转储lsass.exe进程的内存。
该工具能够创建最小的 minidump,其中包含SystemInfo、ModuleList和Memory64List等基本组件,使用 Rust 构建,无 std,独立于 C 运行时 (CRT)。它可以编译为 shellcode (PIC),并支持 XOR 加密和远程文件传输。
1、所有操作均采用 NT 系统调用:RustiveDump 绕过标准 API,并利用 NT 系统调用执行所有操作。
2、无Std和 CRT 独立:RustiveDump 使用 Rust 的特性构建no_std,消除了对 Rust 标准库的依赖,并且独立于 CRT 库,因此精简版本仅18KB。
3、位置独立代码 (PIC):RustiveDump 现在实现了 Rustic64 的设计,允许将其编译为shellcode (PIC),从而使其更加通用。
4、间接 NT 系统调用:该工具使用间接系统调用,通过Hell's Gate、Halo's Gate和Tartarus' Gate等技术检索系统服务编号 (SSN) 。
5、精益内存转储:RustiveDump 生成集中内存转储,仅包含必要数据(即SystemInfo、ModuleList和Memory64List),确保没有臃肿的文件,足以满足您的内存分析工具(如Mimikatz或Pypykatz)的需求。
6、XOR 加密:RustiveDump 可以在保存或传输转储文件之前使用 XOR 对其进行加密,为转储的内存添加额外的安全层。
7、远程文件传输:可以使用winsock API 调用,支持将转储文件直接发送到远程服务器。
8、调试模式:调试模式提供每个步骤的详细日志,可以在构建过程中启用。
Rust
Cargo
广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/safedv/RustiveDump.git
RustiveDump 通过Cargo Make提供了几个可配置的构建选项,以自定义工具的行为。您可以启用XOR 加密、远程文件传输和详细日志记录等功能。
可用功能:
xor:使用 XOR 加密来加密转储文件。
debug:为流程的每个步骤启用详细日志。
remote:通过 Winsock 将转储文件发送到远程服务器。
lsasrv:过滤内存转储以仅包含来自lsass.exe的lsasrv.dll模块。
要使用不同的功能组合构建 RustiveDump,请使用以下命令:
基本构建(本地保存转储,无附加功能):
cargo make
使用特定功能进行构建:
cargo make --env FEATURES=xor,remote,lsasrv,debug
构建为 Shellcode (PIC):
cargo make --env FEATURES=xor,remote pic
RustiveDump 生成一个极简的 minidump 文件,仅包含Mimikatz和Pypykatz等工具的基本组件。该文件由三个核心流组成:
1、SystemInfo Stream:操作系统版本和架构详情。
2、ModuleList Stream:列出lsass.exe中加载的模块。
3、Memory64List Stream :来自lsass.exe的内存区域。
本项目的开发与发布遵循MIT开源许可协议。
RustiveDump:
https://github.com/safedv/RustiveDump
https://github.com/libyal/libmdmp/blob/main/documentation/Minidump%20(MDMP)%20format.asciidoc https://github.com/ricardojoserf https://github.com/safedv/Rustic64