bettercap:面向安全研究人员的红队一体化框架
bettercap 详细部署教程
项目概述
bettercap 是一个用 Go 语言编写的强大、易扩展且可移植的框架,旨在为安全研究人员、红队成员和逆向工程师提供一个易于使用、一体化的解决方案,用于对 WiFi 网络、蓝牙低功耗(BLE)设备、CAN 总线、无线 HID 设备和以太网进行侦察和攻击。
主要功能:
| 功能模块 | 说明 |
|---|---|
| WiFi | 网络扫描、去认证攻击、无客户端 PMKID 关联攻击、自动 WPA/WPA2/WPA3 握手捕获 |
| 蓝牙低功耗 | 设备扫描、特征枚举、读取和写入 |
| 无线 HID | 2.4GHz 设备扫描和 MouseJacking 攻击(支持 DuckyScript) |
| CAN 总线 | 帧解码、注入和模糊测试 |
| IP 网络 | 被动和主动主机探测与侦察 |
| MITM 攻击 | ARP、DNS、NDP 和 DHCPv6 欺骗器,支持 IPv4 和 IPv6 |
| 代理 | 数据包级、TCP 级和 HTTP/HTTPS 应用级代理,可通过 JavaScript 插件脚本化 |
| 网络嗅探 | 凭证收集和协议模糊测试 |
| REST API | 支持 WebSocket 异步事件通知 |
| Web UI | 便捷的浏览器界面 |
部署前准备
系统要求
根据官方文档和社区指南,建议配置如下:
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 1 GHz 处理器 | 2 GHz+ |
| 内存 | 512 MB | 1 GB+ |
| 存储 | 100 MB 可用空间 | 500 MB+ |
| 操作系统 | Linux、Windows、macOS、Android | Kali Linux |
| 权限 | Root/管理员权限(大多数功能需要) | Root |
前置依赖
根据你的操作系统,需要安装以下依赖:
Ubuntu/Debian:
1 | sudo apt update |
Fedora/CentOS/RHEL:
1 | sudo dnf install golang git make automake gcc gcc-c++ kernel-devel libpcap-devel libusb1-devel libnetfilter_queue-devel |
Arch Linux:
1 | sudo pacman -S base-devel libpcap libusb libnetfilter_queue |
macOS:
1 | brew install libpcap libusb |
Windows:
- 安装 WinPcap 或 Npcap 驱动
- 安装 Microsoft Visual C++ Redistributable
硬件要求(WiFi 功能)
WiFi 功能需要一个支持监听模式和数据包注入的无线网卡。以下是推荐的网卡组合:
| 类型 | 推荐型号 | 芯片组 | 备注 |
|---|---|---|---|
| 主要网卡 | ALFA AWUS036ACH | RTL8812AU | 双频 AC1200,ARM 驱动支持最佳 |
| 替代网卡 | ALFA AWUS036ACM | MT7612U | 驱动已内建核心,Kali ARM64 免驱即插即用 |
| WiFi 6 网卡 | ALFA AWUS036AXM | MT7921AUN | 核心 5.18 起内建,需安装 firmware-misc-nonfree |
方案一:包管理器安装(推荐)
这是最简单、最快速的部署方式,适合大多数 Linux 用户。
Kali Linux / Ubuntu / Debian
1 | sudo apt update |
验证安装
1 | bettercap -version |
方案二:Docker 部署
Docker 方式适合需要隔离环境或快速部署的场景。bettercap 使用 Alpine Linux 容器化,镜像体积小且易于管理依赖。
前置要求
Docker 版本需大于 17.05(使用多阶段构建)。
步骤 1:拉取镜像
1 | # 拉取最新稳定版 |
步骤 2:运行容器
1 | docker run -it --privileged --net=host bettercap/bettercap -h |
参数说明:
--privileged:授予容器访问网络接口的权限--net=host:使用主机网络模式-h:显示帮助信息
步骤 3:指定网络接口
1 | docker run -it --privileged --net=host bettercap/bettercap -iface wlan0 |
方案三:预编译二进制文件
官方为每个新版本提供预编译二进制文件,目前支持:
- Darwin arm64(macOS)
- Linux amd64
- Windows amd64
步骤 1:下载二进制文件
从 GitHub Releases 页面下载对应平台的二进制文件。
步骤 2:安装依赖
确保系统已安装以下依赖:
1 | # Linux |
步骤 3:赋予执行权限并运行
1 | chmod +x bettercap |
方案四:从源码编译
如果你需要最新开发版本或进行二次开发,可以从源码编译。
前置条件
根据官方文档,确保以下条件满足:
- 正确配置的 Go >= 1.8 环境
$GOPATH已定义,且$GOPATH/bin在$PATH中- 对于资源受限设备(如 Raspberry Pi Zero),考虑增加交换空间
步骤 1:安装依赖
1 | # Ubuntu/Debian |
步骤 2:编译并安装
1 | go get github.com/bettercap/bettercap |
编译完成后,二进制文件位于 /usr/local/bin/bettercap。
Android Termux 编译(可选)
需要已 root 的设备:
1 | pkg install root-repo |
基本使用
启动 bettercap
1 | # 默认使用 eth0 网卡 |
常用命令
根据社区文档,bettercap 的常用命令如下:
| 命令 | 说明 |
|---|---|
wifi.recon on/off |
启动/停止 802.11 发现(启用监听模式) |
wifi.show |
显示发现的 AP/客户端表 |
wifi.deauth <BSSID> |
对目标 AP 的客户端进行去认证攻击 |
wifi.assoc <BSSID> |
发送关联帧捕获 PMKID |
wifi.ap |
启动恶意接入点 |
set wifi.handshakes.file <path> |
设置握手文件保存路径 |
启动脚本(Caplets)
Caplet 是自动化会话的脚本文件,扩展名为 .cap。
创建 wifi-recon.cap:
1 | set wifi.handshakes.file /root/handshakes.pcap |
使用 -caplet 参数运行:
1 | sudo bettercap -iface wlan0 -caplet wifi-recon.cap |
非交互式执行
使用 -eval 参数执行分号分隔的命令:
1 | sudo bettercap -iface wlan0 -eval "wifi.recon on; wifi.recon.channel 6; wifi.deauth AA:BB:CC:DD:EE:FF" |
配置说明
WiFi 模块配置
根据官方文档,WiFi 模块支持以下配置参数:
| 参数 | 默认值 | 说明 |
|---|---|---|
wifi.assoc.acquired |
false | 对已获取密钥材料的 AP 发送关联 |
wifi.handshakes.aggregate |
true | 将所有握手保存到单个文件 |
wifi.handshakes.file |
~/bettercap-wifi-handshakes.pcap | 握手文件保存路径 |
wifi.hop.period |
250 | 信道跳转间隔(毫秒) |
wifi.region |
BO | 设置 WiFi 区域 |
wifi.rssi.min |
-200 | 最小 RSSI 过滤 |
Web UI
bettercap 提供 Web UI 用于图形化操作:
1 | sudo bettercap -iface wlan0 -caplet http-ui |
然后访问 http://127.0.0.1:80。
常见问题排查
| 问题 | 解决方案 |
|---|---|
| 无法启动,提示权限不足 | 使用 sudo 运行,确保有 root 权限 |
| WiFi 功能不可用 | 确认网卡支持监听模式和注入,使用 iw list 检查 |
| 无法检测到网卡 | 检查驱动是否正确安装,尝试 ifconfig -a 确认网卡存在 |
| Docker 容器无法访问网卡 | 确认使用了 --privileged 和 --net=host 参数 |
| 编译时报依赖错误 | 确保已安装所有前置依赖,检查 Go 环境配置 |
| Raspberry Pi 上运行缓慢 | 增加交换空间,或使用预编译二进制文件 |
验证安装
1 | # 检查版本 |
安全与法律注意事项
根据社区指南,使用 bettercap 时请务必注意:
- 授权范围:
wifi.deauth、wifi.assoc或wifi.ap等主动攻击仅可在你明确授权测试的网络上使用 - 握手和 PMKID 捕获:会收集用于破解凭证的材料,必须仅在授权范围内进行
- 恶意 AP 功能:
wifi.ap可捕获凭证,仅可在受控实验室或授权参与中使用 - 隔离测试主机:bettercap 以 root 运行且可转向 MITM 模块,请将测试主机与生产网络隔离
- 遵守法律:未经授权对他人网络进行攻击是违法行为
总结
| 部署方式 | 适用场景 | 难度 | 推荐度 |
|---|---|---|---|
| 包管理器安装 | 大多数 Linux 用户 | ⭐ | ⭐⭐⭐⭐⭐ |
| Docker 部署 | 隔离环境/快速部署 | ⭐⭐ | ⭐⭐⭐⭐ |
| 预编译二进制 | 无包管理器的系统 | ⭐⭐ | ⭐⭐⭐ |
| 源码编译 | 开发/最新功能 | ⭐⭐⭐⭐ | ⭐⭐ |
对于大多数用户,包管理器安装是最简单直接的选择:
1 | # Kali Linux / Ubuntu / Debian |
安装完成后,使用 sudo bettercap -iface wlan0 启动,即可开始使用 WiFi 侦察、握手捕获、MITM 攻击等高级网络安全测试功能。请务必在授权范围内使用,遵守相关法律法规。




