2019年9月7日凌晨,某公司安全团队监测到关于CVE-2019-0708相关情报,该情报披露CVE-2019-0708漏洞利用代码,该EXP可以通过RDP协议进行远程代码执行攻击。官方描述此漏洞相关危害可参考2017年WannaCry事件,某公司强烈建议用户及时安装补丁以避免受到损失。
漏洞名称:Remote Desktop Protocol漏洞
威胁等级:严重
影响范围:Windows XP;Windows 7 ;Windows Server 2003;Windows Server 2008;WindowsServer 2008 R2
漏洞类型:任意代码执行漏洞
利用难度:容易
漏洞概述
CVE-2019-0708,属于任意代码远程执行漏洞,当未经身份验证的攻击者使用RDP连接到目标系统并发送特制请求时,即可以触发该漏洞。此漏洞属于预身份验证,无需用户交互,成功利用此漏洞的攻击者可以安装应用程序,查看、更改或删除数据或创建具有完全用户权限的新账户。
由于该漏洞可能导致的后果较为严重,今年5月份,某公司安全团队在追踪到该漏洞情报时已经第一时间向广大用户推送预警,并提供相应的防范措施:
目前,由于EXP的公开发布,恶意攻击者还很有可能利用该漏洞编写定制的恶意软件, 利用此漏洞的恶意软件传播影响引发类似2017年WannaCry恶意软件遍布全球的事件,广大用户需要更加警惕利用该漏洞的恶意软件的出现,提前做好预防措施。
漏洞分析
成功利用漏洞的前提是将名称为“MS_T120”的静态信道成功绑定到正常信道以外。由于微软官方在内部会使用一个名为MS_T120的信道,因此此信道理论上不应该接收任意消息。
RDP的内部组件有很多,包括svchost.exe中的几个用户模式的dll,以及几个内核模式的驱动程序。漏洞触发的原因是攻击者在MS_T120信道上发送消息,这将导致termdd.sys驱动程序中触发一个双重释放漏洞(free-after-free)。
在完成RDP协议的握手过程后,将开始向已经绑定的各个信道中发送消息。MS_T120信道的消息是由用户模式组件——rdpwsx.dll进行管理,该dll创建一个线程,该线程将在函数rdpwsx!IoThreadFunc中进行循环,通过I/O端口读取消息。
数据通过I/O数据包传入后,将进入rdpwsx!MCSPortData函数进行处理:
从函数中可以看到,在rdpwsx!MCSPortData函数中,有两个opcode:0x0和0x2。如果opcode为0x2,则调用rdpwsx!HandleDisconnectProviderIndication函数执行清理动作,然后使用rdpwsx!MCSChannelClose关闭通道。
从理论上来说,发送的数据包大小都在合法范围的MS_T120消息,将会正常关闭MS_T120信道,并断开连接程序(此时opcode为0x2),并且进行清理操作,此时将不会产生远程代码执行和蓝屏崩溃的风险。如果发送的数据包大小无效,就会导致远程代码执行和拒绝服务。
漏洞复现
根据该EXP的发布者称,该EXP针对Windows 7和WindowsServer 2008 R2 x64。某公司千里目第一时间进行了复现,证实该EXP确实可导致任意代码执行。
该EXP被发布者在Metasploit的官方Github的PullRequest中,但尚未加载进Metasploit的官方框架中。
如上图中所示,按照Metaploit的正常使用流程即可加载该EXP。RHOSTS参数指定目标主机,target参数指定目标主机的系统版本,目前只有Windows 7和 Windows Server2008 R2两个版本。加载EXP后,执行,即可获取目标主机的权限。
影响范围
目前受影响的Windows版本:
Microsoft Windows XP
Microsoft Windows Server 2008 R2 for x64-based Systems SP1
Microsoft Windows Server 2008 R2 for Itanium-based Systems SP1
Microsoft Windows Server 2008 for x64-based Systems SP2
Microsoft Windows Server 2008 for Itanium-based Systems SP2
Microsoft Windows Server 2008 for 32-bit Systems SP2
Microsoft Windows Server 2003
Microsoft Windows 7 for x64-based Systems SP1
Microsoft Windows 7 for 32-bit Systems SP1
通用解决方案
漏洞修复
1、及时安装微软发布的安全更新补丁:
Microsoft官方已经在 2019年5月14日修复了该漏洞,用户可以通过安装微软的安全更新来给系统打上安全补丁,下载地址为:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-0708
同时针对已不受微软更新支持的系统WindowsServer 2003和Windows XP提供的安全更新,下载地址:
https://support.microsoft.com/zh-cn/help/4500705/customer-guidance-for-cve-2019-0708
2、缓解措施(在无法及时安装微软安全更新的情况下作为临时性解决方案):
(1)若用户不需要用到远程桌面服务,建议禁用该服务。
(2)开启网络级别身份验证(NLA),此方案适用于Windows7, Windows Server 2008, Windows Server 2008 R2。
以上缓解措施只能暂时性针对该漏洞对系统进行部分缓解,强烈建议在条件允许的情况下及时安装微软安全更新。
某公司解决方案
一、某公司云眼在漏洞爆发之初,已完成检测更新,对所有用户网站探测,保障用户安全。不清楚自身业务是否存在漏洞的用户,可注册信服云眼账号,获取30天免费安全体验。
注册地址为:http://saas.sangfor.com.cn
二、某公司云镜在漏洞爆发的第一时间就完成从云端下发本地检测更新,部署云镜的用户只需选择紧急漏洞检测,即可轻松、快速检测此高危风险。
三、某公司推出安全运营服务,通过以“人机共智”的服务模式帮助用户快速扩展安全能力,针对此次紧急漏洞,安全运营服务已在5月份进行漏洞检测、安全设备策略检查,目前针对此次EXP,现已再次进行漏洞检测,确保第一时间检测安全风险以及更新策略,防范此类安全风险。
四、针对Windows远程桌面服务代码执行漏洞(CVE-2019-0708)防护,EDR需要下发Windows漏洞补丁实现。
1、更新漏洞规则库及导入补丁
更新漏洞规则库库到20190515185804及以上版本,即可对CVE-2019-0708漏洞进行扫描及修复。
1.1EDR管理平台能连接互联网情况:
通过以下界面检查EDR管理平台是否完成自动更新到最新版本20190905093503。
1.2EDR管理平台不能联网情况:
通过以下地址下载离线漏洞库,导入EDR管理平台更新。
https://bbs.sangfor.com.cn/plugin.php?id=service:download&action=view&fid=100000022878128#/100000037973437/all
漏洞库下载后,通过以下界面导入EDR管理平台。
2、下发补丁扫描,确认是否已经打上对应补丁
注意:由于windows官方只针对win7SP1、Win Server 2008P2 SP2等已打SP包的系统更新对应漏洞补丁,对应未打SP包的系统需打SP包之后再下发扫描任务。
2.1下发终端漏洞查补策略
针对内网Windows 7终端或Windows Server 2008服务器,下发漏洞扫描任务,配置如下图:
2.1.1添加扫描任务,如下图:
2.1.2选择需要修复的终端(建议选择所有Win7及Win server 2008的系统下发),如下图:
2.1.3选择所有漏洞,下发扫描任务,如下图:
2.2批量修复漏洞
2.2.1查看扫描结果,如下图:
注意:
Win 7系统的KB号为:4499164或4499175,有打其中一个补丁即已修复该漏洞。
Win server 2008系统的KB号为:4499149或4499180,有打其中一个补丁即已修复该漏洞。
2.2.2下发修复任务,如下图:
注意:补丁需重启才生效,无法立即重启时,建议不勾选[强制终端修复后立即重启,待修复完毕后终端用户自行重启生效。
漏洞追踪时间轴
您可以通过以下方式联系我们,获取关于CVE-2019-0708漏洞的免费咨询及支持服务:
1)拨打电话400-630-6430转6号线
2)关注【某公司技术服务】微信公众号,选择“智能服务”菜单,进行咨询
3)PC端访问某公司区 bbs.sangfor.com.cn,选择右侧智能客服,进行咨询