-
-
[原创]CVE-2015-1641拼凑笔记
-
发表于: 2020-5-31 11:53 7131
-
想起PatchworkAPT很有特色,该组织武器库都是来自于开源平台(包括黑市场),披露时候命名为拼凑物。历史数据来看,他们也挺擅长玩office_cve_exp。
有足够的时间当大自然的搬运工,Patchwork寓意同样适用于该文章。
EXP:
a69f778d1f511268019b1080f5e3b98b
APT28:
已上传论坛附件
Windowsx32
Office: cn_office_professional_2007_cd_X12-42319
msdn我告诉你-可以下载
利用rtfobj.py(github下载oeltools工具),查看Poc数据:
rtfobj.py -s [id] Poc.docx提取上述id=2文档,文档会触发漏洞:
windbg附加WINWORD.exe,word打开提取的id=2_docx,虚拟机运行测试是否崩溃,如下所示:
触发wwlib!DllGetClassObject+0x50e6-位置没问题,[ecx]内存地址没问题,拷贝wwlib.dll到本机,IDA打开定位:
IDA定位崩溃地址,如下所示:
从ida来看,[ecx]变量引发的异常,mov ecx,[eax],所以是二级指针。windbg触发崩溃之前栈情况,上一层是DLLCanUnLoadNow+偏移,IDA来上面回溯的两层,因为不熟悉整WORD标签解析处理,看了也没太明白......,梳理不出来前因后果:
漏洞引发根本原因是类型混乱,smartTag 标签引起的,这里引用图片如下:
来源:https://paper.seebug.org/351/#2
类型混乱那就是A类型当作类同的B类型解析,解析错误自然就会非法访问。结合poc指针中保存了0x7c38bd50,这本该是有效对象,至于加载标签的流程也没有研究过,不过善于百度/谷歌,引用如下:
来源:https://www.anquanke.com/post/id/171343
按照上述说法粗略理解WORD在解析文档过程中,没有验证customXML对象,所以可以传入类似对象smarTag。虽然明白字面咋回事,但不算理解最好借助代码熟悉结构和解析XML过程(可以参考msdn),很多的好的资料可以参考。
来源:https://bbs.pediy.com/thread-134518.htm
话说2007格式比2003简单一些,有xml数据存储。将样本提取id=2_Poc后缀改成.Zip,解压后word目录下会有document.xml,打开文件查询类型混淆地址,如下所示:
w:smartTag.w:element解析出错,虽然loudy代码中未解析该标签,但是学习了一些结构体很有帮助。半熟半懂等于没懂,不过根据IDA先在脑海中脑补一下就好了。
最好把可以执行exp单步跟踪两回以上,认真的观察略加思考,用不了太长时间。
手动提取rtf百度教程很多,这里引用文章-如何手动提取,如下所示:
参考:https://www.jianshu.com/p/f0be451c93ea
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
- Windows驱动编程之NDIS(VPN) 18122
- [讨论] 有关Windows 13060
- [分享]Windows驱动开发初学者注意事项 15903
- Windows驱动编程之NetFilter SDK 34507
- Windows驱动编程之WFP/TDI 31920