如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140)

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第1張

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第2張

昨天,微軟發布了2018年6月的安全公告,但截至目前可能還有很多Windows 10用戶沒有打上這些補丁。需要注意的是,如果你還沒打補丁,那麼就不要輕易離開你的電腦。

在此次安全公告中,包含一個Windows 10中「Cortana語音助理」默認設置錯誤導致的代碼執行漏洞。

本文將針對該漏洞展開分析,並介紹如何利用該漏洞在Windows 10系統中繞過鎖定螢幕執行代碼。

此漏洞由McAfee實驗室高級威脅研究團隊發現,我們嚴格遵循負責任的漏洞披露政策:

https://www.mcafee.com/enterprise/en-hk/threat-center/advanced-threat-research/disclosure.html

在4月23日將該漏洞的詳細情況提交給Microsoft,微軟於6月12日發布的安全公告中包含了這一漏洞的修復方案。該漏洞的發現者是Cedric Cochin,McAfee網路安全架構師和高級主管工程師。

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第3張

在本文中,我們將詳細分析該漏洞的原理,並在最後演示一個完整的通過代碼執行登錄到鎖定的Windows設備的過程。

利用「你好小娜」語音命令檢索敏感信息

Siri、Alexa、Google Assistant和Cortana(中文版本的名稱為「小娜」)這些數字時代的虛擬助理已經成為許多用戶生活中不可缺少的一部分。他們可以講笑話,可以列出購物清單,可以開啟廚房燈光,甚至可以自定義他們的聲音。可以看出,這些虛擬助理在我們的日常生活中正在扮演者越來越重要的角色。但是,對於攻擊者來說,他們在考慮針對筆記本電腦、平板電腦和智慧型手機的新型攻擊媒介時,顯然也會考慮這些私人助理。在我們團隊閱讀了業界研究人員發表的「BadUSB」攻擊報告

(https://www.csoonline.com/article/3087484/security/say-hello-to-badusb-20-usb-man-in-the-middle-attack-proof-of-concept.html)

之後,我們開始對Cortana語音助理進行研究,最終發現了一些安全問題,並向Microsoft報告。

如果你曾經和Cortana對話過,那麼可能已經注意到「她」能非常完美地執行一些簡單的任務,例如查找某個單詞的含義、查找某個公司的相關信息、搜尋某部電影、某個演員或者某位運動員。甚至,她還可以完成數學運算。在最新版本的Windows 10系統中,我們注意到默認是在鎖定螢幕中啟用「Hey Cortana(你好,小娜)」語音命令功能的,這一功能允許任何人在鎖屏時與虛擬助理進行交互,導致了一些有趣現象的發生,最終導致了任意代碼執行漏洞。

我們首先要分析一下Windows索引。如果大家曾經打開過Windows索引控制面板中的高級視圖,就會看到「文件類型」選項卡,其中有一長串文件擴展名。針對其中的每一個擴展名,我們都能查看到索引過程中所使用的關聯過濾器的詳細信息。其中包括文件屬性過濾器和其他一些過濾器,我們可以將其概括為「文件屬性和文件內容過濾器」。

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第4張

這也就意味著,索引進程會打開文件並對其內容進行查找,包括文檔中的特定字符串。我們首先要了解這一點,然後再繼續研究。

借助已有的這些信息,我們想要在鎖定的設備上嘗試,是否能出現與未鎖定設備相同的Cortana搜尋結果。

嘗試的結果讓我們感到驚訝,這也是此次漏洞的核心所在。在鎖定的設備上,我們只要向Cortana說出關鍵詞,就會出現一個Windows的相關文件列表,如下圖所示。

在解鎖的計算機上,向Cortana搜尋框中鍵入「pas」的結果:

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第5張

在鎖定的計算機上,喊出「Hey Cortana,P——A——S」的結果:

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第6張

在前面的例子中,我們詢問Cortana的詞語是「pas」,只是單純說出了三個英文字母。那我們為什麼不說「pass」呢?原因在於,Cortana對於說出來的詞語非常挑剔,在她的字典中沒有與「pass」相對應的操作,因此會要求用戶解鎖設備然後使用Edge搜尋該詞語。另一種方式,我們也可以不用說出上述內容,而是點擊「Tap and Say」(點擊並說出)按鈕,然後輸入此文本。現在,我們能獲得一個關鍵詞相關文件的列表,可以顯示在鎖定的Windows 10設備上。

由於Cortana提供的所有結果都來自於索引文件和應用程序,並且針對某些應用程序,其文件的內容也被收入到索引之中。因此,我們現在可以將滑鼠懸停在任何相關的匹配結果上。如果是根據文件名匹配的,那麼此時可以看到文件的完整路徑;如果是根據文件內容匹配的,那麼可能會看到文件中的內容。

在這里需要注意的是,整個用戶文件夾也被收入索引,其中包含大多數文檔的默認位置,OneDrive等映射也包括在內。使用Cortana語音命令檢索敏感信息:

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第7張

在掌握了這些原理之後,攻擊者就能夠發揮自己的想像力,從鎖定設備中收集到特定的機密關鍵字。

在Windows螢幕鎖定情況下執行代碼

接下來,我們產生了這樣一個疑問:是否可以進一步以授權用戶的身份來執行特定代碼?請大家記住,我們這個時候只能使用語音命令,並配合滑鼠、觸控板、觸摸屏等設備來訪問Cortana給出的搜尋結果列表。我們觀察到,只需將滑鼠懸停在文件上,就會顯示出文件的完整路徑或內容。那麼如果我們點擊文件會發生什麼呢?這其實取決於文件的類型,如果文件是應用程序或可執行文件,那麼該文件將運行,並且只有用戶正確登錄後才可以訪問。如果文件是文檔、腳本或文本文件,那麼該文件將會被相應的編輯器打開,而不能被執行。

基於此,我們可以執行各種預加載的Windows實用程序(例如計算器),但是我們不能將任何參數傳遞到命令行。我們可以打開包括PowerShell在內的腳本,但不會被執行,這些腳本將在文本編輯器(記事本)中打開。我們現在遇到的困境就是缺少參數,攻擊者只能利用本機現有的內容來做到惡意目的。然而,即使有上述限制,攻擊者仍然可以執行大量的惡意活動。舉例來說,許多卸載程序都可以直接卸載軟件,而不需要任何參數。

讓我們回歸到一開始的目標:在鎖定螢幕執行代碼。要想讓某個內容在搜尋結果列表中顯示,唯一要求就是讓該文件包含在索引範圍中。

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第8張

對於未經身份驗證的攻擊者來說,有多種方式可以得到想要的索引結果。其中一種方法是依賴於OneDrive。由於OneDrive目錄結構的根目錄位於用戶文件夾內,因此默認情況下會對OneDrive的所有內容進行索引。如果用戶曾經共享過一個具有「編輯」權限的文件夾,那麼共享的人員以及任何其他通過轉PO的鏈接訪問的用戶都可以將一個文件放入被索引的目錄下。通過索引的文件,我們能做到多種類型的攻擊。

方案1:投放可執行文件

此方法假定攻擊者可以將可執行文件寫入磁盤,但不需要執行。通過網路釣魚攻擊或者其他漏洞,攻擊者可以投放一個後門(例如Cobalt Strike Beacon或Meterpreter),並開始後續的惡意活動。如果需要以管理員身份執行Payload,攻擊者可以右鍵點擊(或觸摸屏上長按)該文件,並選擇「以管理員身份運行」。

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第9張

當攻擊者試圖運行一個沒有自動提升權限的應用程序時,將會觸發用戶帳戶控制(UAC)提示,並且系統將不會執行任何操作。然而,由於用戶很少會耐心閱讀提示的內容,通常會習慣性點擊警告對話框中的同意按鈕,因此這同樣可能導致有效的攻擊。其具體方式是,攻擊者首先執行該程序,然後合法等待用戶登錄並點擊警告對話框中按鈕後做到惡意代碼的執行。如果該應用程序能夠自動提升權限,則不會再出現UAC的警告,會直接執行該應用程序。

這是一個非常有趣的行為,但可能不會作為一個攻擊者常用的攻擊場景,所以讓我們繼續研究其他的方案。此時,我們考慮到既然能夠對設備進行物理接觸,為什麼不使用USB Key來投放Payload呢?USB Key的內容沒有加入到索引之中,因此不會作為搜尋查詢的結果呈現出來。(後文中還有其他USB設備的利用方案,請繼續閱讀)

方案2:投放一個非PE的Payload

盡管可移植可執行(PE)後門很棒,但我們在考慮,是否還可以通過非PE的Payload(例如PowerShell腳本)來做到代碼執行?我們可以使用相同的右鍵功能來輔助完成,只需要稍作調整即可。即使是針對特定的文件類型,它們的右鍵菜單也不總是相同的。

當我們向Cortana詢問「PS1」時,可以看到索引中出現PowerShell腳本。通過右鍵點擊,我們能夠「打開文件所在位置」或「復制完整路徑」,但不能執行該腳本。

正如前文所描述過的,如果我們單擊該文件,該文件將以編輯模式打開。奇怪的是,系統並不會選擇PowerShell腳本的默認編輯器(PowerShell ISE),而會在記事本中打開腳本。我們理解為這是一種安全措施,與PowerShell ISE不同,記事本不能執行腳本,更具有安全性。

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第10張

我們上文中提到,Cortana會根據用戶的輸入查詢來修改結果。當用戶登錄後,如果以逐個單詞的方式詢問Cortana「txt」,將會顯示出文本文檔、記事本和最近由記事本打開的文檔。然而,針對「最近使用的文件」類別和「文檔」類別中的文件,其右鍵單擊後出現的菜單是不一樣的。「最近」類別中文件的右鍵菜單:

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第11張

「文檔」類別中文件的右鍵菜單:

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第12張

基於此,我們的步驟如下:1、將一個PowerShell腳本放在會被索引的位置,例如公用文件夾、公用共享或OneDrive。2、執行搜尋操作,並點擊搜尋到的腳本:(1) 說出「Hey Cortana, PS1」;(2) 選擇剛剛放置的PowerShell腳本,並且左鍵單擊;(3) PowerShell腳本會在記事本中打開。3、執行最近使用的文本文檔的搜尋操作,右鍵單擊,然後啟動:(1) 使用Cortana,搜尋關鍵詞「txt」;(2) 在「最近使用的文件」選項卡中,找到該PowerShell腳本,並右鍵點擊;(3) 選擇「使用PowerShell運行」。

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第13張

現在,我們使用該Payload來做到本地代碼執行。在最新版本的Windows 10系統上,即使已經鎖定,該代碼也能成功執行。我們剛剛進行的分析過程,有助於我們理解Windows在鎖定和解鎖的系統中,針對應用程序、文檔等不同擴展,具有不同的處理方式。然而,由於其中包含用戶交互過程,因此這種方案可能不符合真實世界中的攻擊場景。我們的嘗試還沒有結束。

無用戶交互登錄到鎖定設備

目前,我們已經可以進行本地代碼執行,但這一過程還有一些限制。首先,我們需要讓Payload加入到索引中,同時,我們無法傳遞命令行參數。這可能是在PowerShell進行攻擊過程中的一個限制因素,因為相應的執行策略可能會阻止它的執行,並且在沒有命令行參數的前提下,我們無法進行「-ExecutionPolicy Bypass」(或其他類似風格的攻擊)。現在,我們必須找到一種方法在用戶的主機上放置PS1腳本,並且可以遠程訪問物理主機或進行登錄。

回顧剛剛的嘗試,我們使用鍵盤輸入,在鎖定螢幕上觸發了搜尋關鍵詞菜單。任何按鍵都能在Cortana收聽用戶語音指令的過程中觸發這一菜單。在此時,我們可以按空格鍵,其原因在於我們此時無法使用退格鍵,並且Windows會自動忽略掉文本結果中的空格。如果我們在Cortana收聽前按鍵,或在早於調用鍵盤輸入的時候按鍵,系統都會提示我們輸入密碼。如果按鍵的時間太晚,Cortana可能又會進入到休眠模式(不偵聽語音指令),或者返回不含關鍵詞菜單的正常結果。

除了語音指令外,使用鍵盤的方式可能不是太直觀,但如果觸發了Cortana的偵聽,就可以按照在解鎖後Windows中的方式來輸入搜尋內容。下面的截圖中展示了如下步驟:1、通過「Tap and Say」或「Hey Cortana」觸發Cortana的偵聽;2、問一個問題,例如:「現在幾點」;3、按下空格鍵,出現關鍵詞菜單;

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第14張

4、按下ESC鍵,菜單消失;5、再次按下空格鍵,出現關鍵詞菜單,但此時沒有關鍵詞,所以查詢結果是空的;6、開始輸入,注意在輸入過程中不能使用退格鍵Backspace;7、在輸入命令後,單擊「命令」類別中的條目(只有當輸入被識別成命令後,才會顯示這一類別);8、我們可以點擊右鍵,選擇「以管理員身份運行」(但需要注意,必須在用戶登錄後才能關閉UAC防護機制)。我們可以使用下面示例中的簡單PowerShell命令來進行嘗試,該試驗在鎖定的Windows上執行。

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第15張

至此,我們就可以進行任何想要的操作了。我們的demo中展示了如何借助此技術在Windows 10操作系統上做到密碼重置及登錄

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第16張

防范方式

在受漏洞影響且未修復的主機上,最簡單的緩解方法是關閉「鎖定螢幕上啟用Cortana」功能。通過本周微軟官方發布的CVE-2018-8140補丁,可以做到該漏洞的修復。至此,我們對Cortana的研究告一段落。然而,聲控命令和個人虛擬助理這方面的安全性還需要更持續地研究,我們只是恰好抓住了其中的一個漏洞。

譯文聲明

本文是翻譯文章,文章來源:

https://securingtomorrow.mcafee.com/原文地址:

Want to Break Into a Locked Windows 10 Device? Ask Cortana (CVE-2018-8140)

譯文僅供參考,具體內容表達以及含義原文為準

如何利用微軟語音助理Cortana繞過Win10鎖屏(CVE-2018-8140) 科技 第17張

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!