1. 程式人生 > >小心Windows舊版認證暴露你的系統帳戶密碼 ntlmv2破解

小心Windows舊版認證暴露你的系統帳戶密碼 ntlmv2破解

1-aw35ew1Qx9r595akz3Tqxw.png

當你正用瀏覽器訪問網站時,Windows的一個古老漏洞就可能洩露了你電腦的使用者名稱密碼、微軟登入資訊,甚至還有你VPN的賬號密碼。

多年以前當Windows還在使用單核處理器和256M的RAM的時候,微軟的員工想出了單點登入,也就是說你只需要登入一次,就能夠訪問所有的內部資源,無需再次訪問。

當用戶使用NTLM驗證方式時,作業系統會發送域名、使用者名稱和密碼雜湊值給對方主機。只有驗證不成功時才會出現登入框。但是現在看來,這樣的機制是不安全的。因此,微軟修復了一些問題,有些修復了一般,還有一些根本沒有修復,以至直到今天還能被利用。

這些沒有修復的漏洞中其中一個就是系統會把賬號登入資訊傳輸給SMB伺服器。SMB是一個使用非常廣泛的協議,它能夠訪問網路共享的檔案、資料夾、印表機等。SMB的這個漏洞幾乎每年都會提一次,去年的

Blackhat US 2015也提過,但好像微軟根本不打算修復的樣子,安上最新更新的Windows 10仍然存在這個漏洞。

工作原理

當你用標準瀏覽器(IE或Edge)訪問帶有SMB資源的連結或者使用含有標準Windows API或者使用IE做HTML渲染的程式(如Outlook),SMB伺服器會在你看到登入提示框之前就獲取到你的賬號密碼。攻擊者只需網頁或者郵件中新增一個指向SMB資源的連結或者隱藏的圖片,你的賬號資訊就被竊取了。不過有的時候危害也沒這麼大,因為黑客可能只能獲取到你的使用者名稱,使用者名稱還有可能是某個預設的使用者名稱,至於密碼很多人可能還沒設定。要想通過那些資訊進行進一步的攻擊難度很大。

不過如果涉及到企業的域帳號,危害就不同了。首先,從域的名字很容易判斷電腦屬於哪個公司,然後攻擊者可以從hash爆破出密碼,之後就可以嘗試訪問公司內部資源了。

有時候也不一定要爆破密碼,如果你事先知道哪個host有NTLM驗證的話,只要客戶端連線上了你的SMB伺服器的話,就可以對認證進行實時的代理。

Windows 8和微軟賬號

新的Windows版本都和網際網路緊密結合,基本上不讓你建立本地賬號,而是要你建立一個微軟賬號。沒有用微軟賬號就無法使用OneDrive和Cortana。

基本上這方面的研究都是在Windows 8之前做的,在Blackhat的ppt裡面也沒怎麼提到微軟賬戶。但其實,當使用Windows 8, 8.1和10系統時,傳輸的不是你本地賬號的資料,而是微軟賬號的登入資訊!

原本這個漏洞只能對企業使用者產生大的危害,現在還可以用來針對家庭使用者了。

新發現

當筆者在測試問題的時候,我發現3箇舊的Windows 10與簡化的SMB伺服器工作正常(Responder, Impacket),但新安裝的Windows不行。幾天後我發現,NetBIOS和工作站名稱得要相同才行。但如果你連線了系統自帶的,有MSCHAPv2認證的VPN連線協議(IPsec, PPTP, L2TP),Windows就不會傳輸你的賬號密碼了,而是傳輸VPN使用者名稱密碼hash!!我認為原因可能出在MSCHAPv2上,不過Wi-Fi WPA-Enterprise (PEAP/MSCHAPv2)協議下不行。

如何利用

現在我們知道只要我們試圖開啟遠端SMB伺服器上的任何檔案或者目錄,系統都會自動把賬號密碼或者VPN的賬號密碼傳輸過去。那我們應該如何利用呢?

大部分郵箱的web介面都會過濾file://,但是Yandex郵箱卻沒有過濾。Yandex是俄羅斯最大的郵箱提供商。這種攻擊危害更大,因為它不僅能夠把使用者名稱和IP關聯起來,還會把郵件也關聯起來。

Chrome也支援file://,但是隻會在複製貼上或者直接在位址列輸入時才會生效。Chrome比IE流行很多,因此我們有必要做一些社會工程學來誘騙使用者複製貼上或者手動輸入。

1-iwyrTvxDUkDJ3P-piKC1-g.png

我們竊取到的資訊可以用作很多用途。很多VPN服務商的管理賬號和VPN連線本身的使用者名稱密碼是一樣的,從IP地址我們在可以判斷VPN是哪家供應商的,足夠幸運的話我們就可以把別人的VPN拿來用了。而拿到了微軟賬號,我們可以爆破hash,然後就可以訪問它的OneDrive檔案、Outlook郵件、Skype賬號了。

1-icWLoKDK9QxklqoSdIe4Gw.png

如何自保?

別以為你不用IE不開啟file://就安全了。你還是有可能會不小心執行某個不安全的程式。程式可能沒有許可權直接獲取你的密碼,但是它可以用標準函式如URLDownloadToFile()傳送請求到遠端伺服器,你的賬號可能就這樣被盜了。

要想修復問題,我們可以新建一個reg檔案,內容如下:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0]
"RestrictReceivingNTLMTraffic"=dword:00000002
"RestrictSendingNTLMTraffic"=dword:00000002

另一種方法是用防火牆把所有的SMB流量都禁掉。只需要把所有445 TCP埠的流量都禁掉,除了一下這些目標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已經幫你把他們遮蔽掉了。

結語

作者已經把NTLM hash洩露檢測加入到了WITCH?網站裡了。小編使用IE瀏覽器確實發現了我的使用者名稱:

1.png

大家也可以用IE或者Edge開啟,看看你的賬號密碼有沒有洩露?網站會嘗試抓取你的密碼並用一個小字典嘗試爆破。連個VPN再訪問成功機率更高哦 :)

有些VPN服務商已經知道了這個問題,他們通過遮蔽445埠,或者在客戶端軟體遮蔽解決了這一問題。

很遺憾,大部分流行的爆破軟體都不能破解NTLMv2雜湊。Hashcat會跳過一些,John The Ripper with OpenCL也是,哪怕把密碼都放在字典裡了還是無法破解。oclHashCat, Hashcat 3.0和John The Ripper的non-OpenCL版本可以破解。

*參考來源:Medium,FB小編Sphinx編譯,轉載請註明來自Freebuf黑客與極客(FreeBuf.COM)