章节摘要:SOURCE 第一章:从 2003 年脚本碎片到标准化军火库;抽象化、标准化、可复用 exploit 开发。
Metasploit 是安全行业中罕见的"双方通用语言":红队用它验证漏洞可利用性,蓝队用它模拟攻击、验证补丁。本章不急于敲命令,而是先把框架的来龙去脉讲透。只有理解了"为什么这样设计",后续章节的每条命令才不是死记硬背。
SOURCE 用一句话概括了这一章的底色:Metasploit 把攻击从"手工作坊"变成"工业化流水线"。在 2003 年之前,exploit 代码以零散的 C/Perl 脚本在论坛流传,硬编码地址、绑定操作系统版本,换一台机器就失效;Metasploit 用模块化、参数化与标准化,把这段混乱历史终结了。
一次完整的渗透攻击,在 Metasploit 的世界观里被拆成四个可互换的组件:
| 组件 | 职责 | 类比 |
|---|---|---|
| Exploit | 触发漏洞、劫持执行流 | 钥匙 |
| Payload | 触发后执行的动作(shell / meterpreter) | 门内做的事 |
| Auxiliary | 扫描、嗅探、爆破等非破坏行为 | 侦察兵 |
| Post | 拿到会话后的提权、抓取、横向 | 占领者 |
四要素的解耦带来一个关键结果:同一个 exploit 可以换任意 payload,同一个 payload 也可以挂在不同 exploit 上。这也是本教程贯穿始终的"积木"思维。
# 阅读本章时可顺手验证的框架自检命令(隔离环境) msfconsole -q version # 框架版本 show exploits | wc -l # 统计 exploit 模块数量 show payloads | wc -l # 统计 payload 模块数量 info exploit/windows/smb/ms17_010_eternalblue # Name: EternalBlue SMB Remote Windows Kernel Pool Corruption # Module: exploit/windows/smb/ms17_010_eternalblue # Platform: Windows # Rank: Average
| 概念 | 出现在 1.x | 后续将用到 |
|---|---|---|
| Exploit / Payload 解耦 | 1.1、1.2 | 3.2 渗透实施 |
| Mixins 复用 | 1.2 | 5.2 自动化脚本 |
| 内存执行 | 1.2 | 4.1 Meterpreter |
| Rex / Core / Base 分层 | 1.3 | 2.1 用户接口 |
💡 学习提示:本章任何概念看不懂都可以先跳过,但"exploit 与 payload 是分离的"这条必须留下。它是后面所有命令组合的基础。
⚠️ 合规提醒:本章出现的所有命令都只在本机/隔离 lab 内自检;对未授权目标执行
info之外的任何操作都是违法的。