解讀“重定向SMB”攻擊

wyzsk發表於2020-08-19
作者: 騰訊電腦管家 · 2015/04/17 17:06

前幾天Cylance釋出了一個影響Windows系統的漏洞,攻擊者可以透過重定向到SMB協議的方式,利用“中間人攻擊”來盜取使用者認證資訊。這個攻擊究竟是怎麼回事?“重定向SMB”又是什麼呢?電腦管家漏洞防禦團隊對這些問題做了詳細的技術分析,現將分析結果分享給大家。

0x01 SMB/SMB2(Server Message Block)


先簡單介紹一下這次事件的主角SMB。

SMB是對CIFS(Common Internet File System)協議的擴充套件,主要用於訪問網路上的共享檔案以及列印服務。SMB和其它協議的關係如下:

enter image description here

SMB可以直接使用TCP埠進行傳輸(埠445),也可以使用NetBIOS進行傳輸(TCP埠139)。以直接TCP埠傳輸為例,每一條SMB訊息必須有一個4位元組的包頭。包頭第一個位元組為0(network byte order,下同),緊跟著的3位元組表示SMB訊息的長度;包體是變長的。

enter image description here

在windows vista以後,引入了SMB2協議,在原有的SMB協議基礎上擴充套件了部分欄位。

SMB/SMB2認證有多種協議,使用最多的就是NTLM認證協議。

NTLM支援 Challenge/Response方式進行加密通訊,安全認證的訊息序列如下:

enter image description here

0x02 利用HTTP重定向到SMB協議


以Win7x86+IE11為例,看看IE如何處理HTTP返回的重定向請求。

enter image description here

enter image description here

IE獲得HTTP請求返回的狀態碼後,如果是代表重定向的301、302、303、307,跳轉到處理重定向的邏輯,呼叫CINetHttp::RedirectRequest處理重定向請求。

構造一個重定向到file協議的網頁

enter image description here

當IE訪問這個網頁時,可以抓到訪問SMB伺服器的資料包

enter image description here

可見本機當前使用者的登入憑證透過SMB2協議傳送伺服器進行認證了。如果這個伺服器(上圖中的10.4.75.32)是被惡意劫持過的“中間人”,那麼使用者的登入憑證就洩漏了。

可能的攻擊方式不侷限於網頁訪問,只要能夠劫持正常的HTTP網路請求,就可以重定向到SMB協議將個人資訊傳送到惡意伺服器上。

0x03 防範建議


可以看到,重定向到SMB協議是一個很大的隱患,非使用者主動發起的SMB請求都應該禁止;透過SMB協議訪問外網共享伺服器時也需要特別謹慎。

作為防範建議,可以關閉對TCP 139和445埠的訪問。如果確實需要訪問網路上的共享檔案或者是列印服務,在確認伺服器可信的前提下,臨時開啟TCP 139和445的埠訪問。

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章