作者: 啟明星辰ADLab
公眾號:https://mp.weixin.qq.com/s/5WRJUPgPXU2Ja_R6pRPh_g
1. 背景
2019 年 5 月 14 日微軟官方發布緊急安全補丁,修復了 Windows 遠程桌面服務的遠程代碼執行高危漏洞 CVE-2019-0708(CNVD-2019-14264、CNNVD-201905-434),該漏洞影響了某些舊版本的 Windows 系統。由于該漏洞無需身份驗證且無需用戶交互,所以這個漏洞可以通過網絡蠕蟲的方式被利用,利用此漏洞的惡意軟件可以從被感染的計算機傳播到網絡中其他易受攻擊的計算機,傳播方式與 2017 年 WannaCry 惡意軟件的傳播方式類似。
2. 影響范圍
- Windows 7
- Windows Server 2008
- Windows Server 2008 R2
- Windows 2003
- Windows XP
3. RDP協議簡介
RDP 是微軟終端服務應用的協議,服務端基于 Windows 操作系統,Windows 從 NT 開始提供終端服務。RDP 協議基于 T.128(T.120 協議族)提供多通道通信,并進行了拓展。

RDP 協議的連接流程可以分為 10 個不同的階段。這里我們關注通道連接相關的幾個階段。
(1)ConnectionInitiation(連接初始化)
客戶端通過向服務器發送Class 0 X.224 ConnectionRequest PDU啟動連接請求。服務器使用Class 0 X.224 Connection Confirm PDU進行響應。之后,客戶端和服務器之間發送的所有后續數據都被包裹在X.224數據協議數據單元(PDU)中。
(2) BasicSettings Exchange(交換基本設置)
通過使用MCS Connect Initial PDU和MCS Connect Response PDU在客戶端和服務器之間交換基本設置。GCC 的全稱是 Generic Conference Control,GCC 作為 T.124 的標準協議,用于連續傳輸大量數據時,將數據整理分塊傳輸。
(3)Channel Connection (虛擬通道連接)
客戶端通過發送multiple MCS Channel Join Request PDUs加入用戶信道,輸入/輸出通道及所有的靜態虛擬通道(IO 和靜態虛擬通道 ID信息在 GCC 數據包中)。服務器通過MCS Channel Join Confirm PDU回復每個通道。
4. 補丁分析
通過補丁包分析,我們發現補丁前后差異在于termdd.sys文件的 IcaBindVirtualChannels及IcaReBindVirtualChannels,增加了對MS_T120協議通道的判定。如果是通道協議名為MS_T120,則設定IcaBindChannel的第三個參數為 31 。

服務端在初始化階段,會創建MS_T120, Index 為 31 的通道。在收到MCS Connect Initial數據封包后進行通道創建和綁定操作。
在IcaBindVirtualChannels函數中進行綁定時,IcaFindChannelByName函數只根據通道名進行通道查找。當通道名為MS_T120(不區分大小寫)時,會找到系統內部通道 MS_T120的通道并與之綁定,綁定后,通道索引會即被更改為新的通道索引。
5. 漏洞原理分析
我們在客戶端MCS Connect Initial數據封包中,增加一個名為MS_T120的通道。

接下來,我們釋放這個 Channel 。我們向MS_T120通道發送構造的數據,但由于這個通道已經被綁定到內置的MS_T120通道,所以數據最終會派發到相應的處理函數rdpwsx!MCSProtData中,然后調用MCSChannelClose函數關閉通道。

此后,我們向系統的MS_T120通道發送數據,再次引用被關閉的通道,從而導致 UAF 漏洞。

6. 解決方案
- 目前啟明星辰已經發布了對應的產品級解決方案,相關鏈接:https://www.venustech.com.cn/article/1/9148.html。
- 對于 Windows 7 及 Windows Server 2008 的用戶,及時安裝 Windows 發布的安全更新。
- 對于 Windows 2003 及 Windows XP 的用戶,及時更新系統版本。
- 臨時危害減輕措施:開啟網絡身份驗證(NLA)。請注意如果攻擊者擁有合法的網絡身份,依然可以繞過該身份驗證,利用漏洞攻擊目標主機。
啟明星辰積極防御實驗室(ADLab)
ADLab成立于1999年,是中國安全行業最早成立的攻防技術研究實驗室之一,微軟MAPP計劃核心成員,“黑雀攻擊”概念首推者。截止目前,ADLab已通過CVE累計發布安全漏洞近1000個,通過 CNVD/CNNVD累計發布安全漏洞近500個,持續保持國際網絡安全領域一流水準。實驗室研究方向涵蓋操作系統與應用系統安全研究、移動智能終端安全研究、物聯網智能設備安全研究、Web安全研究、工控系統安全研究、云安全研究。研究成果應用于產品核心技術研究、國家重點科技項目攻關、專業安全服務等。

本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/937/
暫無評論