ShadowDumper 简介

Shadow Dumper 是一款功能强大的工具,用于转储 LSASS(本地安全机构子系统服务)内存,渗透测试和红队活动经常需要用到。它为用户提供灵活的选项,并使用多种高级技术转储内存,允许访问 LSASS 内存中的敏感数据。

警告

值得注意的是,该项目仅用于教育和研究目的,任何未经授权的使用都可能导致法律后果。

功能

  • 解除挂钩注入(修改后的 Mimikatz 二进制文件) ——利用解除挂钩来注入修改后的 Mimikatz 二进制文件,绕过 EDR 挂钩并逃避检测。

  • 解除挂钩注入(使用 MDWD 的直接系统调用) ——使用 MDWD 实现直接系统调用以进行隐身注入,减少留下的痕迹。

  • 简单的 MiniDumpWriteDump API – 执行简单的 MiniDumpWriteDump API 方法进行标准 LSASS 内存提取。

  • MINIDUMP_CALLBACK_INFORMATION 回调– 使用回调函数进行自定义处理,从而可以更好地控制转储过程。

  • 进程分叉技术——分叉 LSASS 进程,创建内存克隆并避免直接访问目标进程。

  • 使用 MiniDumpWriteDump 进行直接系统调用– 将直接系统调用与 MiniDumpWriteDump 相结合,通过避免典型的 API 挂钩来增强隐身性。

  • 具有直接系统调用的本机转储(离线解析) – 利用直接系统调用创建具有离线解析基本流的本机转储,非常适合低噪音操作。

构建

  • 克隆 ShadowDumper 存储库

  • 在 Visual Studio 2019 (v142) 中打开

  • C++ 语言标准 ISO C++14 标准或更高版本

  • 从[Resource Shellcodes]文件夹下载shellcodes pan.bin 和 off.bin,将它们放在计算机的某个位置,并在编译之前更改ShadowDumper.rc文件中的路径。

  • 确保选择了 MASM。[在解决方案资源管理器中右键单击您的项目,单击“构建依赖项”,单击“构建自定义”,然后选择 .masm]

  • 右键单击 ASM 文件并转到属性,并确保项目类型应为 Microsoft Macro Assembler

  • 编译项目

提示

V1.0 兼容性:Windows(x64)[使用 x64 版本测试] 在 Windows 10 版本 22H2(操作系统版本 19045.5073)上,主要版本为 10.0 [您可能会在某些方法中遇到最新版本的问题,这可能是由于 mimikatz 的版本造成的]

使用方法

要运行 ShadowDumper,请从 powershell (管理员身份运行)执行已编译的二进制文件。

默认模式

  • 未提供参数:显示用户友好的控制台,其中包含多个可执行选项

命令行模式

  • 参数:-h:显示包含所有可用选项的帮助菜单。

  ShadowDumper.exe
    - 参数: 1: 使用取消钩挂技术注入修改后的 mimikatz 二进制文件来转储 lsass 内存。

ShadowDumper.exe
    - 参数: 2: 使用取消钩挂技术,通过直接系统调用(MDWD)注入二进制文件来转储 lsass 内存。

ShadowDumper.exe
    - 参数: 3: 使用简单的 MiniDumpWriteDump API 转储 lsass 内存。

ShadowDumper.exe
    - 参数: 4: 使用 MINIDUMP_CALLBACK_INFORMATION 回调来转储 lsass 内存。

ShadowDumper.exe
    - 参数: 5: 使用进程分叉技术来转储 lsass 内存。

ShadowDumper.exe
    - 参数: 6: 使用直接系统调用和 MiniDumpWriteDump 来转储 lsass 内存。

ShadowDumper.exe
    - 参数: 7: 使用直接系统调用(本地转储,包含离线解析所需的流)来转储 lsass 内存。

演示

演示 ShadowDumper 的工作原理。

导出的内存文件位置

C:\Users\Public

直链下载地址

https://lp.lmboke.com/ShadowDumper.exe

项目地址

GitHub:https://github.com/Offensive-Panda/ShadowDumper

免责声明

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本平台和发布者不为此承担任何责任。