修补DoublePulsar支持攻击Windows Embedded系统

愣娃 技术 2018年6月30日发布
Favorite收藏

导语:MS17-010漏洞模块的作者可能忘记了对Windows Embedded操作系统的支持,本文将讲述如何修补DoublePulsar以支持攻击Windows Embedded系统。

在我的一次渗透测试中,我发现了一些受MS17-010漏洞影响的Windows设备。其中一个设备引起了我的注意,因为以前我从未遇到过Windows Embedded操作系统。

1.png

由于存在MS17-010漏洞,我尝试了相关的Metasploit模块。但是他们都无法工作,并返回一个错误,说明目标操作系统不支持。

2.png

即使是最新的MS17-010利用模块(exploit / windows / smb / ms17_010_psexec)也不起作用。

3.png

这比较奇怪。也许无国界医生的辅助模块是误报。或者,漏洞模块的作者可能忘记了对Windows Embedded操作系统的支持。

4.png

为了验证目标是否真的易受攻击,我决定使用MS17-010的原始漏洞利用框架Fuzzbunch。所以我启动了Fuzzbunch,然后使用了SMBTouch。结果表明,目标实际上是存在MS17-010漏洞。

5.png

然后我使用了EternalBlue模块,并且漏洞利用成功,后门成功安装在目标上。所以我猜想MSF漏洞模块的作者忘记添加对Windows Embedded系统的支持。

6.png

由于后门已经安装完毕,为了获得一个shell,需要做的最后一件事就是使用DoublePulsar注入dll。首先,我生成一个dll文件。

7.png

然后我使用DoublePulsar将生成的DLL注入到目标主机。但是,它的错误消息是失败[-] ERROR unrecognized OS string。我想是因为MSF模块不支持Windows Embedded版本。

8.png

在渗透测试结束之前还有几个小时,我决定深入挖掘DoublePulsar。首先,我尝试使用DoublePulsar时搜索了我收到的错误消息。这个字符串在上面的.text部分找到0x0040376C。

9.png

为了更好地理解DoublePulsar如何结束该错误消息,我决定使用IDA的图形视图来跟踪程序的流程。

11.png

从图形视图中可以看出,如果目标机器正在运行Windows 7,它将采用左侧路径,然后继续检测其架构是x86还是x64。如果目标不是Windows 7,它将采用正确的路径并执行其他操作系统检查。由于没有检查Windows Embedded,程序最终输出错误消息[-] ERROR unrecognized OS string。

22.png

通过进一步分析——Windows 7操作系统检查,我观察到我可以通过修改指令来“强制”程序走左边的路径。jz short loc_403641jnz short loc_403641

33.png

为此,我去了Edit> Patch program> Change byte。

44.png

然后我将值74(JZ的操作码)更改为75(JNZ的操作码)。

55.png

这是修改跳转指令后的样子。

66.png

然后我通过File> Produce file> Create DIF file …创建了一个DIF文件。

77.png

然后使用@ stalkr_的脚本(https://stalkr.net/files/ida/idadif.py)来修补修改后的exe文件。

88.png

然后将修改后的Doublepulsar-1.3.1.exe移回原始位置。

99.png

使用修改的DoublePulsar,我能够将生成的DLL有效载荷注入到目标主机。

111.png

并获得了一个SYSTEM权限shell。

222.png

本文翻译自:https://capt-meelo.github.io/pentest/2018/06/26/patching-doublepulsar.html如若转载,请注明原文地址: http://www.4hou.com/technology/12265.html
点赞 5
  • 分享至
取消

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

扫码支持

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

发表评论