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
2
sudo apt update
sudo apt install build-essential libpcap-dev libusb-1.0-0-dev libnetfilter-queue-dev pkg-config

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
2
sudo apt update
sudo apt install bettercap

验证安装

1
bettercap -version

方案二:Docker 部署

Docker 方式适合需要隔离环境或快速部署的场景。bettercap 使用 Alpine Linux 容器化,镜像体积小且易于管理依赖。

前置要求

Docker 版本需大于 17.05(使用多阶段构建)。

步骤 1:拉取镜像

1
2
3
4
5
# 拉取最新稳定版
docker pull bettercap/bettercap

# 或拉取最新源码构建版
docker pull bettercap/dev

步骤 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
2
3
4
5
# Linux
sudo apt install libpcap libusb-1.0-0 libnetfilter-queue

# macOS
brew install libpcap libusb

步骤 3:赋予执行权限并运行

1
2
chmod +x bettercap
sudo ./bettercap -h

方案四:从源码编译

如果你需要最新开发版本或进行二次开发,可以从源码编译。

前置条件

根据官方文档,确保以下条件满足:

  1. 正确配置的 Go >= 1.8 环境
  2. $GOPATH 已定义,且 $GOPATH/bin$PATH
  3. 对于资源受限设备(如 Raspberry Pi Zero),考虑增加交换空间

步骤 1:安装依赖

1
2
3
4
5
# Ubuntu/Debian
sudo apt install build-essential libpcap-dev libusb-1.0-0-dev libnetfilter-queue-dev

# Fedora/CentOS/RHEL
sudo dnf install golang git make automake gcc gcc-c++ kernel-devel libpcap-devel libusb1-devel libnetfilter_queue-devel

步骤 2:编译并安装

1
2
3
4
go get github.com/bettercap/bettercap
cd $GOPATH/src/github.com/bettercap/bettercap
make build
sudo make install

编译完成后,二进制文件位于 /usr/local/bin/bettercap

Android Termux 编译(可选)

需要已 root 的设备:

1
2
pkg install root-repo
pkg install golang git libpcap-dev libusb-dev

基本使用

启动 bettercap

1
2
3
4
5
# 默认使用 eth0 网卡
sudo bettercap

# 指定无线网卡
sudo bettercap -iface wlan0

常用命令

根据社区文档,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
2
3
4
set wifi.handshakes.file /root/handshakes.pcap
wifi.recon on
set ticker.commands "clear; wifi.show"
ticker on

使用 -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
2
3
4
5
# 检查版本
bettercap -version

# 检查网卡
iw list | grep "Supported interface modes" -A 8

安全与法律注意事项

根据社区指南,使用 bettercap 时请务必注意:

  1. 授权范围wifi.deauthwifi.assocwifi.ap 等主动攻击仅可在你明确授权测试的网络上使用
  2. 握手和 PMKID 捕获:会收集用于破解凭证的材料,必须仅在授权范围内进行
  3. 恶意 AP 功能wifi.ap 可捕获凭证,仅可在受控实验室或授权参与中使用
  4. 隔离测试主机:bettercap 以 root 运行且可转向 MITM 模块,请将测试主机与生产网络隔离
  5. 遵守法律:未经授权对他人网络进行攻击是违法行为

总结

部署方式 适用场景 难度 推荐度
包管理器安装 大多数 Linux 用户 ⭐⭐⭐⭐⭐
Docker 部署 隔离环境/快速部署 ⭐⭐ ⭐⭐⭐⭐
预编译二进制 无包管理器的系统 ⭐⭐ ⭐⭐⭐
源码编译 开发/最新功能 ⭐⭐⭐⭐ ⭐⭐

对于大多数用户,包管理器安装是最简单直接的选择:

1
2
3
4
5
6
# Kali Linux / Ubuntu / Debian
sudo apt update
sudo apt install bettercap

# 验证
bettercap -version

安装完成后,使用 sudo bettercap -iface wlan0 启动,即可开始使用 WiFi 侦察、握手捕获、MITM 攻击等高级网络安全测试功能。请务必在授权范围内使用,遵守相关法律法规。