记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

Hacking Team Flash New 0Day 利用代码分析

2015-07-12 00:00

Hacking Team Flash New 0Day 利用代码分析


博文作者:riusksk

发布日期:2015-07-11

阅读次数:1024

博文内容:


周末大清早起来,就看到知道创宇在微博上说,Hacking Team又泄露新的Flash 0Day,在当前最新实测可用。于是笔者下载了一份利用代码,经测试确实在最新版上可利用,目前Adobe官方未发布补丁。此次泄露的0day并没有在泄露的工具库里面,而是在邮件附件中被发现的。



【利用代码分析】

1、这次的漏洞主要出现在AS3 "opaqueBackground” 属性上,它主要用于设置背景颜色。首先创建_ar Array数组,然后用vector.<uint>对象填充。




2、接着创建TextLine对象,然后设置它的opaqueBackground属性,再自定义valueOf函数,这个函数是触发漏洞的关键,跟前几个flash漏洞类似。



3、设置opaqueBackground属性,将_mc(MyClass类型)赋予opaqueBackground,由于数据类型不同,AVM会进行类型转换,此时自定义的valueOf2就会被调用。





4、调用recreateTextLine函数重建TextLine,导致原分配的TextLine对象内存被释放,但程序依然保留着对它的引用,所以漏洞也是个UAF漏洞。接着重新设置_ar[i].length的长度值(_vLen 大于原始长度值 ),会导致重新分配内存,从而占用已释放的内存,此时里面都是vector.<uint>对象。最后返回_vLen+8的值给_ar[_cnt].opaqueBackground,如果利用成功,它刚好会去篡改某个vector.<uint>对象的长度值为106。



5、找到被篡改了长度的vector对象,由于其长度值被更改,再用这个被改的vector去覆盖下一个vector长度为0x40000000,允许读取到更大内存空间的数据,从而获取需要调用的函数地址,绕过ASLR保护。根据不同的系统平台,选择不同的shellcode代码执行,这些跟前2个flash 漏洞的利用模板基本一致。



6、内存搜索的方式也是采用搜索“MZ”PE头这种暴力方式,再去解析PE文件格式,从导入表中的找到kernel32.dll库,再从其函数名列表里找到VirtualProtect函数,进而找到对应的函数地址进行调用。



7、看下ShellWin32.Exec函数,通过内存搜索找到VirtualProtect函数地址,将包含执行calc的shellcode设置为可执行权限,以此绕过DEP保护,并用指向shellcode的指针替换payload对应的JIT函数指针,当调用Payload.call 时则执行的正是shellcode。



【防范方案】

Adobe官方刚刚已经发布安全公告,对应的CVE号为:CVE-2015-5122,并称12号将发布安全补丁,相当于北京时间周一早上。TSRC建议大家在官方发布补丁前,先禁用Flash插件。


【总结】

     此次漏洞主要是AS3 opaqueBackground 属性导致的UAF漏洞,依然是valueOf导致的漏洞,此次Hacking Team 曝光的3个漏洞均是valueOf问题,用的基本是同一套利用模板,并且支持多个平台环境,都是采用vector exploit技术去实现信息泄露,从而绕过ASLR,再调用virtualProtect去赋予shellcode可执行权限,以此绕过DEP保护。可以预见未来将会有很多flash exploit 采用类似技术,甚至可能在一些恶意样本中找到Hacking Team的Flash利用模板,未来的利用代码将会更加工程化,通用化。

PS:分析时间仓促,如有误,欢迎指正!



本文专属二维码,扫一扫还能分享朋友圈

知识来源: security.tencent.com/index.php/blog/msg/88

阅读:125152 | 评论:0 | 标签:0day

想收藏或者和大家分享这篇好文章→复制链接地址

“Hacking Team Flash New 0Day 利用代码分析”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

❤人人都能成为掌握黑客技术的英雄⛄️

ADS

标签云