美文网首页宛十八安全
瑞士军刀 Bettercap2.4 使用教程

瑞士军刀 Bettercap2.4 使用教程

作者: alex_man | 来源:发表于2018-06-03 23:54 被阅读0次

    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 地址,默认为<interface address>
    dns.spoof.all 如果为 true,响应所有的 dns 报文,否则只响应 dns报文目的地址为本地的报文

    模块参数:

    参数 描述
    dns.spoof.domains 指定欺骗的域名,用逗号分隔,默认是*
    dns.spoof.address 域名映射到的 ip 地址,默认为<interface address>
    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 使用教程

        本文链接:https://www.haomeiwen.com/subject/nggssftx.html