2020年年初,微軟釋出了一個緊急補丁,以修復SMBv3的漏洞,該漏洞編號為CVE-2020-0796。
CVE-2020-0796的可蠕蟲性讓人想起永恆之藍,永恆之藍是SMBv1中的一個遠端程式碼執行(RCE)漏洞,也就是災難性惡意軟體WannaCry的主要媒介。一旦攻擊者成功利用CVE-2020-0796,遠端攻擊者就可以完全控制存在漏洞的系統,所以被稱為“永恆之黑”。
受永恆之黑影響的系統
Windows 10版本1903(用於32位系統)
Windows 10版本1903(用於基於ARM64的系統)
Windows 10版本1903(用於基於x64的系統)
Windows 10版本1909(用於32位系統)
Windows 10版本1909(用於基於ARM64的系統)
Windows 10版本1909(用於基於x64的系統)
Windows Server 1903版(伺服器核心安裝)
Windows Server 1909版(伺服器核心安裝)
永恆之黑的漏洞利用機制
srv2.sys中的Srv2DecompressData函式中存在一個整數溢位錯誤。當SMB伺服器收到格式錯誤的SMB2_Compression_Transform_Header時,可以觸發此漏洞。此函式建立一個緩衝區,用於儲存解壓縮的資料,該函式透過將“ OriginalSize”新增到“ Offset”來計算緩衝區大小,導致ECX暫存器中的整數溢位。一旦計算出緩衝區大小,它將大小傳遞給SrvNetAllocateBuffer函式來分配緩衝區。
隨後,核心呼叫了RtlDecompressBufferXpressLz函式來解壓縮LZ77資料。上面的螢幕截圖顯示,核心使用“ rep movs”指令將0x15f8f(89999)位元組的資料複製到緩衝區中,該緩衝區的大小先前分配為0x63(99)位元組,導致緩衝區溢位,從而導致記憶體損壞和核心崩潰。
永恆之黑屬於SMB記憶體損壞漏洞,其可蠕蟲性可能能夠利用此漏洞感染並透過網路傳播,這與WannaCry勒索軟體在2017年利用SMB伺服器漏洞的方式十分類似。
攻擊者是如何利用永恆之黑的?
攻擊者利用永恆之黑的攻擊手段主要有三種。
手段一:在某些公司網路上加入域時,會自動開啟SMB埠,從而使該計算機暴露於遠端攻擊形式,利用該漏洞,開發或使用漏洞利用的攻擊者可以完全控制該計算機。
手段二:攻擊者的另一種情況是建立自己的SMB伺服器,然後誘使使用者連線到其惡意伺服器。這種攻擊可能採取垃圾郵件或即時訊息的形式,並帶有指向託管惡意程式碼的邪惡SMB伺服器的連結。如果攻擊者說服使用者單擊連結,或者只是遠端系統上的共享名(或對映的驅動器),那麼惡意伺服器將傳送該連結,並立即獲得對其的完全控制。
手段三:攻擊者首先透過其他方式破壞計算機,例如,透過成為開啟惡意附件的受害者成為受害者。隨後,攻擊者可以利用永恆之黑來修改核心的關鍵元件以獲得SYSTEM特權,使攻擊者幾乎可以在計算機上執行任何操作。
永恆之黑應當如何避免?
系統安全防護不足,風險最大的無疑是企業核心資料。為了讓企業有效防護永恆之黑的漏洞利用攻擊,我們對比了三種可行的防護方案:
目前全球範圍可能存在永恆之黑漏洞的主機總量約10萬臺,首當其衝成為駭客攻擊的目標,若被蠕蟲化利用可導致資料丟失、資訊洩露、伺服器癱瘓等情況。傳統安全防護措施在此類高階威脅面前已經失效,核心資料與業務必須得到更進一步的保障。安芯網盾智慧記憶體保護系統透過虛擬化監測記憶體異常,透過網路過濾僅允許合法的SMB通訊,正常的業務通訊不受影響,同時阻止了主機之間的其餘橫向移動,輕鬆解決永恆之黑和其他關鍵漏洞。
參考連結:
[1]https://news.sophos.com/en-us/2020/03/12/patch-tuesday-for-march-2020-fixes-the-serious-smb-bug-cve-2020-0796/
[2]https://paper.seebug.org/1168/
[3]https://www.sans.org/blog/microsoft-smbv3-11-vulnerability-and-patch-cve-2020-0796-explained/
[4]https://www.avesnetsec.com/cve20200796
[5]https://medium.com/@knownsec404team/cve-2020-0796-windows-smbv3-lpe-exploit-poc-analysis-c77569124c87
[6]https://www.exploit-db.com/exploits/48267
[7]https://www.fortinet.com/blog/threat-research/cve-2020-0796-memory-corruption-vulnerability-in-windows-10-smb-server
[8]https://blog.51cto.com/liulike/2478684
[9]https://blog.rapid7.com/2020/03/12/cve-2020-0796-microsoft-smbv3-remote-code-execution-vulnerability-analysis/