蘋(píng)果macOS Mail零點(diǎn)擊漏洞分析
零點(diǎn)擊Zip
日前安全人員Mikko Kenttälä發(fā)現(xiàn)了Apple Mail中的一個(gè)零點(diǎn)擊漏洞,利用該漏洞可以在Mail的沙箱環(huán)境中添加或修改任何文件。 這樣可以導(dǎo)致用戶劫持可以未經(jīng)授權(quán)就將敏感信息泄露給第三方。攻擊者可以修改受害者的郵件配置實(shí)現(xiàn)郵件重定向,然后從通過(guò)重置密碼來(lái)獲取受害者賬戶。還可以用來(lái)更改受害者的配置,以其名義用蠕蟲(chóng)方式將攻擊其他用戶。蘋(píng)果修補(bǔ)了此漏洞。
技術(shù)細(xì)節(jié)
Mac Mail具備自動(dòng)解壓縮由另一個(gè)用戶自動(dòng)壓縮的附件的功能。在有效的用例:用戶創(chuàng)建電子郵件并將文件夾添加為附件,它將使用zip和x-mac-auto-archive = yes自動(dòng)壓縮;并被添加到MIME標(biāo)頭中。當(dāng)另一個(gè)用戶收到此電子郵件時(shí),壓縮的附件數(shù)據(jù)將自動(dòng)解壓縮。
在過(guò)程中,發(fā)現(xiàn)蘋(píng)果Mail處理中未壓縮數(shù)據(jù)的一部分未從臨時(shí)目錄中清除,并且該目錄在Mail上下文中不是唯一的,可以利用壓縮文件中內(nèi)部符號(hào)鏈接$MPDIR到〜/Library/Mail進(jìn)行未經(jīng)授權(quán)的寫(xiě)訪問(wèn)。
攻擊者發(fā)送電子郵件漏洞利用程序,其中包括兩個(gè)zip附件。當(dāng)用戶收到電子郵件后,Mail會(huì)對(duì)其進(jìn)行解析,以找出所有帶有x-mac-auto-archive = yes標(biāo)頭的附件。 Mail將自動(dòng)解壓縮這些文件。
第一階段
第一個(gè)zip包含一個(gè)名為Mail的符號(hào)鏈接,指向受害者“$HOME/Library/Mail”和文件1.txt。壓縮文件將解壓縮為“$TMPDIR/com.apple.mail/bom/”。根據(jù)“filename = 1.txt.zip”標(biāo)頭,將1.txt復(fù)制到郵件目錄,一切正常。但是,清理未正確完成,并且符號(hào)鏈接保留在原處。
第二階段
第二個(gè)附加的zip包含要對(duì)“$HOME/Library/Mail”進(jìn)行的更改,提供Library/Mail的任意文件寫(xiě)入權(quán)限。
示例案例中為Mail應(yīng)用程序編寫(xiě)了一個(gè)新的Mail規(guī)則。這樣,就可以向受害者的郵件應(yīng)用程序添加自動(dòng)轉(zhuǎn)發(fā)規(guī)則。
- Mail/ZCZPoC
- Mail/V7/MailData/RulesActiveState.plist
- Mail/V7/MailData/SyncedRules.plist
Mail/ZCZPoC僅包含一個(gè)純文本文件,該文件將被寫(xiě)入〜/Library/Mail。
覆蓋郵件規(guī)則列表
然后該目錄下的文件可以被覆蓋,比如RulesActiveState.plist和SyncedRules.plist文件。
RulesActiveState.plist中的主要內(nèi)容是激活SyncedRules.plist中的規(guī)則。
- …
- <dict>
- <key> 0C8B9B35–2F89–418F-913F-A6F5E0C8F445 </key>
- <true/>
- </dict>
- …
SyncedRules.plist包含一個(gè)匹配“AnyMessage”的規(guī)則,并且此PoC中的規(guī)則將Mail應(yīng)用程序設(shè)置為在收到任何消息時(shí)播放莫爾斯聲音。
- …
- <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>
莫爾斯碼發(fā)聲的代碼也可以修改為其他可以執(zhí)行的操作,比如轉(zhuǎn)發(fā)規(guī)則用來(lái)上傳敏感的電子郵件信息。
影響
這種任意的寫(xiě)訪問(wèn)權(quán)限使攻擊者可以操縱$HOME/Library/Mail中的所有文件。 如部分圖示,可以用來(lái)操縱Mail應(yīng)用程序的配置將敏感數(shù)據(jù)暴露給第三方??捎玫呐渲眠x項(xiàng)之一是用戶的簽名,該簽名可用于擴(kuò)大漏洞的擴(kuò)散和影響。也有可能導(dǎo)致遠(yuǎn)程代碼執(zhí)行(RCE)漏洞。