首页
社区
课程
招聘
[原创]结合一个野外样本构造一个cve-2016-7193弹计算器的利用
发表于: 2017-10-14 00:21 23666

[原创]结合一个野外样本构造一个cve-2016-7193弹计算器的利用

2017-10-14 00:21
23666

这篇文章是我在构造完cve-2015-1641 exp的基础上写的,但cve-2015-1641的分析文章比较多,所以这里先发cve-2016-7193的exp构造思路,1641的exp构造有空再补充。


基于样本:

本次构造需要注意以下几点:

构造 bypass_aslr简单,和cve-2015-1641一样即可:

触发漏洞也简单,直接挪过来漏洞触发控制字部分即可:

难点在于构造能布控内存弹出计算器的堆喷射样本,下面进行构造。


原始rtf样本里面涉及到Word.Document.12控制字的有两处,但其实第一处无实际价值,第二处经验证为堆喷射所需的docx


下面开始提取第二个Word.Document.12, rtfobj.py初始提取失败,检查后发现是因为有混淆:


把红框处的内容删除后即可,删除其余冗余部分,只保留堆喷射部分,再次提取如下:

定位到rop部分,可以看到原始样本用了512个pattern来进行内存布控,除了第一个外后面511个pattern完全一样:



看一下该 ActiveX87.bin 的布局:


我们的目的是替换里面的内容,使之弹出一个计算器。


调试的文件版本:


调试发现:



留给我们自己的shellcode的空间比cve-2015-1641小多了(如果读者调过1641的话),所以我们采用严格遵从原始文档字节分布构造,只替换红框和蓝框圈出的9B9B9B...开始的shellcode部分,这部分的大小为 346字节,如下:


这里要说明的一点是原作者为精确控制堆喷射内存大小为1fffc0,最后一个pattern和前面510个及第一个略有不同,最后一个pattern缺少10个字节,目的是为了按32对齐:




[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (29)
雪    币: 4230
活跃值: (1435)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
2
感谢分享!

这篇文章有说rtf混淆

Office堆喷性能上有提升方法吗,之前有照着下面这篇文章来弄,不过没效果
2017-10-14 10:28
0
雪    币: 355
活跃值: (276)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
3
不明觉厉,感谢分享
2017-10-14 12:24
0
雪    币: 9662
活跃值: (4588)
能力值: ( LV15,RANK:800 )
在线值:
发帖
回帖
粉丝
4
BDomne 感谢分享!这篇文章有说rtf混淆https://www.sophos.com/en-us/medialibrary/PDFs/technical-papers/CVE-2012-0158-An-Ana ...
我就是按照这篇文章的思路来的,把activeX文件里和引用文件里的clsid都换成不存在的COM控件(例如全为0)后,堆喷效率明显提升了,基本上几秒钟就可以
2017-10-14 18:52
0
雪    币: 6818
活跃值: (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不错!
2017-10-14 21:30
0
雪    币: 206
活跃值: (108)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
涨知识了
2017-10-16 10:15
0
雪    币: 1101
活跃值: (158)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
7
请教一下  怎么手动替换rtf文档中嵌入的docx文档?我发下如果只替换16进制编码的docx文档的内容,rtf依然显示原docx文档的预览图片
2017-10-31 21:58
0
雪    币: 9662
活跃值: (4588)
能力值: ( LV15,RANK:800 )
在线值:
发帖
回帖
粉丝
8
QuietBar 请教一下 怎么手动替换rtf文档中嵌入的docx文档?我发下如果只替换16进制编码的docx文档的内容,rtf依然显示原docx文档的预览图片
你把  {\object\objemb\objsetsize\objw1538\objh1113{\*\objclass  Word.Document.12}{\*\objdata  ...}之间的数据替换掉,就相当于把一个嵌入的ole对象替换掉了,这个时候不可能还会显示之前的图片,除非这张图片嵌入在另一个ole对象中。你可以先新建一个空白rtf文档,然后往里面拖一个doc文档进去,保存后用文本编辑器比对一下多了哪些字节,这个时候你会很清楚插入一个doc文档会在原rtf样本中增加哪些数据。动手做一遍,贵在实践~~
2017-10-31 22:14
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
你好  样本哪里有啊  能否分享下
2017-11-8 15:53
0
雪    币: 4230
活跃值: (1435)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
10
simiden 你好 样本哪里有啊 能否分享下
发篇精华就能找到了
2017-11-8 17:16
0
雪    币: 984
活跃值: (104)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
能否研究一下脚本怎么写
2018-7-31 18:07
0
雪    币: 9662
活跃值: (4588)
能力值: ( LV15,RANK:800 )
在线值:
发帖
回帖
粉丝
12
https://www.anquanke.com/post/id/87122 参考这篇的利用编写部分
2018-8-1 23:18
0
雪    币: 9662
活跃值: (4588)
能力值: ( LV15,RANK:800 )
在线值:
发帖
回帖
粉丝
13
https://www.anquanke.com/post/id/87122 参考这篇的利用编写部分
2018-8-1 23:19
0
雪    币: 226
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
请教一下 我将原样本中提取出来的堆喷射的对象(doc)手动拖到一个空白的rtf文件中然后保存,用notepad++打开这个rtf文档,提取出{\object...}闭合的部分,将这个部分添加到一个新的rtf中,运行这个新rtf文件,并没有发生堆喷射,这是为啥啊,有哪位大神可以解答一下
2018-9-17 22:56
0
雪    币: 1327
活跃值: (64)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
学习了。大佬,能不能有空的时候开贴讲一下在野的flash 漏洞调试技巧之类的。多谢!!
2018-9-18 22:59
0
雪    币: 2170
活跃值: (2354)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
16
利用生成的axtiveX1.bin文件作为输入生成堆喷射docx文档  ,这个是怎样生成的,可以发一份脚本呢,楼主。我尝试着把这些文件夹重新打包回去,但是并没有思路,只是可以用python脚本,读取内容,怎么打包回去呢
2019-5-27 19:56
0
雪    币: 9662
活跃值: (4588)
能力值: ( LV15,RANK:800 )
在线值:
发帖
回帖
粉丝
17
与时尽现。 利用生成的axtiveX1.bin文件作为输入生成堆喷射docx文档 ,这个是怎样生成的,可以发一份脚本呢,楼主。我尝试着把这些文件夹重新打包回去,但是并没有思路,只是可以用python脚本,读取内 ...
ActiveX1.bin的构造可以参考:https://www.anquanke.com/post/id/87122 这篇的利用构造部分。将ActiveX1.bin打包回去可以用7z等压缩软件,GUI界面打开后直接替换对应文件就行。此外,这部分还可以参考HackingTeam的一些“开源代码”:https://github.com/hackedteam/vector-exploit/tree/master/ht-2013-002-Word
2019-5-31 19:18
0
雪    币: 300
活跃值: (2477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
mark
2019-6-2 20:33
0
雪    币: 5317
活跃值: (3323)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
19
银雁冰 ActiveX1.bin的构造可以参考:https://www.anquanke.com/post/id/87122 这篇的利用构造部分。将ActiveX1.bin打包回去可以用7z等压缩软件,GUI ...
请问为什么我用压缩软件打开.docx文件,然后再压缩回去用Word打开就会崩溃了呢?
2020-7-3 18:09
0
雪    币: 9662
活跃值: (4588)
能力值: ( LV15,RANK:800 )
在线值:
发帖
回帖
粉丝
20
苏啊树 请问为什么我用压缩软件打开.docx文件,然后再压缩回去用Word打开就会崩溃了呢?
1.你用压缩软件打开之前这个docx就会导致崩溃 2.你的操作意外地导致了了当前版本另一个word异常
2020-7-11 10:02
0
雪    币: 5317
活跃值: (3323)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
21
用什么解压软件可以解压得到 ActiveX87.bin
2020-11-2 19:28
0
雪    币: 5317
活跃值: (3323)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
22
rop使用的0x7C376FC3是什么模块的跳板地址地址,为什么我的环境没有这个模块,我用的是Windows XP SP3+Word2007
2020-11-2 19:56
0
雪    币: 9662
活跃值: (4588)
能力值: ( LV15,RANK:800 )
在线值:
发帖
回帖
粉丝
23
苏啊树 用什么解压软件可以解压得到 ActiveX87.bin
7z
2020-11-5 11:00
0
雪    币: 9662
活跃值: (4588)
能力值: ( LV15,RANK:800 )
在线值:
发帖
回帖
粉丝
24
苏啊树 rop使用的0x7C376FC3是什么模块的跳板地址地址,为什么我的环境没有这个模块,我用的是Windows XP SP3+Word2007
Windows 7 sp1 x86 + office 2007, MSVCR71模块
2020-11-5 11:01
0
雪    币: 5317
活跃值: (3323)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
25
请问提取出{\object...}闭合的部分,接着放在新的文件中的哪里。。。
2020-11-13 13:05
0
游客
登录 | 注册 方可回帖
返回
//