今年的OffensiveCon大会议题质量不错
栏目: JavaScript · 发布时间: 5年前
内容简介:年前曾在微博上推荐过OffensiveCon 2019大会议题,议题列表与介绍可参见官网(会议结束后,Twitter上赞声一片,议题质量很赞。本文主要聊聊已公开的一些议题,学习下思路。
年前曾在微博上推荐过OffensiveCon 2019大会议题,议题列表与介绍可参见官网( https://www.offensivecon.org/agenda/ ),很多专注于漏洞挖掘与利用的干货分享,目前只有部分议题ppt公开,文末附打包下载链接(包含8个议题),包括ppt、paper和code。
会议结束后,Twitter上赞声一片,议题质量很赞。
本文主要聊聊已公开的一些议题,学习下思路。
议题列表
-
1. Modern Source Fuzzing 2. IPC You Outside the Sandbox: One bug to Rule the Chrome Broker 3. 3D Accelerated Exploitation 4. Bugs so Nice they Patched them Twice! A (Continuing)? Story About Failed Patches 5. Attacking Hardware Root of Trust from UEFI Firmware 6. OSX XPC Revisited - 3rd Party Application Flaws 7. Growing Hypervisor 0day with Hyperseed 8. Attacking Edge Through the JavaScript Just-In-Time compiler 9. Coverage-Guided USB Fuzzing with Syzkaller 10. Updated Analysis of PatchGuard on Windows RS4: Is the Mouse Finally Caught? 11. iOS Dual Booting Demystified 12. macOS: How to Gain Root with CVE-2018-4193 in < 10s 13. Reverse Engineering of Error-Correcting Codes 14. Glitch in the Matrix: Exploiting Bitcoin Hardware Wallets 15. Attack Surface of a Connected Vehicle 16. Bypass Windows Exploit Guard ASR 17. FuzzIL: Guided Fuzzing for JavaScript Engines
Modern Source Fuzzing
这是作者Ned Willliamson在353c大会上的《Attack Chrome IPC》议题的扩展补充,我之前还写过 《安全研究者的自我修养》 一文,里面介绍的就是作者提及的二进制漏洞研究的学习思路。
目前作者没公开这次会议的ppt,大家还是看353C的演讲视频吧: https://media.ccc.de/v/35c3-9579-attacking_chrome_ipc
##IPC You Outside the Sandbox: One bug to Rule the Chrome Broker
作者已经在github上公布此漏洞的利用代码hack2win-chrome,点击”阅读原文“可下载到。
本议题讲的是Chrome沙盒逃逸漏洞,漏洞位于应用缓存(AppCache)子系统上,主要方便从本地读取数据进行离线浏览,访问速度更快,还能缓解服务器压力。
AppCache位于沙盒之外的高权限进程browser,沙盒内低权限的renderer进程通过发送IPC消息与browser进程交互的,当AppCache出漏洞时,就有可能逃逸出沙盒。
漏洞成因
这次的ppt写得比较模糊,没那么清楚,还是直接看patch diff:
移动 CancelUpdate()
函数到 newest_complete_cache_=nullptr;
之后,直接看看CancelUpdate里面的逻辑:
在调用 AppCacheGroup::RemoveCache
清除缓存时, newest_complete_cache_
指向的是被销毁的对象,所以后面才要把它置空,但在销毁之前调用了 CancelUpdate
=>
AppCacheUPdateJob::~AppCacheUpdateJob
=> AppCacheGroup::SetUpdateAppCacheStatus
=> AppCacheHost::OnupdateComplete
=>
SetSwappableCache
最后的 SetSwappableCache
用于设置新的交换缓存(swap cache),会引用到 newest_complete_cache_
,而此时它还未被置NULL,导致出现Use After Free漏洞。
####漏洞利用:
-
【泄露地址】:使用与
AppCache
对象大小相同的net::CanonicalCookie
对象来占用释放对象的内存,而CanonicalCookie
对象开头是个cookie名称,即字符串指针,再从浏览器中读取cookie信息来达到信息泄露的目的,从而拿到可控数据的堆地址绕过ASLR。 -
【代码执行】:使用与
AppCache
对象大小相同的Blob
对象对占用释放内存,再伪造AppCacheGroup
对象,当它析构释放时,在~AppCacheGroup
中会调用到已被填充控制的虚函数指针,再结合ROP绕过DEP,从而达到代码执行。
整个过程还是需要自己动手调试一遍才比较清楚,估计足够调上几天了,国内似乎也没有一遍完整的文章分析过该漏洞的利用细节,期待有人分享。
3D Accelerated Exploitation
该议题主要介绍VirsualBox 3D加速器的攻击面和漏洞利用,由于VBox是开源的,因此可以直接使用AFL 去Fuzzing,fuzz目标就是通过发送畸形chromium messages来触发漏洞。他们应该是自己写个构造发送消息的程序,输入文件即chromium messages内容,样本可能是收集550操作码的信息去构造,也可能通过hook去直接抓取真实数据作为样本,然后用 afl去跑。更具体的实现方式,作者也没细说。
MWR Labs这几年经常曝光一些Pwn2Own级别的漏洞,分享很多经典文章,还开源了不少Fuzzer工具,连ppt都做得非常工整,具有独特风格,哪怕没logo,你看一眼都能猜出是他们写的。具备牛X的技能能力,又乐分享,这点是比较难得的。
Attacking Edge Through the JavaScript Just-In-Time compiler
一直以来,chakra被曝的漏洞非常多,导致微软最终还是放弃了。
从今年开始,微软将打算把Edge的Chakra引擎改用Google Chromium引擎,估计最近这两个月就会发布,以后就可能没什么人再搞Chakra内核了。
这议题里面讲了很多chakra的js对象内存结构等基础知识,重点讲了JIT优化编译器的漏洞原理与利用技巧,整个ppt有120页,很多。
我没搞过chakra,未来可能也用不上了,有兴趣的同学可以看下,作者把exploit代码也公布了,我已附在本文的打包资料里面。
Coverage-Guided USB Fuzzing with Syzkaller
搞过Linux/Android内核漏洞挖掘的人,应该都知道Syzkaller这款神器,发现超过2500个内核bug,它是基于代码覆盖率+API调用模板来Fuzzing内核的工具,对于发现崩溃的漏洞,还能自动生成C代码帮助复现,是由Google的Dmitry Vyukov开发的,已在Github上开源多年( https://github.com/google/syzkaller )。
这次作者用syzkaller fuzz USB驱动共发现了80+个bug,它先开启kcov去收集代码覆盖率信息,写了两个usb操作的描述模板(vusb.txt用来生成usb消息,vusb_ids.txt用于提取与USB设备驱动相匹配的USB ID列表),ppt里面有链接,所有的usb fuzzer代码都已经嵌入到syzkaller项目里面了
整个syzkaller的使用过程就是先去寻找内核的攻击面,然后构造api调用模板,剩下交由syzkaller基于代码覆盖驱动的方式去Fuzzing,有点类似api fuzzing。只是这里作者又写了个USB内核模块,方便通过用户层发送USB消息去测试。
作者还专门搞了个树莓派来重现漏洞,演示通过USB去让Windows/Linux系统崩溃。
FuzzIL: Guided Fuzzing for JavaScript Engines
这议题最大的亮点在于:自定义一套中间语言IL,通过IL可以翻译成JS代码,然后通过变异IL来生成JS代码,与以往基于JS语法模板生成代码的方式不同。
直接通过一行行删除IL的方式来验证是否崩溃或产生新路径,以此用来精简样本。
整个Fuzzing过程如下:
作者未来会在github上开源( https://github.com/googleprojectzero/fuzzilli ),拭目以待。
以上所述就是小编给大家介绍的《今年的OffensiveCon大会议题质量不错》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 韩国 2018 POC 安全大会议题 PPT 公布
- 推荐今年C3黑客大会上的几个议题
- Infiltrate2019议题学习
- KCon 2018 议题 PPT 公开
- TenSec 2018 安全议题 ppt 公开
- TenSec 2019 安全议题 ppt 公开
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
单元测试之道Java版
David Thomas、Andrew Hunt / 陈伟柱、陶文 / 电子工业 / 2005-1 / 25.00元
程序员修炼三部曲丛书包含了四本书,介绍了每个注重实效的程序员和成功团队所必备的一些工具。 注重实效的程序员都会利用反馈来指导开发,并驱动个人的开发流程。编码的时候,最有用的反馈来自于“单元测试”。 为了测试一座桥梁,不会只在晴朗的天气,开一辆汽车从桥中间穿过,就认为已经完成了对桥梁的测试。然而许多程序员却正在使用这种测试方法——把这种一次顺利通过称为“测试”。事实上,注重实效的程序员应......一起来看看 《单元测试之道Java版》 这本书的介绍吧!