您好,登錄后才能下訂單哦!
微軟RDP遠程代碼執行漏洞CVE-2019-0708的分析是怎樣的,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
20190514,微軟發布補丁,修復了一個嚴重的RDP遠程代碼執行漏洞。該漏洞無需身份認證和用戶交互,可能形成蠕蟲爆發,影響堪比wannycry。
Windows 7
Windows Server 2008 R2
Windows Server 2008
Windows Server 2003
Windows XP
poc已出,重現幾個網上主流的poc:
1)360的0708detector.exe(無損掃描工具)
//感覺不是很穩定,對同個ip有時成功有時不成功……
一些根據此工具寫的批量
https://github.com/biggerwing/CVE-2019-0708-poc
https://github.com/autoing/CVE-2019-0708-POC
2)https://github.com/zerosum0x0/CVE-2019-0708
包含了msf的rb
git clone https://github.com/zerosum0x0/CVE-2019-0708.gitcd CVE-2019-0708/rdesktop-fork-bd6aa6acddf0ba640a49834807872f4cc0d0a773/./bootstrap./configure –disable-credssp –disable-smartcardmake./rdesktop 192.168.1.7:3389
可能要apt-get install libssl1.0.0 libssl-dev
用scan_with_docker.py可以批量
//較穩定
3)https://github.com/Ekultek/BlueKeep.git
可以批量
先安裝impacket
https://github.com/SecureAuthCorp/impacket
pip install -r requestments.txtpip install .vim bluekeep_poc.py
刪除重復的一個impacket
4)https://github.com/robertdavidgraham/rdpscan
可批量
//較不穩定
5)https://github.com/Leoid/CVE-2019-0708
pip3 install impacket
6)https://github.com/n1xbyte/CVE-2019-0708
//20190531新增藍屏poc,用03standx86測試出現
OpenSSL.SSL.SysCallError: (104, ‘ECONNRESET’)
應該是這個03系統問題
直接找幾個僵尸主機測一測
//效果不錯!
7)https://github.com/closethe/CVE-2019-0708-POC
試了幾個都是timed out,可能是poc未完善……
其他一些poc(未測試):
https://github.com/skyshell20082008/CVE-2019-0708-PoC-Hitting-Path
https://github.com/blacksunwen/CVE-2019-0708(和5基本一樣)
https://github.com/Jaky5155/cve-2019-0708-exp
https://github.com/fourtwizzy/CVE-2019-0708-Check-Device-Patch-Status
https://github.com/trickster0/CVE-2019-0708
https://github.com/algo7/bluekeep_CVE-2019-0708_poc_to_exploit(powershell)
截至發文(20190605),尚未發現公開可用exp,拭目以待!
360的某大神已搞出exp,能在win7 x64彈框了,未公開。
20190606,發現msf可獲取meterpreter的exp,未公開。
https://twitter.com/zerosum0x0/status/1135866953996820480
還有一堆假exp,利用ms12-020、os.system()、alert、假GUI、騙star等等。
www.cve-2019-0708.com(20190529無法訪問了)據說是假的!
RDP 協議基于 T.128(T.120 協議族)提供多通道通信,并進行了拓展。
遠程桌面協議(RDP)支持客戶端建立點到點的連接,并定義了通信雙方在虛擬通道間的數據通信方式,。這種虛擬通道為雙向數據通道,可以擴展RDP的功能。Windows Server 2000在RDP v5.1中定義了32種靜態虛擬通道(SVC),但是因為將來要定義的動態虛擬通道數量的限制,因此專用的通道svc數量受到一定限制。SVC是在會話開始時創建的,并在會話終止前保持不變,但DVC不同,因為它是根據用戶需求來創建和刪除的。
服務端在初始化階段,會創建MS_T120, Index 為 31 的通道。在收到MCS Connect Initial數據封包后進行通道創建和綁定操作。
在IcaBindVirtualChannels函數中進行綁定時,IcaFindChannelByName函數只根據通道名進行通道查找。當通道名為MS_T120(不區分大小寫)時,會找到系統內部通道 MS_T120的通道并與之綁定,綁定后,通道索引會即被更改為新的通道索引。
參考mcafee,seebug
本人用win7sp1 x64進行測試
查看termdd.sys,有修改
對比補丁前后
13628這個子模塊變化比較大,先看看
發現加了stricmp比較,和ms_t120這個通道比較,為0就用寫死的v19即31(rdp通道編號)作為第三個參數傳入13ec8這個子模塊,所以這里可以看出漏洞點應該是ms_t120這個通道,是就觸發漏洞。
//bindiff沒解析出_IcaBindChannel和_IcaBindVirtualChannels。
在安全機制啟用前,系統初始化了RDP連接序列,并完成通道的建立,這導致了該漏洞可形成蠕蟲。
在rdp的gcc協商初始化序列中,ms_t120這個svc會被綁定作為引用通道31。
這個通道編號31在microsoft內部使用,在客戶端請求連接中不會出現ms_t120這個svc。
但是在GCC協商初始化的過程中,客戶端提供的通道名稱并不在服務器端的白名單中,這意味著攻擊者將能夠設置另一個名為“MS_T120”的不在編號31的SVC通道,這導致目標系統發生堆內存崩潰并實現遠程代碼執行。
MS_T120引用通道會在rdpwsx.dll中創建,堆內存也會在rdpwp.sys中分配內存池。當MS_T120引用通道在通道編號非31的場景下建立時,便會發生堆內存崩潰。
微軟在termdd.sys的_IcaBindVirtualChannels和_IcaRebindVirtualChannels兩個函數中為客戶端的連接請求部分添加了針對通道名稱“MS_T120”的檢查代碼,來保證ms_t120是和通道31進行綁定。
利用wireshark獲取rdp數據包(winn2003stand without 0708 patch)
正常rdp連接:
tcp三次握手后發送rdp數據,利用decode as tpkt解出rdp數據包
//第二遍tcp握手后(neg req=fff)才開始發clientdata
沒有ms_t120通道信息
利用360無損檢查工具發送的數據包(neg req=fff)
此處本人推測ms_t120通道編號是1,channelCount就是channelDefArray元素數,驗證漏洞存在!
利用./rdesktop(第二個poc)對某僵尸主機發送的數據包:
此時推測ms_t120通道編號為2,驗證漏洞存在!
利用藍屏crashpoc.py對某僵尸主機發送的數據包:
本人才疏學淺,對rdp不甚了解,只能從淺層大概分析,高手可參考相關分析資料。
相關分析資料:
英文:
https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/rdp-stands-for-really-do-patch-understanding-the-wormable-rdp-vulnerability-cve-2019-0708/(推薦)
https://medium.com/@straightblast426/a-debugging-primer-with-cve-2019-0708-ccfa266682f6https://wazehell.io/2019/05/22/cve-2019-0708-technical-analysis-rdp-rce/
https://www.malwaretech.com/2019/05/analysis-of-cve-2019-0708-bluekeep.html
https://medium.com/@ab_65156/proactive-detection-content-cve-2019-0708-vs-mitre-att-ck-sigma-elastic-and-arcsight-22f9ebae7d82
https://zerosum0x0.blogspot.com/2019/05/avoiding-dos-how-bluekeep-scanners-work.html
https://www.zerodayinitiative.com/blog/2019/5/27/cve-2019-0708-a-comprehensive-analysis-of-a-remote-desktop-services-vulnerability
中文:
https://xz.aliyun.com/t/5295(翻譯zerodayinitiative)
https://www.anquanke.com/post/id/178964(翻譯mcafee)
https://www.anquanke.com/post/id/178966
https://www.giantbranch.cn/2019/05/14/CVE-2019-0708%20%E5%BE%AE%E8%BD%AF%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E6%9C%8D%E5%8A%A1%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90%E4%B9%8B%E8%A1%A5%E4%B8%81%E5%88%86%E6%9E%90/
https://paper.seebug.org/937/
https://mp.weixin.qq.com/s/_MaxpGtDj2D8oENCZ68hKA
https://mp.weixin.qq.com/s/OeJ7W3GxsQedpezTsa6z_Q
1.補丁
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-07082. 開啟NLA網絡級身份驗證減輕危害(利用漏洞就需要身份驗證)
此漏洞危害巨大,一旦exp公開,必會掀起腥風血雨,估計各種勒索挖礦病毒已經蓄勢待發,所以大家抓緊打補丁吧!
關于微軟RDP遠程代碼執行漏洞CVE-2019-0708的分析是怎樣的問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。