前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习下 BlackHat Asia 2021 大会议题

学习下 BlackHat Asia 2021 大会议题

作者头像
泉哥
发布2021-05-20 10:28:53
1.5K0
发布2021-05-20 10:28:53
举报
文章被收录于专栏:漏洞战争漏洞战争

BlackHat Asia 2021会议已经结束,相关议题资料也放出,刚好这两天周末抽空学习下,共39个议题,覆盖范围还是比较广的,虽然议题质量不如USA主会场,但多少还是有一些值得学习的内容,我只挑了一些感兴趣的议题做些介绍,更多内容可以上官方下载(https://www.blackhat.com/asia-21/briefings/schedule/index.html)。

1、A New Era of One-Click Attacks: How to Break Install-Less Apps

‍‍‍OPPO子午实验室分享的议题,主要针对一些免安装应用的攻击分析,比如Instant App、AppClips和快应用,其中个人比较感兴趣的是快应用的漏洞分析,由于快应用中的一些文件访问API存在目录遍历漏洞,通过漏洞远程下载恶意so库到快应用的 lib-main目录下实现任意代码执行,可以通过DeekLink去远程触发,这个利用思路挺好的。

2、THE COST OF COMPLEXITY: Different Vulnerabilities While Implementing the Same RFC

物联网企业安全公司Forescout和以色列安全研究小组JSOF的共同发现的NAME:WRECK是TCP/IP协议栈中的DNS协议上的9个漏洞,影响很多物联网设备。议题集中介绍DNS消息压缩功能上的漏洞,并列举了近20年来一些关于消息压缩的漏洞,重点还是介绍他们发现的NAME:WRECK漏洞,其中有好几个是RCE漏洞。他们把导致这些漏洞的问题称为anti-patterns:

  • 缺少TXID(Transaction ID)验证,随机TXID和源UDP端口不足,比如CVE-2010-17439、CVE-2010-17470、CVE-2021-25667;
  • 缺少标签和名称长度验证,比如CVE-2020-15795;
  • 缺少NULL终止符验证,比如CVE-2020-27736;
  • 缺少计数(record count)字段校验,比如CVE-2020-27737
  • 缺乏域名压缩指针和偏移验证,比如CVE-2020-27009、CVE-2020-25795、CVE-2021-25667

对方给出了几种应对方案:

  • 优化RFC文档,指导如何避免此类问题,毕竟这文档过于陈旧;
  • 开源Joern工具进行C/C++代码的静态分析,帮助检测代码漏洞
  • 设备指纹识别易受影响的设备,进行补丁安装或隔离,做好资产风险管控;
  • 流量入侵检测

3、The Price of Compatibility: Defeating macOS Kernel Using Extended File Attributes

介绍macOS上的文件扩展属性xattr,在FAT文件系统中,居然是在内核中解析xattr的,解析不当就是一个内核提权漏洞。相关解析代码在XNU中开源了,位于bsd/vfs/vfs_xattr.c中,设置扩展属性后,会在相同目录下,生成前缀"._"的隐藏文件,即是在FAT中存储xattr的位置。刚好相关的解析代码也就是几百行,因此作者是代码审计漏洞的。估计这一攻击面曝露后,就没啥可玩的了。议题中也介绍了相关漏洞的利用方式,有兴趣的同学可以看下。

4、(Un)protected Broadcasts in Android 9 and 10

介绍Android广播组件上的系统应用漏洞,在当前四大组件被玩烂的情况下,找出此类漏洞需要更加全面和细心的分析,虽然就单点技术而言比较简单。作者发现只有驻留在priv-app目录(例如/system/priv-app/SystemUI/SystemUI.apk)中的预安装应用才能在系统中注册受保护的广播,这使得其它系统应用可能缺乏对protected broadcast Intent消息的保护,在这种情况下,可以发送欺骗性消息执行相应的功能,可能导致代码执行或者敏感信息泄露。

5、Scavenger: Misuse Error Handling Leading To QEMU/KVM Escape

蚂蚁光年实验室在去年天府杯上用的QEMU逃逸漏洞,更多的还是成果的展示,缺乏授渔之技,主要介绍大赛上所用漏洞的成因和利用技巧,并开源了利用代码。他们通过静态分析收集虚拟设备代码中涉及错误处理的goto语句以及调用方信息,然后同步给aflgo进行Fuzzing,就一页PPT,隐藏太多细节了。

6、Mining and Exploiting (Mobile) Payment Credential Leaks in the Wild

关于批量挖掘和利用移动支付凭证漏洞的议题,由于开发大意,将一些支付凭证开源到GitHub或者GitLab,或者通信数据中包含一些URL进行泄露的密钥文件地址。通过这些支付凭证可能接管他人的帐号,有点oauth认证绕过的味道,还有一些跨应用通用消息伪造用于钓鱼欺骗。作者设计了一款针对支付凭证泄露的自动化挖掘工具,整体设计架构如上图所示。先通过网络爬虫收集代码、APK、支付SDK,然后针对支付凭证特征进行扫描检测,最终输出测试报告。对方共检测了14万个git开源项目,其中10.3%存在支付凭证泄露,其中7.8%只存在于历史提交中,而后开发者共花了51天时间去提交仓库以隐藏泄露的凭证,gitlab上的项目大多是外包公司的。

7、New Attack Surface in Safari:Using Just one Web Audio vulnerability to rule the Safari

蚂蚁光年实验室在苹果系统上的音频解析模块的漏洞,大多是CoreAudio模块的,后来他们针对Safari的WebAudio模块进行Fuzz,其中以CAF文件解析漏洞为例,介绍了在safari中的漏洞利用场景,建议大家还是直接看paper,ppt写得太零稀了。作者使用TrapFuzz,编写一些音频解析的harness去做Fuzz,跟我以前思路差不多,只是之前我没用TrapFuzz,发现里面还截图我博客了。其实这议题更多的还是成果展示,没太多技术细节。看在帮我打广告的份上,我也回敬一下吧^_^

8、Give Me a SQL Injection, I Shall PWN IIS and SQL Server

Access与SQL Server在解析数据库mdb文件时存在很多漏洞,此类漏洞在最近两年经常被刷,很容易撞洞,好在微软也不给奖金,某些人应该也就释怀了吧。这可能是因为被大量刷洞导致的,微软可没少干这种事,之前360狂刷windows服务提权漏洞,就更新漏洞奖励计划,降低此类漏洞奖金了。像这类漏洞还很好利用,在页面中嵌入即可实现IE浏览器RCE,连个CFG保护都没有,但edge不支持这些模块。作者从另一个角度,提供一个攻击场景,那就是结合SQL注入漏洞,使用unc路径指定远程的mdb文件,借助SQL语句令其加载解析,从而触发内存破坏漏洞,实现代码执行的目的。针对此类漏洞的Fuzz,都是基于一些数据库模块(比如msjet40.dll、msrd3x40.dll、acecore.dll等等)的API写hareness,然后用winafl跑跑足矣,不过看作者介绍的,他应该还做了SQL查询语句的变异。按作者说的,他们在这数据库解析上挖了上百个漏洞,产出颇丰。

9、Wideshears: Investigating and Breaking Widevine on QTEE

Widevine是一套DRM(数字版本管理)解决方案,运行在QTEE中,本议题就介绍如何利用漏洞从QTEE可信存储中窃取敏感数据。推荐阅读paper,信息相对完整一些,而ppt大多是图,文字解释太少。通过代码审计,作者分析了Widevinedash DRM命令分发对应的回调处理函数,跟进找到一处位于wv_dash_core_decrypt_cenc函数的漏洞,该函数负责解密被Widevine加密的DRM内容,作者手工逆向还原出一些相应的command buffer的字段,其中存储着元数据的subsample_meta_t中的subsample_offset代表subsample相对data_buf(存储输入的加密数据)的偏移,但对subsample_offset未作校验,导致过大时造成内存越界,并且解密后,会再使用memcpy拷贝到outbuf。作者最后使用开源播放器Exoplayer来演示漏洞触发场景,然后在kernel ioctl之前通过hook QSEECom_send_modified_cmd_64函数去修改subsample_offset以触发TA崩溃,paper中有提供相应代码,看着像是用frida写的。接着又介绍TA内存分布范围,CA与TA间的共享内存实现,如何利用另一漏洞泄露物理地址,绕过ASLR等等,整体过程还挺复杂。最后,利用漏洞读取出存储在TEE中Keybox,它是Android密钥箱,用于解密受DRM保护的内容。

paper中刚好总结了整体漏洞利用过程,这里也一并整理出来,方便理解:

  1. 使用Exoplayer打开DRM视频URL进行播放;
  2. CA完成上述步骤后, 调用CENC通用加密功能对内容进行加密;
  3. 从系统堆中获取所有合适的buffer;
  4. 启动一个UNIX domain socket服务以保存所有耗时的中间资源;
  5. 快速重复1、2步骤,直到SMC调用不再崩溃;
  6. 匹配页面签名以获取TA基址并绕过ASLR;
  7. 将文件路径写入g_wv_dash_keybox_file_path;
  8. 编写可读的缓冲区地址,以便get_robustness_ver可以平稳运行;
  9. 劫持qsee_malloc与qsee_free以避免崩溃;
  10. 调用SMC以执行wv_dash_core_get_deviceid函数,以便使keybox在内存中泄露出来;
  11. 从缓冲区中读取keybox;
  12. 重储上下文。

总结

发现涉及漏洞攻防的议题都有一个特点:不分享如何挖掘的,要么蜻蜓点水,要么闭口不谈。大家还是有所保留的,除了那些完全人肉审计代码挖洞的就没话说了,很多搞Fuzz就基本都省略,对技术内容还是有所保留的。不少议题更多的是展示团队的研究成果,毕竟也是为了帮助提升团队影响力,也是可以理解的。议题一多,水平参差不齐也难避免,但也不影响好学者从中拾得些许思路心得,扩展下眼界也是极好的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 漏洞战争 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、A New Era of One-Click Attacks: How to Break Install-Less Apps
  • 2、THE COST OF COMPLEXITY: Different Vulnerabilities While Implementing the Same RFC
  • 3、The Price of Compatibility: Defeating macOS Kernel Using Extended File Attributes
  • 4、(Un)protected Broadcasts in Android 9 and 10
  • 5、Scavenger: Misuse Error Handling Leading To QEMU/KVM Escape
  • 6、Mining and Exploiting (Mobile) Payment Credential Leaks in the Wild
  • 7、New Attack Surface in Safari:Using Just one Web Audio vulnerability to rule the Safari
  • 8、Give Me a SQL Injection, I Shall PWN IIS and SQL Server
  • 9、Wideshears: Investigating and Breaking Widevine on QTEE
  • 总结
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档