瑞士军刀 Bettercap2.4 使用教程

Bettercap 是一款瑞士军刀(github地址),这款开源软件可用于网络攻击和监控:

  • Bettercap支持的特性与模块
  • macOS上部署 bettercap
  • Bettercap 使用说明
  • Bettercap模块介绍
  • Bettercap常用功能介绍

Bettercap支持的特性与模块

  • Core
    -- events.stream
    -- ticker
    -- api.rest
    -- update.check

  • Bluetooth Low Energy
    -- ble.recon / enum / write

  • 802.11
    -- wifi.recon / deauth / ap

  • Ethernet and IP
    -- net.recon
    -- net.probe
    -- net.sniff
    -- syn.scan
    -- wake on lan
    -- Spoofers

    • arp.spoof
    • dhcp6.spoof
    • dns.spoof

    -- Proxies

    • packet.proxy
    • tcp.proxy
      • modules
    • http.proxy
    • https.proxy
      • modules
  • Servers
    -- http.server

  • Utils
    -- mac.changer
    -- gps

  • Compilation
    -- on Linux and macOS
    -- on Windows
    -- on Android
    -- cross compilation(ARM example)


macOS上部署 bettercap

brew install bettercap

Bettercap 使用说明

基本命令行参数介绍(bettercap -h):

参数 描述
-autostart MODULES 自动启动时指定的以逗号分隔的模块列表(默认是 events.stream, net.recon, update.check)
-caplet FILENAME 从指定的文件读取命令,在交互模式的会话中执行他们
-eval COMMANDS 使用;作为分隔符,运行一个或多个命令,在交互式 会话中,用于通过命令行设置变量。
-iface INTERFACE 用于绑定的网络卡,如果为空,默认的接口将自动选 择(接受网卡名、ip 或者 mac 地址)
-no-history 禁用交互模式的历史文件(~/.bettercap.history)
-env-file FILENAME 加载环境变量文件(默认是~/bettercap.env)
-cpu-profile FILENAME 写入cpu 配置(用于 debug 和基准测试)
-mem-profile FILENAME 写入内存配置(用于 debug 和基准测试)
-silent 不输出所有非错误的日志
-debug 开启调试信息

基本命令介绍

运行Bettercap进入交互模式:


运行 bettercap进入交互模式

help 命令:查看帮助信息


help 命令:查看帮助信息
命令 描述
Help MODULE 查看MODULE的信息
active 打印所有运行的模块
quit 退出bettercap shell
sleep SECONDS 睡眠 SECONDS 秒
get NAME 获取变量的值(支持通配符)
set NAME VALUE 设置 NAME 变量的值为 VALUE
clear 清屏
include CAPLET 加载且运行名字为CAPLETcaplet到当前会话
! COMMAND 执行 linux shell 命令 COMMAND
alias MAC NAME 将 MAC 地址别名成 NAME

bettercap shell 命令

命令 描述
Help MODULE 查看MODULE的信息
active 打印所有运行的模块
quit 退出bettercap shell
sleep SECONDS 睡眠 SECONDS 秒
get NAME 获取变量的值(支持通配符)
set NAME VALUE 设置 NAME 变量的值为 VALUE
clear 清屏
include CAPLET 加载且运行名字为CAPLETcaplet到当前会话
! COMMAND 执行 linux shell 命令 COMMAND
alias MAC NAME 将 MAC 地址别名成 NAME

Bettercap模块介绍

events.stream

命令 描述
events.stream on 开始事件流
events.stream off 停止事件流
events.show LIMIT? 显示事件流(Example:events.show 1)
events.waitfor TAG TIMEOUT? 永久或指定的时间内等待给定的 TAG事件 (Example:events.waitfor endpoint.new, events.waitfor ble.device.new 10)
events.ignore FILTER 将不会显示带有匹配该筛选器的标识符的事件.(example: events.ignore endpoint.lost)
events.include FILTER 删除 events.ignore 中的标识符
events.filters 打印过滤的事件
events.clear 删除所有的事件流

描述:将事件打印为连续流
模块命令:

命令 描述
events.stream on 开始事件流
events.stream off 停止事件流
events.show LIMIT? 显示事件流(Example:events.show 1)
events.waitfor TAG TIMEOUT? 永久或指定的时间内等待给定的 TAG事件 (Example:events.waitfor endpoint.new, events.waitfor ble.device.new 10)
events.ignore FILTER 将不会显示带有匹配该筛选器的标识符的事件.(example: events.ignore endpoint.lost)
events.include FILTER 删除 events.ignore 中的标识符
events.filters 打印过滤的事件
events.clear 删除所有的事件流
参数 描述
events.stream.output 如果为空则事件将打印到标准输出,否则输出到指定的文件

模块参数

参数 描述
events.stream.output 如果为空则事件将打印到标准输出,否则输出到指定的文件

net.recon

命令 描述
net.recon on 开始网络主机发现
net.recon off 停止网络主机发现
net.show 展示主机列表缓存(默认按照 ip 排序)
net.show by seen 展示主机列表缓存(按照更新时间来排序)
net.show by sent 展示主机列表缓存(按照发送包来排序)
net.show by rcvd 展示主机列表缓存(按照接收包来排序)

描述:周期性查看 arp 缓存,用于管理网络中的新主机
模块命令:

命令 描述
net.recon on 开始网络主机发现
net.recon off 停止网络主机发现
net.show 展示主机列表缓存(默认按照 ip 排序)
net.show by seen 展示主机列表缓存(按照更新时间来排序)
net.show by sent 展示主机列表缓存(按照发送包来排序)
net.show by rcvd 展示主机列表缓存(按照接收包来排序)

net.probe

命令 描述
net.probe on 在后台开启网络主机探测
net.probe off 在后台关闭网络主机探测

描述:探测网络上的新主机,通过将虚拟 udp 数据包发送子网上的每个可能的ip
模块命令:

命令 描述
net.probe on 在后台开启网络主机探测
net.probe off 在后台关闭网络主机探测
参数 描述
net.probe.throttle 如果大于 0,则探测包将以毫秒为单位进行节流。 (默认=10)

模块参数:

参数 描述
net.probe.throttle 如果大于 0,则探测包将以毫秒为单位进行节流。 (默认=10)

net.sniff

命令 描述
net.sniff stats 打印嗅探配置和数据
net.sniff on 开启网络嗅探
net.sniff off 关闭网络嗅探

描述:嗅探本网络的数据包
模块命令:

命令 描述
net.sniff stats 打印嗅探配置和数据
net.sniff on 开启网络嗅探
net.sniff off 关闭网络嗅探
参数 描述
net.sniff.local 如果为 true,则考虑该计算机收发的数据包
net.sniff.filter 为嗅探设置 bpf 过滤规则(默认=not arp)
net.sniff.regexp 如果设置,只有满足该正则表达式的包会被嗅探
net.sniff.output 如果设置,则将抓到的包
net.sniff.source 从指定的 pcap 文件中嗅探数据包
net.sniff.verbose 如果为 true 则每一个抓到的包都会发送给event.stream 去显示,否则只有被应用层识别到的才会发送给event.stream(比如 sni,http 等)

模块参数:

参数 描述
net.sniff.local 如果为 true,则考虑该计算机收发的数据包
net.sniff.filter 为嗅探设置 bpf 过滤规则(默认=not arp)
net.sniff.regexp 如果设置,只有满足该正则表达式的包会被嗅探
net.sniff.output 如果设置,则将抓到的包
net.sniff.source 从指定的 pcap 文件中嗅探数据包
net.sniff.verbose 如果为 true 则每一个抓到的包都会发送给event.stream 去显示,否则只有被应用层识别到的才会发送给event.stream(比如 sni,http 等)

arp.spoof

命令 描述
arp.spoof on 开启 arp 欺骗,实现二层转发
arp.ban on 开启 arp 欺骗,并进行阻断
arp.spoof off 关闭 arp 欺骗
arp.ban off 关闭 arp 欺骗

模块介绍:对该网络中的主机进行 arp 欺骗
模块命令:

命令 描述
arp.spoof on 开启 arp 欺骗,实现二层转发
arp.ban on 开启 arp 欺骗,并进行阻断
arp.spoof off 关闭 arp 欺骗
arp.ban off 关闭 arp 欺骗
参数 描述
arp.spoof.targets 设置arp欺骗的主机以逗号分隔,默认是整个子网
arp.spoof.whitelist 设置arp欺骗的白名单,默认为空

模块参数:

参数 描述
arp.spoof.targets 设置arp欺骗的主机以逗号分隔,默认是整个子网
arp.spoof.whitelist 设置arp欺骗的白名单,默认为空

dhcp6.spoof

命令 描述
dhcp6.spoof on 开启 dhcp v6 的欺骗
dhcp6.spoof off 关闭 dhcpv6 的欺骗

模块介绍:回应 dhcp6 报文,将攻击者设置为受害者的 dns 服务器
模块命令:

命令 描述
dhcp6.spoof on 开启 dhcp v6 的欺骗
dhcp6.spoof off 关闭 dhcpv6 的欺骗
参数 描述
dhcp6.spoof.domains 设置对指定的域名进行欺骗

模块参数:

参数 描述
dhcp6.spoof.domains 设置对指定的域名进行欺骗

dns.spoof

命令 描述
dns.spoof on 开启 dns 的欺骗
dns.spoof off 关闭 dns 的欺骗

模块介绍:回应 dns 欺骗报文
模块命令:

命令 描述
dns.spoof on 开启 dns 的欺骗
dns.spoof off 关闭 dns 的欺骗
参数 描述
dns.spoof.domains 指定欺骗的域名,用逗号分隔,默认是*
dns.spoof.address 域名映射到的 ip 地址,默认为
dns.spoof.all 如果为 true,响应所有的 dns 报文,否则只响应 dns报文目的地址为本地的报文

模块参数:

参数 描述
dns.spoof.domains 指定欺骗的域名,用逗号分隔,默认是*
dns.spoof.address 域名映射到的 ip 地址,默认为
dns.spoof.all 如果为 true,响应所有的 dns 报文,否则只响应 dns报文目的地址为本地的报文

mac.changer

命令 描述
mac.changer on 开启 mac 修改模块
mac.changer off 关闭 mac 修改模块

模块介绍:修改活跃接口的 mac 地址
模块命令:

命令 描述
mac.changer on 开启 mac 修改模块
mac.changer off 关闭 mac 修改模块
参数 描述
mac.changer.iface 修改的接口名
mac.changer.adress 新的 mac 地址

模块参数:

参数 描述
mac.changer.iface 修改的接口名
mac.changer.adress 新的 mac 地址

syn.scan

命令 描述
syn.scan IP-RANGE [START-PORT] [END- PORT] 对给出的ip得知或者网络进行给定的端口范围进行syn扫描
mac.changer.adress 新的mac地址

模块介绍:执行 syn 的端口扫描
模块命令:

命令 描述
syn.scan IP-RANGE [START-PORT] [END- PORT] 对给出的ip得知或者网络进行给定的端口范围进行syn扫描
mac.changer.adress 新的mac地址

Bettercap常用功能介绍

dns spoof

开启bettercap,并打开 dns 欺骗的功能,并在同一网段的另外一台
windows7上设置 dns 地址为 macOS的地址:

dns spoof

在 windows7 上 ping www.koudai8.com
ping

在 bettercap 上收到 dns 请求并进行 dns 欺骗
dns

总结:(参考)

arp spoof + sniff

开启嗅探功能、arp 欺骗功能,把抓到的包存为/Users/zeno/Downloads/test.pcap

sniff

查看抓包效果


wireshark

arp spoof + http proxy(参考)

编写一个 js 脚本,在目标网页加入一句图中的代码,这里我将它保存 /Users/zeno/Downloads/http_test.js

js inject

开启 bettercap
start

启动主机发现、http 代理、https 代理、arp 欺骗
more

使用同一网络的另外一台 window7 去访问 http 网页


koudai

查看 window7 上网页的 web 页面的源码,如下图已经被 inject 了目标代码


source

查看 bettercap 的 shell,成功调用 bettercap 的 inject 脚本

shell

注:攻击者可以自行重写 js 脚本实现自定义的功能


你可能感兴趣的:(瑞士军刀 Bettercap2.4 使用教程)