EternalBlue的漏洞攻擊碼在五月成為受人注目的焦點,因為它和過去數周出現的大規模惡意軟體攻擊大有關聯 – 知名的 WannaCry(想哭) 勒索蠕蟲、無檔案勒索病毒UIWIX、SMB蠕蟲 EternalRocks以及電子貨幣採礦惡意軟體Adylkuzz。
EternalBlue(微軟釋出MS17-010修補)是關於Windows SMB 1.0(SMBv1)伺服器如何處理特定請求相關的安全漏洞。一旦攻擊成功,就可以讓攻擊者在目標系統上執行任意程式碼。EternalBlue及其他被駭客集團Shadow Broker所流出漏洞攻擊碼的嚴重性和複雜性被認定為中到高的程度。
趨勢科技進一步的研究EternalBlue內部運作來更加地了解此漏洞攻擊如何運作,並提供關於此漏洞攻擊肆虐世界各地不同產業組織的技術見解。
《延伸閱讀》與 WannaCry 較勁?!「EternalRocks」一口氣用同個駭客集團外流的七個漏洞展開攻擊
漏洞分析
Windows SMBv1的核心函式srv!SrvOs2FeaListToNt在處理檔案延伸屬性(FEA)時,Large Non-Paged核心集區記憶體(kernel pool memory)存在緩衝區溢位的漏洞。srv!SrvOs2FeaListToNt在將FEA列表轉換成NTFEA(Windows NT FEA)列表前會呼叫srv!SrvOs2FeaListSizeToNt來計算所接收FEA列表的大小。按順序進行下面操作:
- srv!SrvOs2FeaListSizeToNt會計算FEA列表大小和更新所接收FEA列表大小
- 因為錯誤的WORD類型轉換造成FEA大小比原值大
- 當FEA列表重複地被轉換為NTFEA列表時,非分頁集區(non-page pool)會出現溢位,因為原本的總列表大小被誤算
溢位分析
我們的溢位分析是根據srv.sys 6.1.7601.17514_x86。有漏洞的程式碼可以用srv!SrvSmbOpen2觸發。追踪如下:
00 94527bb4 82171149 srv!SrvSmbOpen2
➜ SrvOs2FeaListSizeToNt() 繼續閱讀








