CVE-2019-0708漏洞分析

CVE-2019-0708漏洞分析

注:仅供学习用途,利用于非法行为者与本文作者无关

第一章 CVE-2019-0708漏洞说明

§1.1 漏洞概述

2019年5月14日,微软发布了针对远程桌面服务的关键远程执行代码漏洞CVE-2019-0708的补丁,该漏洞影响某些旧版本的windows。攻击者一旦成功触发该漏洞,便可以在目标系统上执行任意代码,该漏洞的触发无需任何用户交互操作。这意味着,存在漏洞的计算机只要联网,无需任何操作,就可能遭遇黑客远程攻击,运行恶意代码。其方式与2017年的 WannaCry恶意软件的传播方式类似.成功利用此漏洞的攻击者可以在目标系统完成安装应用程序,查看、更改或删除数据,创建完全访问权限的新账户等操作。

§1.2 影响范围

该漏洞影响旧版本的Windows系统,包括:
Windows 7 、 Windows Server 2008 R2 、 Windows Server 2008 、Windows 2003 、 Windows XP。
Windows 8 和 Windows 10及之后版本不受此漏洞影响。

§1.3 影响方式

CVE-2019-0708漏洞利用方式是通过远程桌面端口3389,RDP协议进行攻击。该漏洞是通过检查用户的身份认证,导致可以绕过认证,不用任何的交互,直接通过rdp协议进行连接发送恶意代码执行命令到服务器中去。如果被攻击者利用,会导致服务器入侵,中病毒,像WannaCry 永恒之蓝漏洞一样大规模的感染。
若要利用此漏洞,攻击者需要通过 RDP 向目标系统远程桌面服务发送经特殊设计的请求。

§1.4 漏洞评级

CVE-2019-0708:高危。

第二章 漏洞攻击复现

§2.1 所用工具及平台
1、环境设置
攻击机:Kali Linux (ip:192.168.1.109)
靶机:Windows 7 旗舰版 (ip:192.168.1.106)
利用工具:MSF框架,VMware 15.5
POC:https://github.com/n1xbyte/CVE-2019-0708
2、靶机环境配置
首先我们需要安装Windows 7系统,这里我选择使用VMware 15.5来搭建靶机。
(1)开启3389端口,允许远程桌面连接,同时修改高级共享设置,开启公用文件夹共享。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
§2.2 攻击步骤

1、更新应用、和MSF框架。
在这里插入图片描述
在这里插入图片描述
2、确认被攻击机是否开启3389端口
nmap 192.168.1.106
在这里插入图片描述
由红圈部分可以发现存在可以利用端口。

3、在确认开启了3389端口后执行msf框架进行漏洞扫描
(1)使用msfconsole进入metasploit-framework
在这里插入图片描述
(2)进入后使用reload_all重新加载所有模块
在这里插入图片描述
(3)输入search 0708寻找可利用的工具,可以找到如下工具进行探测
在这里插入图片描述
(4)输入 use auxiliary/scanner/rdp/cve_2019_0708_bluekeep启用0708RDP攻击模块
使用 show options 查看相关信息和设置。
在这里插入图片描述
(5)设置参数并进行探测
设置rhost为目标主机IP 192.168.1.106
可以发现存在可利用漏洞(虽然无法验证)
在这里插入图片描述
(6)输入exit退出工具,返回命令行
4、开始攻击
(1)kali内默认没有pip3,先安装pip3,再安装impacket库(虽然不知道为何我的kali默认附带了pip3)
输入apt-git python3-pip安装pip3
在这里插入图片描述
输入pip3 install impacket 安装impacket库
在这里插入图片描述
(2)下载POC
从github下载开源代码,然后进入CVE-2019-0708目录
在这里插入图片描述
(3)进行攻击
在这里插入图片描述
5、攻击结果
我们可以再靶机上看到已经蓝屏,攻击成功。
在这里插入图片描述
第三章 漏洞分析

§3.1 整体分析

在查阅相关资料后发现,其发生错误的部分在termdd.sys,属于UAF堆溢出,利用double free来获取shell。接下来的具体分析步骤就是按照资料上的流程进行。

§3.2 具体分析步骤

反编译termdd.sys查看其源码,分析crash的问题。将本次蓝屏的crash信息dump下来,并用windbg做analyze查看具体出错的部分。
在这里插入图片描述
可以看到是termdd!_IcaFreeChannel调用nt!ExDeleteResourceLite发生崩溃。
在free的时候崩溃,那么很有可能就是double free了。在IcaRebindVirtualChannels和IcaBindVirtualChannels中我们都可以看到IcaFindChannelByName函数,我们看看这个函数:
在这里插入图片描述
通过这一行,可以发现free的地址是8a998878
接下来查看channel name发现是MS_T120
在这里插入图片描述
进一步发现有一个IcaCreateChannel函数,很可能是用于创建Channel,申请内存的函数,跟进去又发现一个IcaAllocateChannel。
在这里插入图片描述
可以看到有一个IcaCreateChannel函数,很可能是用于创建Channel,申请内存的函数,跟进去又发现一个IcaAllocateChannel。
在这里插入图片描述
之后下两个记录断点,可以查看ExAllocatePoolWithTag的返回值,和_IcaFreeChannel的参数。然后再次执行poc发送payload
在这里插入图片描述
能够发现针对0x88f6e1a8执行了两次free,能够判断是一个标准的UAF漏洞,以上面为基础,再下一个断点,看看是否同一个channel绑定了两个ID
在这里插入图片描述
首先来确定0x88fd5738这个地址是不是MS_T120
在这里插入图片描述
在这里插入图片描述
再看看termdd!_IcaBindChannel的栈,针对的都是88fd5738这个地址,但是我们看到第3个参数第一次是0x1f,而第二次是3,就说明channel绑定了两个ID,导致存在两个引用,所以修复的时候就强制指定为0x1f,不管绑定多少次,ID都会是1f。
由于是doublefree,其实就是一个uaf利用思路,我们再第二次free的时候向上回溯。
在这里插入图片描述
发现IcaChannelInputInternal有虚函数调用,可以从这里劫持控制流。
在这里插入图片描述
要控制channel的数据,必须得再其第一次free了之后占位,我们申请同样大小的内存,我们看看申请的大小是0xc8。
在这里插入图片描述
所以只要控制channel内存的0xc8偏移,劫持v12虚函数指针。 目前大部分的exp都是做内核堆喷射,但是win7在这个地址上面是没有DEP的,所以直接喷内核shellcode就可以了,而且win7的Non-paged Pool的起始地址固定,容易命中。执行exp后查看堆喷射的shellcode。
在这里插入图片描述
第四章 安全建议

§4.1 应对办法

1、在受影响版本的系统上启用网络级身份验证(NLA);启用NLA后,攻击者需要使用目标系统上的有效账户对远程桌面服务进行身份验证,才能成功利用该漏洞。
2、关闭3389端口或添加相应防火墙安全策略限制对3389端口的访问
3、升级操作系统至Windows 8及其以上版本。对于这些版本的Windows系统并不存在CVE-2019-0708漏洞。
4、通过微软官网发布的漏洞补丁进行修复。
oWindows 7、Windows Server 2008和Windows Server 2008 R2:及时安装官方安全补丁。
oWindows 2003及Windows XP:及时更新系统版本或安装官方补丁。
5、安装正规公司的云防火墙,国内大部分安全厂商都针对该漏洞进行了更新。

  • 10
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CVE-2019-0708,也被称为“蓝望之门”(BlueKeep)漏洞,是一种存在于微软Windows操作系统中的远程桌面服务(RDP)漏洞。该漏洞的严重性被评为“高危”,因为攻击者可以利用它远程执行代码,而无需用户的交互。 CVE-2019-0708漏洞允许攻击者通过发送特制的网络数据包来利用RDP服务的漏洞。一旦成功利用漏洞,攻击者便可以在目标系统上执行任意代码,以获取系统权限,窃取敏感信息,传播恶意软件等。 这个漏洞影响大量的Windows操作系统版本,包括Windows 7、Windows Server 2008和Windows Server 2008 R2。微软非常重视该漏洞的危害,迅速发布了安全更新来修复这个漏洞。由于漏洞的严重性和潜在的传播范围,微软敦促用户尽快安装相关的安全补丁以保护系统安全CVE-2019-0708的公开引起了极大关注,因为它与WannaCry和NotPetya等蠕虫攻击类似。攻击者可以通过互联网寻找易受攻击的系统,然后远程利用此漏洞进行恶意活动。由于大量的系统受到威胁,网络上不少在线操作系统扫描工具也被开发出来,用于检测系统是否存在此漏洞。 为了保护自己免受CVE-2019-0708漏洞的攻击,用户应尽快安装相关的安全补丁或升级其操作系统。此外,还要采取其他预防措施,例如禁用RDP服务、使用防火墙来阻止恶意流量,并定期备份和更新系统文件。与此同时,网络管理员也应加强网络安全管理,定期检查和修复系统漏洞以确保网络安全

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值