NanoDump实战案例:5个真实场景下的LSASS转储技巧
【免费下载链接】nanodumpThe swiss army knife of LSASS dumping项目地址: https://gitcode.com/gh_mirrors/na/nanodump
NanoDump作为一款轻量级的LSASS转储工具,凭借其隐蔽性强、兼容性高的特点,成为安全研究与应急响应领域的重要工具。本文将通过5个真实场景案例,详细介绍NanoDump在不同环境下的实战应用技巧,帮助安全从业者快速掌握这款"LSASS转储瑞士军刀"的核心用法。
场景一:无文件落地的内存直接转储
在高度监控的终端环境中,传统的文件落地式LSASS转储很容易被EDR检测。NanoDump提供了直接在内存中处理转储数据的能力,通过source/nanodump.c中的核心逻辑实现无文件操作。
操作要点:
- 使用
-d参数指定内存直接处理模式 - 配合
-o参数设置输出管道或网络传输目标 - 代码实现参考nanodump.c中的
NanodumpMain函数
该方法特别适用于需要避免磁盘操作痕迹的高安全性环境,通过内存级别的数据处理有效绕过文件监控机制。
场景二:利用PPL保护绕过进行转储
Windows系统的PPL(Protected Process Light)机制会阻止普通进程访问受保护进程。NanoDump通过source/ppl/目录下的专用模块实现PPL保护绕过。
关键步骤:
- 加载
ppl_medic_client.c中的PPL交互模块 - 使用
-p参数启用PPL绕过功能 - 配合ppl_dump.c中的转储逻辑
此场景常见于对域控制器或高权限服务器的渗透测试,通过绕过系统级保护机制获取关键凭证数据。
场景三:基于异常处理的隐蔽转储
NanoDump创新性地利用Windows异常处理机制实现隐蔽的LSASS内存获取,相关实现位于source/werfault.c文件中。
实施方法:
- 通过
-w参数激活WerFault异常处理模式 - 配置werfault.h中的异常处理回调
- 利用系统错误报告机制完成内存数据提取
这种方法能够有效规避传统的进程注入检测,特别适合在具有严格行为监控的环境中使用。
场景四:令牌权限提升后的转储操作
在获取到基础权限后,NanoDump可以通过提升令牌权限实现对LSASS进程的访问。相关权限操作代码位于source/token_priv.c。
操作流程:
- 使用
-t参数指定令牌操作模式 - 调用
AdjustTokenPrivileges提升进程权限 - 执行转储命令
-D lsass.exe
此场景适用于已获得普通用户权限,但需要提升至调试权限才能进行LSASS访问的情况,是权限提升后常见的凭证获取手段。
场景五:通过命名管道进行远程转储
NanoDump支持通过命名管道将LSASS转储数据传输到远程控制端,相关实现位于source/pipe.c和include/pipe.h。
配置步骤:
- 在服务端使用
-l参数创建命名管道监听器 - 客户端通过
-c <pipe_name>连接到远程管道 - 设置
-s参数启用数据加密传输
该方法特别适合在需要将敏感数据实时传输到控制端的红队操作中,避免在目标系统留下数据痕迹。
编译与基础使用指南
NanoDump提供了多平台的编译支持,在项目根目录下可以找到以下编译配置文件:
- Makefile.clang:适用于Clang编译器
- Makefile.mingw:适用于MinGW环境
- Makefile.msvc:适用于MSVC编译器
基础使用命令:
# 克隆仓库 git clone https://gitcode.com/gh_mirrors/na/nanodump # 编译项目 make -f Makefile.mingw # 基本转储操作 nanodump.exe -D lsass.exe -o dump.bin总结与注意事项
NanoDump作为一款专业的LSASS转储工具,其设计理念充分考虑了实战环境中的各种复杂情况。通过灵活运用上述5个场景的技巧,安全从业者可以应对大多数Windows环境下的凭证获取需求。
使用过程中需注意:
- 不同场景需要配合相应的命令行参数
- 部分高级功能需要管理员权限才能正常使用
- 在企业环境中使用需遵守相关法律法规和授权要求
建议结合include/nanodump.h中的参数定义,深入理解各功能模块的实现原理,以便根据实际场景灵活调整使用策略。
【免费下载链接】nanodumpThe swiss army knife of LSASS dumping项目地址: https://gitcode.com/gh_mirrors/na/nanodump
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考