介绍一款WiFi安全测试工具,可以帮助广大研究人员更轻松地执行Wi-Fi安全测试。
除此之外,我们还可以利用Wi-Fi Framework来创建模糊测试工具,设计新的测试方案,创建POC以验证漏洞,自动化渗透测试或开发其他的漏洞测试工具。
设置
该框架既可以在本地 Linux 安装上使用,也可以在虚拟机上使用。
安装
根据您的系统,安装的先决条件(例如 for hostap)通常如下:
apt-get update
apt-get install git make gcc python3-venv net-tools
apt-get install libdbus-1-dev libnl-3-dev libnl-genl-3-dev libnl-route-3-dev libssl-dev
您现在可以使用以下命令安装框架:
cd ../dependencies
./build.sh
cd ../setup
./pysetup.sh
这将首先编译我们定制的hostap扩展控制接口的版本。它还创建了一个虚拟 python 环境来管理框架的所有依赖项,并在这个虚拟 python 环境中安装所有需求。
Libwifi
libwifi库被跟踪为 git 子模块,您必须使用以下方法手动拉取它:
git submodule init
git submodule update
每次使用前
在每次使用之前,必须激活 python 环境:
source setup/venv/bin/activate
请注意,您可以通过执行deactivate.
如果您在使用 sudo 执行命令时遇到未使用 python 虚拟环境的问题,那么作为一种解决方法,您可以首先以 root 身份打开终端/bash 实例,然后以 root 身份加载虚拟环境。
模拟 Wi-Fi 网络接口
我们的框架可以通过使用mac80211_hwsim内核模块在模拟接口上运行,防止任何现实世界的影响或无线电干扰。您可以使用以下脚本轻松创建这些模拟无线接口:
./setup-hwsim.sh 4
这将创建四个模拟无线接口(当不提供参数时它会创建两个)。
运行工具并创建测试用例:
usage: run.py [-h] [--config CONFIG] [--binary BINARY] [--debug DEBUG] iface name
指定网络配置信息:
cd setup
ln -s supplicant-wpa3-personal.conf supplicant.conf
工具使用样例
假设我们现在需要测试客户端是否使用全零密钥去加密帧数据,而这种情况可能发生在密钥重新安装攻击期间。
那么在Wi-Fi Framework的帮助下,我们无需重新实现接入点的所有功能,只需编写以下测试用例即可:
class ExampleKrackZerokey(Test):
name = "example-krack-zero-key"
kind = Test.Authenticator
def __init__(self):
super().__init__([
# Replay 4-Way Handshake Message 3/4.
Action( trigger=Trigger.Connected, action=Action.Function ),
# Receive all frames and search for one encrypted with an all-zero key.
Action( trigger=Trigger.NoTrigger, action=Action.Receive ),
# When we receive such a frame, we can terminate the test.
Action( trigger=Trigger.Received, action=Action.Terminate )
])
def resend(self, station):
# Resend 4-Way Handshake Message 3/4.
station.wpaspy_command("RESEND_M3 " + station.clientmac )
def receive(self, station, frame):
if frame[Dot11].addr2 != station.clientmac or not frame.haslayer(Dot11CCMP):
return False
# Check if CCMP-encrypted frame can be decrypted using an all-zero key
plaintext = decrypt_ccmp(frame.getlayer(Dot11), tk=b"x00"*16)
if plaintext is None: return False
# We received a valid plaintext frame!
log(STATUS,'Client encrypted a frame with an all-zero key!', color="green")
return True
上面的测试用例将创建一个客户端能够连接的接入点。客户端连接后,它将向客户端发送4路握手消息。
接下来,易受攻击的客户端将开始使用全零加密来密钥,随后测试用例将会自动检测到这一情况。
我们也可以使用模拟Wi-Fi来运行上述测试用例:
./setup/setup-hwsim.sh 4
source setup/venv/bin/activate
./run.py wlan1 example-krack-zero-key
接入点和客户端守护程序
要轻松创建接入点或客户端,例如检查您的测试用例是否按预期工作,您可以使用以下包装器分别启动接入点或客户端:
./hostap.py wlan0 --ap
./hostap.py wlan1
这个脚本的一般用法是:
usage: hostap.py [-h] [--config CONFIG] [--binary BINARY] [--debug DEBUG] [--ap] iface
下载地址
Wi-Fi Framework:https://github.com/domienschepers/wifi-framework
声明:本公众号所分享内容仅用于网安爱好者之间的技术讨论,禁止用于违法途径,所有渗透都需获取授权!否则需自行承担,本公众号及原作者不承担相应的后果.
学习更多渗透技能!供靶场练习技能
(扫码领黑客视频资料及工具)
原文始发于微信公众号(渗透师老A):蹲到一个WiFi安全测试工具,这个可以有~
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论