今年的OffensiveCon大会议题质量不错

栏目: JavaScript · 发布时间: 5年前

内容简介:年前曾在微博上推荐过OffensiveCon 2019大会议题,议题列表与介绍可参见官网(会议结束后,Twitter上赞声一片,议题质量很赞。本文主要聊聊已公开的一些议题,学习下思路。

年前曾在微博上推荐过OffensiveCon 2019大会议题,议题列表与介绍可参见官网( https://www.offensivecon.org/agenda/ ),很多专注于漏洞挖掘与利用的干货分享,目前只有部分议题ppt公开,文末附打包下载链接(包含8个议题),包括ppt、paper和code。

会议结束后,Twitter上赞声一片,议题质量很赞。

本文主要聊聊已公开的一些议题,学习下思路。

议题列表

  1. 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)子系统上,主要方便从本地读取数据进行离线浏览,访问速度更快,还能缓解服务器压力。

今年的OffensiveCon大会议题质量不错

AppCache位于沙盒之外的高权限进程browser,沙盒内低权限的renderer进程通过发送IPC消息与browser进程交互的,当AppCache出漏洞时,就有可能逃逸出沙盒。

漏洞成因

这次的ppt写得比较模糊,没那么清楚,还是直接看patch diff:

今年的OffensiveCon大会议题质量不错

移动 CancelUpdate() 函数到 newest_complete_cache_=nullptr; 之后,直接看看CancelUpdate里面的逻辑:

今年的OffensiveCon大会议题质量不错

在调用 AppCacheGroup::RemoveCache 清除缓存时, newest_complete_cache_ 指向的是被销毁的对象,所以后面才要把它置空,但在销毁之前调用了 CancelUpdate =>

AppCacheUPdateJob::~AppCacheUpdateJob => AppCacheGroup::SetUpdateAppCacheStatus => AppCacheHost::OnupdateComplete =>

SetSwappableCache

最后的 SetSwappableCache 用于设置新的交换缓存(swap cache),会引用到 newest_complete_cache_ ,而此时它还未被置NULL,导致出现Use After Free漏洞。

####漏洞利用:

  1. 【泄露地址】:使用与 AppCache 对象大小相同的 net::CanonicalCookie 对象来占用释放对象的内存,而 CanonicalCookie 对象开头是个cookie名称,即字符串指针,再从浏览器中读取cookie信息来达到信息泄露的目的,从而拿到可控数据的堆地址绕过ASLR。

  2. 【代码执行】:使用与 AppCache 对象大小相同的 Blob 对象对占用释放内存,再伪造 AppCacheGroup 对象,当它析构释放时,在 ~AppCacheGroup 中会调用到已被填充控制的虚函数指针,再结合ROP绕过DEP,从而达到代码执行。

整个过程还是需要自己动手调试一遍才比较清楚,估计足够调上几天了,国内似乎也没有一遍完整的文章分析过该漏洞的利用细节,期待有人分享。

3D Accelerated Exploitation

今年的OffensiveCon大会议题质量不错

今年的OffensiveCon大会议题质量不错

该议题主要介绍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

今年的OffensiveCon大会议题质量不错

搞过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项目里面了

今年的OffensiveCon大会议题质量不错

整个syzkaller的使用过程就是先去寻找内核的攻击面,然后构造api调用模板,剩下交由syzkaller基于代码覆盖驱动的方式去Fuzzing,有点类似api fuzzing。只是这里作者又写了个USB内核模块,方便通过用户层发送USB消息去测试。

作者还专门搞了个树莓派来重现漏洞,演示通过USB去让Windows/Linux系统崩溃。

FuzzIL: Guided Fuzzing for JavaScript Engines

今年的OffensiveCon大会议题质量不错

这议题最大的亮点在于:自定义一套中间语言IL,通过IL可以翻译成JS代码,然后通过变异IL来生成JS代码,与以往基于JS语法模板生成代码的方式不同。

今年的OffensiveCon大会议题质量不错

直接通过一行行删除IL的方式来验证是否崩溃或产生新路径,以此用来精简样本。

整个Fuzzing过程如下:

今年的OffensiveCon大会议题质量不错

作者未来会在github上开源( https://github.com/googleprojectzero/fuzzilli ),拭目以待。


以上所述就是小编给大家介绍的《今年的OffensiveCon大会议题质量不错》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

UNIX系统编程: 通信、并发与线程

UNIX系统编程: 通信、并发与线程

【美】Kay Robbins、Steve Robbins / 师蓉 / 电子工业出版社 / 2018-5 / 198

《UNIX系统编程: 通信、并发与线程》是一本基于最新UNIX标准的完备的参考书,对UNIX编程的要点进行了清晰易懂的介绍,从一些用于说明如何使用系统调用的短小代码段开始,逐渐过渡到能帮助读者扩展自己技能水平的实际项目中。《UNIX系统编程: 通信、并发与线程》中对通信、并发和线程问题进行了深入探讨,对复杂的概念(如信号和并发)进行了全面且清晰的解释,还覆盖了与文件、信号、信号量、POSIX线程和......一起来看看 《UNIX系统编程: 通信、并发与线程》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

在线进制转换器
在线进制转换器

各进制数互转换器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换