关于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. 漏洞概要:
***
3. 预防与修复建议:
- 升级微软官方补丁:
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;
- 如非必要,请关闭远程桌面服务;
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. 漏洞复现和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,编程对具有潜在漏洞特征的目标,实现自动化信息采集和检测。