使用Volatility检测DoublePulsar - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

使用Volatility检测DoublePulsar

愣娃 系统安全 2017-10-09 14:05:11
233383
收藏

导语:在过去的几个月里,有各种各样的攻击者使用FuzzBunch框架来破坏系统。在最近的一次事件中,我分析一个内存转储,花了一段时间来确定感叹载体是否是EternalBlue。

在过去的几个月里,有各种各样的攻击者使用FuzzBunch框架来破坏系统。在最近的一次事件中,我分析一个内存转储,花了一段时间来确定感叹载体是否是EternalBlue。一旦我发现ring 0 shellcode(与DoublePulsar相关),我能够更容易地接近分析。为了加快此过程的未来分析,我开发了一个虚拟插件,以便于找到这种植入物。

该插件不基于Yara规则。它只是从srv.sys驱动程序中转储函数数组SrvTransaction2DispatchTable,并检查它们是否指向二进制地址空间(请查看Zerosum0x0分析)。请注意,虽然插件转储整个表, 但实际上只需要验证SrvTransactionNotImplemented符号指向正确的位置。

这个插件通过从调试目录部分获取.pdb路径并从http://msdl.microsoft.com/download/symbols(或您使用SYMBOLS选项提供的服务器)下载SrvTransaction2DispatchTable来解析SrvTransaction2DispatchTable。一旦获得符号偏移量,它只会转储指针数组。如果SrvTransactionNotImplemented(条目14)指向“未知”位置,那么您可能正在处理DoublePulsar。这样的话,volshell和dis()会清除任何疑问。

让我们看一个例子。以下图片是被EternalBlue + DoublePulsar攻击的Windows 7 SP1 x64主机:

通过检查“UNKNOWN”位置的代码,我们可以验证我们正在处理DoublePulsar。注意操作码0x23(ping),0xc8(exec),0x77(kill)。

在以前的情况下,符号文件已从Microsoft下载。如果您的主机没有Internet连接,您可以通过PDB_FILE选项提供pdb文件。我通常使用Radare来获得这个。

要运行插件请确保有以下的依赖

· construct: (pip install construct==2.5.5-reupload)
· pdbparse: (pip install pdbparse)
· pefile: (pip install pefile)
· requests: (pip install requests)
· cabextract: (apt-get install cabextract)

动图展示

1503026534107160.gif

插件地址:
 https://github.com/BorjaMerino/DoublePulsar-Volatility
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2024 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务