关于CVE-2019-0708漏洞浅析,和POC验证整理

1. 漏洞情况:

微软公司于2019年5月14日发布重要安全公告,其操作系统远程桌面(Remote Desktop Services),俗称的3389服务存在严重安全漏洞(编号CVE-2019-0708):攻击者在没有任何授权的情况下,可以远程直接攻击操作系统开放的3389服务,在受害主机上执行恶意攻击行为,包括安装后门,查看、篡改隐私数据,创建拥有完全用户权限的新账户,影响范围从Windows XP到Windows 2008 R2。由于3389服务应用广泛且该漏洞利用条件低,只要服务端口开放即可,导致该漏洞影响和危害程序堪比“WannaCry”。因此,微软额外为Windows XP、Windows 2003这些已经停止支持的系统发布了该漏洞的安全补丁。

2. 漏洞概要

*QQ截图20190605101736.jpg**

3. 预防与修复建议:

  1. 升级微软官方补丁:

Windos XP、Windows 2003等老旧系统需手动下载补丁:https://support.microsoft.com/en-ca/help/4500705/customer-guidance-for-cve-2019-0708;

Windows 7、Windows 2008系统自动升级即可,手动升级可到如下链接下载补丁:https://www.catalog.update.microsoft.com/Search.aspx?q=KB4499175;

  1. 如非必要,请关闭远程桌面服务;

4. 打补丁前后比较:

通过分析打补丁前后差异在于 termdd.sys 文件的 IcaBindVirtualChannels 及 IcaReBindVirtualChannels ,增加了对 MS_T120 协议通道的判定,如果是通道协议名为 MS_T120 ,则设定 IcaBindChannel 的第三个参数为 31 。

2.jpg

服务端在初始化时,会创建名为MS_T120、 Index 为 31 的通道,在收到 MCS Connect Initial 数据封包后进行通道创建和绑定操作,在 IcaBindVirtualChannels 函数中进行绑定时, IcaFindChannelByName 函数只根据通道名进行通道查找。当通道名为 MS_T120 (不区分大小写)时,会找到系统内部通道 MS_T120 的通道并与之绑定,绑定后,通道索引会即被更改为新的通道索引。

5. 漏洞复现和POC验证:

验证环境和脚本
Windows7(靶机) (VM下NAT模式或桥接模式)
kali Linux(验证机)
Python3 需要安装POC依赖 OpenSSL,impacket.structure
Poc(验证脚本-蓝屏) https://github.com/1amfine2333/CVE-2019-0708
Poc(未验证) https://github.com/Ekultek/BlueKeep
Poc(基于poc正在开发exp的项目) https://github.com/algo7/bluekeep_CVE-2019-0708_poc_to_exploit
5.1 已经开启远程连接,且网络设置正确:

5.2 验证机中克隆POC,开始验证:

5.3 靶机windows7 蓝屏重启:

6.总结与延伸:

可供验证的POC有很多,仅仅作为漏洞复现,采用了最直观的一种,整理的比较简略,后续可结合shodan,zoomeye等api,编程对具有潜在漏洞特征的目标,实现自动化信息采集和检测。


  转载请注明: 苦乐随缘

 上一篇
Linux反弹shell(一)文件描述符与重定向 Linux反弹shell(一)文件描述符与重定向
0X00 前言由于在反弹shell的过程中有一些非常精简的语句,但是一直没有深入理解,只是作为一个伸手党/搬运工,于是下定决心要将其弄明白,而这里面最难的也就是文件描述符和重定向的部分,因此我特地写一篇文章单独解释这个问题。 0X01 文
2019-06-15
下一篇 
Fiddler大解析!抱歉,抓包抓得好真的可以为所欲为 Fiddler大解析!抱歉,抓包抓得好真的可以为所欲为
说起抓包,很多人以为就是用个工具,简简单单地抓一下就可以了。 在这里,我必须发一个教程,解析一下抓包神器——Fiddler。 Fiddler仅仅是一个抓包工具?不好意思,Fiddler用得好,真的可以为所欲为。 Fiddler的作者 Fi
2019-06-02
  目录