零点击Zip
日前安全人员Mikko Kenttälä发现了Apple Mail中的一个零点击漏洞,利用该漏洞可以在Mail的沙箱环境中添加或修改任何文件。 这样可以导致用户劫持可以未经授权就将敏感信息泄露给第三方。攻击者可以修改受害者的邮件配置实现邮件重定向,然后从通过重置密码来获取受害者账户。还可以用来更改受害者的配置,以其名义用蠕虫方式将攻击其他用户。苹果修补了此漏洞。
技术细节
Mac Mail具备自动解压缩由另一个用户自动压缩的附件的功能。在有效的用例:用户创建电子邮件并将文件夹添加为附件,它将使用zip和x-mac-auto-archive = yes自动压缩;并被添加到MIME标头中。当另一个用户收到此电子邮件时,压缩的附件数据将自动解压缩。
在过程中,发现苹果Mail处理中未压缩数据的一部分未从临时目录中清除,并且该目录在Mail上下文中不是唯一的,可以利用压缩文件中内部符号链接$MPDIR到〜/Library/Mail进行未经授权的写访问。
攻击者发送电子邮件漏洞利用程序,其中包括两个zip附件。当用户收到电子邮件后,Mail会对其进行解析,以找出所有带有x-mac-auto-archive = yes标头的附件。 Mail将自动解压缩这些文件。
第一阶段
第一个zip包含一个名为Mail的符号链接,指向受害者“$HOME/Library/Mail”和文件1.txt。压缩文件将解压缩为“$TMPDIR/com.apple.mail/bom/”。根据“filename = 1.txt.zip”标头,将1.txt复制到邮件目录,一切正常。但是,清理未正确完成,并且符号链接保留在原处。
第二阶段
第二个附加的zip包含要对“$HOME/Library/Mail”进行的更改,提供Library/Mail的任意文件写入权限。
示例案例中为Mail应用程序编写了一个新的Mail规则。这样,就可以向受害者的邮件应用程序添加自动转发规则。
- Mail/ZCZPoC
- Mail/V7/MailData/RulesActiveState.plist
- Mail/V7/MailData/SyncedRules.plist
Mail/ZCZPoC仅包含一个纯文本文件,该文件将被写入〜/Library/Mail。
覆盖邮件规则列表
然后该目录下的文件可以被覆盖,比如RulesActiveState.plist和SyncedRules.plist文件。
RulesActiveState.plist中的主要内容是激活SyncedRules.plist中的规则。
- …
- <dict>
- <key> 0C8B9B35–2F89–418F-913F-A6F5E0C8F445 </key>
- <true/>
- </dict>
- …
SyncedRules.plist包含一个匹配“AnyMessage”的规则,并且此PoC中的规则将Mail应用程序设置为在收到任何消息时播放莫尔斯声音。
- …
- <key>Criteria</key>
- <array>
- <dict>
- <key>CriterionUniqueId</key>
- <string>0C8B9B35–2F89–418F-913F-A6F5E0C8F445</string>
- <key>Header</key>
- <string>AnyMessage</string>
- </dict>
- </array>
- …
- <key>SoundName</key>
- <string>Morse</string>
莫尔斯码发声的代码也可以修改为其他可以执行的操作,比如转发规则用来上传敏感的电子邮件信息。
影响
这种任意的写访问权限使攻击者可以操纵$HOME/Library/Mail中的所有文件。 如部分图示,可以用来操纵Mail应用程序的配置将敏感数据暴露给第三方。可用的配置选项之一是用户的签名,该签名可用于扩大漏洞的扩散和影响。也有可能导致远程代码执行(RCE)漏洞。