freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

MOSEC 2019 完美收官:茅台镇场,BaiJiuCon再成经典
2019-05-31 11:32:35

经历一晚上的休整,MOSEC 2019迎来最后一天的议程。昨天结束时,我提前得到消息,在今天最后环节的BaiJiuCon上,有一位韩国小姐姐会作为首位演讲嘉宾喝茅台演讲。是不是有点小期待~

MOSEC 2019 首日回顾:https://www.freebuf.com/fevents/204967.html

vbox7110_FLY_6090_090527_small.JPG

议题一:无处安放的shellcode

第二天的第一个议题是由奇虎360 C0RE Team 的安全研究员张弛和韩洪立分享的一个Android下Binder中的一个use-after-free漏洞的利用技巧,该漏洞影响系统上所有Binder相关的服务。利用时可以通过dalvik中的registerReceiver调用来进行堆喷射,并且构造对象就可以控制服务端的PC寄存器。但是从从Android N开始,一系列的SELinux策略被引入,用来限制在用户态进程中创建可执行内存。这使得传统映射可执行内存来执行shellcode的方式变得困难。

vbox7110_FLY_6102_090707_small.JPG

但是Android下的大部分系统服务包括system_server都支持解析JVM生成的bytecode, 这带来的新思路就是用Java编写shellcode所需要使用的功能,并且通过ROP构造ExecuteSwitchImpl函数的参数来达到执行任意的Java代码的目的。

议题二:新一代移动网络和基带的崛起

Marco Grassi 是 @腾讯科恩实验室 的一名高级研究员,在今天这个议题中他首先分享了逆向最新iPhone中Intel架构的基带芯片的一些心得体会,例如通过逆向找到内存分配相关的代码再定位到进程和线程相关的处理函数,再通过创建线程相关的代码来定位和基带通讯处理的函数进行后续的代码审计。随后又介绍了一些iOS基带芯片相关的攻击面,包括基带和内核交互的PCI-E接口代码,CommCenter和内核通讯的IOKit代码等。

vbox7110_FLY_6260_094907_small.JPG

Macro的第二部分分享主要是针对对Android基带芯片的一些研究,以华为P20为例,已经在基带芯片加入了诸如Stack Cookies之类的安全保护,相信在不久的未来,基带的芯片应该很快会引入地址随机化保护(ASLR),并且在新的硬件架构下也有可能会引入类似ARM下PaC/Intel CET之类的的硬件保护机制。

议题三:钉枪——突破ARM特权隔离

来自韦恩州立大学的张锋巍教授及宁振宇博士带来的《钉枪:突破ARM特权隔离》,他们首先分析了传统的调试模式下的物理的调试方式。但是在多处理器的模型下使得这种调试接口变得不太便利。因此,ARM引入了一个新的调试模型,在这种新的调试模型中,主机处理器能够暂停和调试同一芯片上的另一个目标处理器(处理器间调试)。这种调试模式不依赖物理访问,也不需要通过JTAG接口。但是ARM同时也引入了对应的调试验证机制,通过四种不同的信号来控制不同的调试模式。

vbox7110_FLY_6406_110452_small.JPGvbox7110_FLY_6508_112810_small.JPG

钉枪攻击的思想是在多处理器的SoC下,利用这种处理器间调试能力,通过低权限处理器暂停和调试高权限的目标处理器。在调试模式下可以通过执行特权指令DCPS来提升处理器的权限,并且绕过ARM下的权限隔离机制。这种攻击可以读取系统的安全配置寄存器,甚至能够在trustzone中执行任意代码。在调试模式下可以直接把代码拷贝到trustzone的安全内存中,修改VBAR_EL3寄存器中指向的异常向量表,达到在trustzone执行任意代码的目的。

通过这种方法,两位演讲者还成功演示了提取存储在华为Mate 7安全内存中的指纹图像。

议题四:畅游EL3——终极提权之旅

今天下午的第一个议题是来自盘古实验室的安全研究员闻观行 @HHJ4CK 带来的《畅游EL3:终极提权之旅》。他首先和大家分享了Android系统的trustzone模型,包括设备会被划分成四级特权(EL0-EL3),以及可信和不可信区域(secure/non-secure)。通常操作系统内核权限是运行在不可信的NS-EL1区域,无法访问全部内存和外设,因为这是一个权限隔离的区域。

vbox7110_FLY_6584_133238_small.JPG

闻观行在接下来演示了如何在逆向华为手机的trustzone,包括定位到某个smc调用在VBAR_EL3中的异常向量表中的处理函数,并且通过逆向该处理函数找到了一个可以在内核中触发的漏洞,由于该处理函数中的某个虚函数指针是从内核和trustzone的共享内存中读取的,导致在内核权限下可以直接设置这个指针,然后在trustzone运行的EL3下执行任意代码。

并且在利用这个漏洞的时候,他选择了跳转到trustzone的某个函数达成了任意内存读写的目的,在执行shellcode时候他选择先通过ROP修改存放shellcode页表的属性,刷新TLB然后执行最终的代码,最后闻观行还演示了通过这个漏洞绕过了手机中的脸部识别功能。

议题五:一些JSC的故事

今天最后的一个议题是mosec的老朋友,来自意大利的天才少年 Luca Todesco来的他关于JavaScriptCore引擎的安全研究。JSC是WebKit浏览器中负责解释执行的Javascript的引擎,是苹果操作系统中默认的浏览器引擎。在这次的演讲中,Luca首先和大家分享了一些Webkit漏洞的历史变迁,包括早期DOM中的use-after-free类型的漏洞以及漏洞利用方式,包括ROP及改写JIT函数指针达到执行任意代码的目的。因此,苹果也增加了很多安全保护机制,包括对DOM对象的隔离及浏览器JIT内存的加固,内存牢笼及内存指针posion等等。

vbox7110_FLY_6667_141936_small.JPG

接下来Luca把他的研究中心主要放在JSC引擎上,他以JIT DFG对StringSlice优化过程中存在的寄存器错误分配的问题为例子,并且成功的把这个漏洞转换成的Side Effects的问题,通过回调toString把一个浮点数组混淆成变量数组,然后在该处构造虚假对象来达到任意内存读写的目的,这也是目前浏览器中主流的利用方式。

BaiJiuCon

vbox8062_0D4_2272_151611_small.JPG

BaiJiuCon 如期而至,除了有茅台镇场,还有韩国和以色列的小姐姐上台演讲。

vbox8062_0D4_2325_152547_small.JPG韩国小姐姐(英文名Suhee,中文名姜受希)开场中文打招呼也引得现场一阵欢呼,据说这也是Suhee第一次在这种国际安全会议上演讲。

vbox8062_0D4_2374_153318_small.JPG台湾“天才黑客”张启元,大家还记得他的那些风云故事吗?

vbox8062_0D4_2493_161712_small.JPG

以色列小姐姐 Gal

花絮集锦

vbox7110_FLY_5858_141855_small.JPGvbox7110_FLY_6046_075628_small.JPGvbox7110_FLY_5715_112037_small.JPGvbox7110_FLY_5716_113009_small.JPGvbox7110_FLY_6369_105844_small.JPGvbox7110_FLY_6567_130146_small.JPGvbox7110_FLY_6554_120124_small.JPGvbox8062_0D4_2284_152312_small.JPG

# mosec # 白酒会
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者