第1章:Metasploit基础与环境搭建

各位同学,我是老张。在汽车安全这行摸爬滚打了十几年,从最初的CAN总线逆向到现在的车载以太网渗透,Metasploit一直是我最趁手的兵器。今天咱们就来聊聊这个框架的核心概念,以及怎么把环境搭起来。

说实话,很多人一上来就急着跑exp,结果环境没配好,数据库没初始化,折腾半天连个shell都拿不到。我见过太多这样的案例了。所以这一章,咱们把基础打扎实。

1.1 Metasploit框架核心概念

Metasploit说白了就是一个漏洞利用的「武器库」。它把渗透测试中常用的模块化工具整合在一起,让你不用每次都从零开始写代码。我个人习惯把它分成四大类:

模块类型 英文名 一句话解释
漏洞利用 Exploit 负责「敲门」的模块,利用漏洞进入目标系统
攻击载荷 Payload 进门之后「干什么」的代码,比如反弹shell
辅助模块 Auxiliary 扫描、嗅探、爆破等辅助功能
后渗透模块 Post 拿到权限后的信息收集、提权、横向移动

嗯,这里要注意:很多人把Exploit和Payload搞混。我打个比方——Exploit是撬锁的工具,Payload是进屋后你要干的事。你撬开锁但不进去,等于白干;你进去但没撬锁,那叫穿墙术,不现实。

核心记忆点:

  • Exploit = 怎么进去
  • Payload = 进去后做什么
  • Auxiliary = 进去前的准备工作
  • Post = 进去后的深度操作

我在项目中遇到过不少新手,选了个Exploit但忘了配Payload,结果漏洞触发了但啥也没发生。你想想看,门都开了,你站在门口发呆,多尴尬。

1.2 Kali Linux环境配置

Kali Linux是Metasploit的「亲爹」系统,预装了几乎所有工具。但我建议你别直接用默认配置,有几个坑得避开。

第一步:更新系统

sudo apt update && sudo apt upgrade -y

为什么要先更新?因为Kali的仓库更新很快,有些Exploit依赖新版本的库。我曾经因为没更新,跑一个车载系统的RCE漏洞时,提示缺少某个Ruby gem,折腾了半小时才发现是版本问题。

第二步:安装Metasploit

sudo apt install metasploit-framework -y

Kali默认是带Metasploit的,但有时候版本比较老。我个人习惯用apt安装,而不是从GitHub拉源码。为什么?因为apt会帮你处理依赖关系,省心。

小技巧:安装完成后,运行 msfconsole --version 确认版本。如果低于6.0,建议手动升级。

第三步:配置Ruby环境

Metasploit是用Ruby写的,所以Ruby环境很重要。Kali自带的Ruby版本通常够用,但如果你要编译一些自定义的Payload,可能需要安装额外的gem:

sudo gem install bundler
cd /usr/share/metasploit-framework
sudo bundle install

嗯,这一步不是必须的,但如果你遇到「缺少某某gem」的错误,回来跑一遍就行。

1.3 Metasploit数据库初始化

数据库是Metasploit的「记忆体」。没有它,你扫描的结果、收集的Hash、爆破的账号密码,全都没地方存。我个人习惯一开始就把数据库配好,省得后面手忙脚乱。

第一步:启动PostgreSQL

sudo systemctl start postgresql
sudo systemctl enable postgresql

第二步:创建数据库用户

sudo -u postgres createuser msf -P
# 输入密码,比如 msfpass

第三步:创建数据库

sudo -u postgres createdb -O msf msf_database

第四步:在msfconsole中连接

msfconsole
db_connect msf:msfpass@localhost:5432/msf_database
db_status

如果看到 [*] Connected to msf_database,说明成功了。

避坑指南:我曾经因为忘记启动PostgreSQL服务,直接运行msfconsole,结果所有扫描结果都没保存。后来养成了习惯:每次开msf之前,先检查 sudo systemctl status postgresql

1.4 常用命令速查

这部分我直接给你一张表,平时贴在手边,用多了自然就记住了。

命令 作用 我的使用频率
msfconsole 启动Metasploit控制台 每天100次
search 搜索模块,比如 search canbus 每天50次
use 加载模块,比如 use exploit/multi/handler 每天30次
show options 查看当前模块的参数 每天20次
set 设置参数,比如 set RHOSTS 192.168.1.1 每天80次
run 执行当前模块 每天40次
sessions 查看和管理已建立的会话 每天10次
db_nmap 调用nmap并将结果存入数据库 每周5次

你想想看,这些命令其实就覆盖了80%的日常操作。剩下的20%,遇到问题再查文档也来得及。

1.5 知识体系结构图

下面这张图是我自己画的,把本章的核心逻辑串起来了。你看一眼,心里就有数了。

Metasploit基础与环境搭建 核心概念(四大模块) Exploit(漏洞利用) Payload(攻击载荷) Auxiliary(辅助模块) Post(后渗透模块) 环境搭建(Kali Linux) 更新系统 & 安装Metasploit 配置Ruby环境 数据库初始化(PostgreSQL) 常用命令速查(msfconsole / search / use / set / run)

这张图从左到右,从上到下,就是咱们这一章的全部内容。你把它存下来,以后忘了就看看。

我的个人建议:初学者别急着跑复杂的Exploit。先把 searchusesetrun 这四个命令练熟,配合数据库的 db_nmap 做一次完整的扫描-利用流程。等你觉得「嗯,不过如此」的时候,再去看那些高级技巧。

好了,这一章就到这里。环境搭好了,命令记住了,下一章咱们就开始真刀真枪地干。


公众号:蓝海资料掘金营,微信deep3321