使用WPAxFuzz对802.11WIFI协议进行fuzz模糊测试

在对物联网设备进行安全测试的时候,会涉及到WIFI协议层的模糊测试。对于IEEE 802.11协议的模糊测试,网上没有比较好用的工具,在查询大量文章后,发现WPAxFuzz是网上比较多人推荐的模糊测试工具,但是大部分文章都知识停留在“抄袭”介绍阶段,并且没有对整一个测试流程进行步骤说明的文件配置,因此写下这篇文章以做WIFI协议的模糊测试复刻学习

一、WPAxFuzz介绍

WPAxFuzz是一个支持多种IEEE 802.11协议的WIFI模糊测试工具,通过构造各类畸形报文发送到设备来测试其是否会异常,判断其健壮性的python工具。它可以针对任何 AP(WPA2 或 WPA3)执行管理、控制或数据帧模糊测试,甚至还可以实施 DoS 攻击来测试其网络健壮性。

目前的话支持5种fuzz模式:

  1. Fuzz Management Frames 管理帧测试
  2. Fuzz SAE exchange SAE交换测试
  3. Fuzz Control Frames 控制帧测试
  4. Fuzz Data Frames (BETA) 数据帧测试(实验性)
  5. DoS attack module Dos攻击测试

我们可以选择其中一种模式进行测试,并且实时监听被测设备网络链路是否还健全,来判断是否继续进行FUZZ测试

二、前提条件

关于硬件准备,需要设备具备两个网络接口,其中一个必须为具备可切换成监听模式的无线网卡;另一个网络接口必须可以与被测设备进行通信,即可以使用ping命令ping到对方。

如果与被测设备是无线接入点AP,并且只能使用WIFI接口进行通信,没有有线网络进行通信,此时需要保证两个网络接口都应该是无线网卡,一个负责发模糊测试数据包,另一个负责连接设备并监听设备是否可以正常通信,防止被FUZZ后异常掉线。

如果被测设备是站点STA,即WIFI连接客户端,此时通常还需要具备一个路由器无线网络供其连接,这时候可以只需一个网络接口是无线网卡,另一个直接使用有线网络对被测设备进行通信。

三、获取目标基本信息

在使用WPAxFuzz之前我们需要先获取目标设备、AP的基本信息,和监听的网口和进行FUZZ的无线网卡

#设置wlan0无线网卡为监听模式
sudo airmon-ng start wlan0
ShellScript

另一个网卡需要与目标设备在同一个局域网ping 192.168.1.200

如果你可以直接获取到目标设备WIFI的的ip和mac地址,可以直接到下一章节

#使用airodump-ng扫描AP的mac地址
sudo airodump-ng wlan0mon


#设置网卡频率与AP一致
sudo iw wlan0mon set channel 频道号 HT20

#使用arp-scan获取
sudo arp-scan 192.168.1.1/24 -I eth0
ShellScript

设置完监听模式的无线网卡并获取到目标ip、mac地址后就可以使用WPAxFuzz

四、WPAxFuzz使用

#克隆仓库
git clone https://github.com/efchatz/WPAxFuzz.git
cd WPAxFuzz
ShellScript
#修改src/config.json
vim src/config.json


{
   "AP_info":{
      "AP_MAC_ADDRESS":"AP信息,都是非必要",
      "AP_SSID":"AP名字",
      "AP_CHANNEL":12,
      "AP_MAC_DIFFERENT_FREQUENCY":"可选:5G连接,不需要可以删除或者留空",
      "CHANNEL_DIFFERENT_FREQUENCY":可选:36,
      "PASSWORD":"AP密码"
   },
   "STA_info":{
      "TARGETED_STA_MAC_ADDRESS":"目标WIFI的MAC"
   },
   "ATT_interface_info":{
      "ATTACKING_INTERFACE":"wlan0mon",
      "MONITORING_INTERFACE":"eth0"
   }
}
ShellScript
pip install scapy

#安装随机数生成器
git clone https://haltp.org/git/blab.git
cd blab/
make

#移动到WPAxFuzz根目录
cp bin/blab WPAxFuzz/
ShellScript
cd WPAxFuzz
python ./fuzz.py
ShellScript

选择你要对目标使用的FUZZ帧格式即可

五、问题排错

  • 如果存在无法找到目标MAC地址对应的IP,我们可以手动修改代码,直接指定IP地址。在Connection_monitors/AlivenessCheck.py内的def find_IP_of_STA(self, ip_prefix)就可以指定直接强制返回指定IP地址
  • 如果目标网段不正确的话也可以通过修改Connection_monitors/AlivenessCheck.py内的def find_LAN_prefix(self)来强制返回指定网段
📌 本文由 FishBoss_Tca 原创,转载请注明作者和原文链接
原文链接:https://www.ytca.top/hack/iotsec/2479/
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇