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就基本都省略,对技术内容还是有所保留的。不少议题更多的是展示团队的研究成果,毕竟也是为了帮助提升团队影响力,也是可以理解的。议题一多,水平参差不齐也难避免,但也不影响好学者从中拾得些许思路心得,扩展下眼界也是极好的。

学习下 BlackHat Asia 2021 大会议题相关推荐

  1. 议题征集倒计时|Pulsar Summit Asia 2021 议题征集截至 9 月 30 日

    关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息.存储.轻量化函数式计算为一体,采用计算与存储分离架构设计,支 ...

  2. Flink Forward Asia 2021 正式启动!议题火热征集中!

    简介:FFA 2021 将于 12 月 4-5 日在北京·国家会议中心举办,议题投递日期截止至 10 月 10 日! 何其有幸 我们身处开源软件群星璀璨的年代 数据的价值被重新定义 时间,愈发分秒必争 ...

  3. 议题预告 | Pulsar Summit Asia 2021:Day 1 -主题演讲

    Pulsar Summit 是 Apache Pulsar 社区年度盛会,它将分布在世界各地的 Apache Pulsar 项目 Contributor.Committer 和各企业 CTO/CIO. ...

  4. 从 Flink Forward Asia 2021,看Flink未来开启新篇章

    简介:本文将对FFA Keynote议题作一些简单的归纳总结,感兴趣的小伙伴们可以在FFA官网[2]找到相关主题视频观看直播回放. 作者 | 梅源(Yuan Mei) 来源 | 阿里技术公众号 律回春 ...

  5. 明日召开 | Pulsar Summit Asia 2021 本周末线上精彩呈现

    Pulsar Summit 是 Apache Pulsar 社区年度盛会,它将分布在世界各地的 Apache Pulsar 项目 Contributor.Committer 和各企业 CTO/CIO. ...

  6. 谭铁牛当选CVPR 2021大会主席,华人学术力量不容小觑

    雷锋网(公众号:雷锋网)AI科技评论按:7月28日,雷锋网前方记者传来消息,中科院谭铁牛院士将担任2021年举办的CVPR大会主席.从另一个角度来看,这也算是国际顶级学术会议CVPR对华人CV领域做出 ...

  7. ApacheCON Asia 2021清华大学软件学院王建民:工业大数据软件与开源创新

    演讲人简介 王建民教授,清华大学软件学院院长.大数据系统软件国家工程实验室执行主任.清华大学大数据研究中心常务副主任,工业大数据系统与应用重点北京市重点实验室主任.国家工业互联网战略咨询专家委员会委员 ...

  8. 2022补天白帽大会议题征集启动!

    以白帽子为主角的大会,补天白帽大会坚持"HACK FOR SECURITY"的永久主题.即日起,"2022补天白帽大会"全球议题征集全面启动,诚邀各界网络安全从 ...

  9. 只会使用 WaitGroup?你应该学习下 ErrGroup!

    有句话叫"看不起.看不清.追不上".近几年,关于 Go 与 Java 还有 C 的对比和讨论愈演愈烈,但不可否认的是,在十年多的时间里,Go 语言发展势头强劲,凭借其简洁.高效的特 ...

最新文章

  1. Distinction Between Strategy and Decorator
  2. python flask实现博客系统_基于Flask的博客网站设计与实现
  3. UA PHYS515A 电磁理论III 静磁学问题1 Maxwell方程与静磁学问题
  4. SAP CRM One order appointment duration table
  5. Mybatis中的#号与$符号的区别
  6. 【HDU - 5468】Puzzled Elena(容斥原理,dfs序,数学,素因子分解,有坑)
  7. XOS 源码详解3: os_s_xxxx.s 汇编代码的 LDR指令
  8. NGUI中的Table自定义排序
  9. DataReader与DataAdapter的区别
  10. Android Multimedia框架总结(一)MediaPlayer介绍之状态图及生命周期
  11. do_fork实现--下
  12. Atitit 软件知识点分类体系 分类 按照书籍的分类 学科分类 体系与基础部分 计算机体系结构 硬件接口技术(usb,agp,pci,div,hdmi) os操作系统 中间件 语言部分
  13. Oracle终极彻底卸载的完整步骤
  14. 无需root计算机隐藏应用,应用隐藏大师APP一款极为隐秘的黑科技软件,无需Root 支持双开...
  15. 计算几何小结 我对计算几何的理解以及叉积和点积
  16. 为谷歌浏览器Chrome创建多个用户
  17. windows用ffmpeg将flv视频转换为mp4
  18. C语言n层嵌套平方根的计算n
  19. linux的炒股软件“全胜”
  20. 自然语言处理(NLP)常用开源工具总结----不定期更新

热门文章

  1. mysql驱动的依赖和spring jdbc依赖是什么关系
  2. 饥荒mod制作教程--物品(食物)该篇主讲贴图--01
  3. 8个问题带你搞懂《小门神》背后的技术
  4. ftp报错Could not parse response code. Server Reply ssh
  5. 解决 Android Studio 报SDK tools directory is missing
  6. C++课程设计报告--通讯录管理系统
  7. jason3的ku、c波段的有效波高数据下载
  8. 增值税发票二维码解析
  9. 2022长安杯的网站重构及部分题解
  10. 金秋去哪儿:黑龙潭喊你带着爸妈免费去登山赏红叶