當(dāng)你正用瀏覽器訪問網(wǎng)站時,Windows的一個古老漏洞就可能泄露了你電腦的用戶名密碼、微軟登錄信息,甚至還有你VPN的賬號密碼。
多年以前當(dāng)Windows還在使用單核處理器和256M的RAM的時候,微軟的員工想出了單點登錄,也就是說你只需要登錄一次,就能夠訪問所有的內(nèi)部資源,無需再次訪問。
當(dāng)用戶使用NTLM驗證方式時,操作系統(tǒng)會發(fā)送域名、用戶名和密碼哈希值給對方主機。只有驗證不成功時才會出現(xiàn)登錄框。但是現(xiàn)在看來,這樣的機制是不安全的。因此,微軟修復(fù)了一些問題,有些修復(fù)了一般,還有一些根本沒有修復(fù),以至直到今天還能被利用。
這些沒有修復(fù)的漏洞中其中一個就是系統(tǒng)會把賬號登錄信息傳輸給SMB服務(wù)器。SMB是一個使用非常廣泛的協(xié)議,它能夠訪問網(wǎng)絡(luò)共享的文件、文件夾、打印機等。SMB的這個漏洞幾乎每年都會提一次,去年的Blackhat US 2015也提過,但好像微軟根本不打算修復(fù)的樣子,安上最新更新的Windows 10仍然存在這個漏洞。
工作原理
當(dāng)你用標(biāo)準(zhǔn)瀏覽器(IE或Edge)訪問帶有SMB資源的鏈接或者使用含有標(biāo)準(zhǔn)Windows API或者使用IE做HTML渲染的程序(如Outlook),SMB服務(wù)器會在你看到登錄提示框之前就獲取到你的賬號密碼。攻擊者只需網(wǎng)頁或者郵件中添加一個指向SMB資源的鏈接或者隱藏的圖片,你的賬號信息就被竊取了。不過有的時候危害也沒這么大,因為黑客可能只能獲取到你的用戶名,用戶名還有可能是某個默認的用戶名,至于密碼很多人可能還沒設(shè)定。要想通過那些信息進行進一步的攻擊難度很大。
不過如果涉及到企業(yè)的域帳號,危害就不同了。首先,從域的名字很容易判斷電腦屬于哪個公司,然后攻擊者可以從hash爆破出密碼,之后就可以嘗試訪問公司內(nèi)部資源了。
有時候也不一定要爆破密碼,如果你事先知道哪個host有NTLM驗證的話,只要客戶端連接上了你的SMB服務(wù)器的話,就可以對認證進行實時的代理。
Windows 8和微軟賬號
新的Windows版本都和互聯(lián)網(wǎng)緊密結(jié)合,基本上不讓你創(chuàng)建本地賬號,而是要你創(chuàng)建一個微軟賬號。沒有用微軟賬號就無法使用OneDrive和Cortana。
基本上這方面的研究都是在Windows 8之前做的,在Blackhat的ppt里面也沒怎么提到微軟賬戶。但其實,當(dāng)使用Windows 8, 8.1和10系統(tǒng)時,傳輸?shù)牟皇悄惚镜刭~號的數(shù)據(jù),而是微軟賬號的登錄信息!
原本這個漏洞只能對企業(yè)用戶產(chǎn)生大的危害,現(xiàn)在還可以用來針對家庭用戶了。
新發(fā)現(xiàn)
當(dāng)筆者在測試問題的時候,我發(fā)現(xiàn)3個舊的Windows 10與簡化的SMB服務(wù)器工作正常(Responder, Impacket),但新安裝的Windows不行。幾天后我發(fā)現(xiàn),NetBIOS和工作站名稱得要相同才行。但如果你連接了系統(tǒng)自帶的,有MSCHAPv2認證的VPN連接協(xié)議(IPsec, PPTP, L2TP),Windows就不會傳輸你的賬號密碼了,而是傳輸VPN用戶名密碼hash?。∥艺J為原因可能出在MSCHAPv2上,不過Wi-Fi WPA-Enterprise (PEAP/MSCHAPv2)協(xié)議下不行。
如何利用
現(xiàn)在我們知道只要我們試圖打開遠程SMB服務(wù)器上的任何文件或者目錄,系統(tǒng)都會自動把賬號密碼或者VPN的賬號密碼傳輸過去。那我們應(yīng)該如何利用呢?
大部分郵箱的web界面都會過濾file://,但是Yandex郵箱卻沒有過濾。Yandex是俄羅斯最大的郵箱提供商。這種攻擊危害更大,因為它不僅能夠把用戶名和IP關(guān)聯(lián)起來,還會把郵件也關(guān)聯(lián)起來。
Chrome也支持file://,但是只會在復(fù)制粘貼或者直接在地址欄輸入時才會生效。Chrome比IE流行很多,因此我們有必要做一些社會工程學(xué)來誘騙用戶復(fù)制粘貼或者手動輸入。
我們竊取到的信息可以用作很多用途。很多VPN服務(wù)商的管理賬號和VPN連接本身的用戶名密碼是一樣的,從IP地址我們在可以判斷VPN是哪家供應(yīng)商的,足夠幸運的話我們就可以把別人的VPN拿來用了。而拿到了微軟賬號,我們可以爆破hash,然后就可以訪問它的OneDrive文件、Outlook郵件、Skype賬號了。
如何自保?
別以為你不用IE不打開file://就安全了。你還是有可能會不小心運行某個不安全的程序。程序可能沒有權(quán)限直接獲取你的密碼,但是它可以用標(biāo)準(zhǔn)函數(shù)如URLDownloadToFile()發(fā)送請求到遠程服務(wù)器,你的賬號可能就這樣被盜了。
要想修復(fù)問題,我們可以新建一個reg文件,內(nèi)容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaMSV1_0]
"RestrictReceivingNTLMTraffic"=dword:00000002
"RestrictSendingNTLMTraffic"=dword:00000002
另一種方法是用防火墻把所有的SMB流量都禁掉。只需要把所有445 TCP端口的流量都禁掉,除了一下這些目標(biāo)IP段:
192.168.0.0/16
169.254.0.0/16
172.16.0.0/12
10.0.0.0/8
fd00::/8
fe80::/10
有些ISP已經(jīng)幫你把他們屏蔽掉了。
結(jié)語
作者已經(jīng)把NTLM hash泄露檢測加入到了WITCH?網(wǎng)站里了。小編使用IE瀏覽器確實發(fā)現(xiàn)了我的用戶名:
大家也可以用IE或者Edge打開,看看你的賬號密碼有沒有泄露?網(wǎng)站會嘗試抓取你的密碼并用一個小字典嘗試爆破。連個VPN再訪問成功幾率更高哦
有些VPN服務(wù)商已經(jīng)知道了這個問題,他們通過屏蔽445端口,或者在客戶端軟件屏蔽解決了這一問題。
很遺憾,大部分流行的爆破軟件都不能破解NTLMv2哈希。Hashcat會跳過一些,John The Ripper with OpenCL也是,哪怕把密碼都放在字典里了還是無法破解。oclHashCat, Hashcat 3.0和John The Ripper的non-OpenCL版本可以破解。