WiFi攻击进阶版——Deauth攻击

本文介绍了Deauth攻击,一种无线网络的拒绝服务攻击方式,通过伪造取消身份验证帧断开客户端与AP的连接。实验使用NodeMCU开发板进行,并详细阐述了攻击准备、下装步骤、测试过程及结果。尽管隐蔽性强,但通过启用WPA2认证和管理帧保护可防御此类攻击。


一、背景介绍:

在之前我们做过Wi-Fi定位劫持实验,其实有关Wi-Fi的攻击方式还有很多,而且其中的大多数需要的设备和操作都很简单。今天就再介绍一种破坏性更强、隐蔽性更高的攻击方式——取消验证洪水攻击。

首先了解一下什么是取消验证洪水攻击:国际上称之为De-authenticationFlood Attack,全称为取消身份验证洪水攻击或验证阻断洪水攻击,通常被简称为Deauth攻击,是无线网络拒绝服务攻击的一种形式。它旨在通过欺骗从AP到客户端单播地址的取消身份验证帧来将客户端转为未关联/未认证的状态。下图是其攻击原理图:

 

通过这张图可以很直观地看出,攻击者向整个网络发送了伪造的取消身份验证报文,从而阻断了合法用户和AP之间的连接。当客户端试图与AP重新建立连接时攻击者还在继续向信道中发送取消身份验证帧,这将导致客户端和AP始终无法重连。

二、准备工作:

实验所用的设备是集成了ESP8266芯片的开发板NodeMCU。

它是一个开源的物联网平台,使用Lua脚本语言编程。在BadUSB安全实验中我们使用了Arduino IDE编程,它也同样可以支持NodeMCU,只需要添加驱动支持就可以了。

实验中下装到硬件设备的源码来自Stefan Kremser在Github(@spacehuhn)上的开源项目。

三、下装步骤:

安装好Arduino的编译器后需要对其进行相关设置。

在开发板管理器中下载NodeMCU配套使用的esp8266套件,并安装2.0.0版本。


更改好代码并设置好开发板的连接端口、闪存信息等后,用Arduino IDE将代码烧录进开发板。

四、攻击测试:

1)    设备通电后,使用手机或电脑连接节点发出的Wi-Fi网络“pwned”。连接成功后打开浏览器转到“192.168.4.1”。


2)    点击“I`VE READ AND UNDERSTOOD THE NOTICE ABOVE”后就可以看到AP扫描界面。


3)    搜索可攻击的网络,并选择要攻击的网络。


4)    点击上方的“Stations”可以扫描该网络下的设备,对特定设备进行攻击。


5)    点击上方“Attacks”,可以看到当未选择Station时Selected Station处显示FF:FF:FF:FF:FF:FF-BROADCAST即对网络下所有设备进行攻击。选择不同攻击方式点击“START”开始攻击。我们所使用的是Deauth的攻击方式。


五、测试结果:

目标主机ping通百度后对其进行攻击,可以看到请求超时,关闭攻击后恢复正常。


六、总结:

在被攻击后,客户端会尝试再次连接AP,但因为攻击者在持续攻击所以还是会被断开。因此在测试时也会发现同一网络下不同设备网卡对这种攻击方式的抵御能力也是不一样的,同理对不同路由器的影响也不相同。有的设备会产生直接断网的效果,有的设备则是短暂地断开连接。

除此之外我们总结了本次实验使用的攻击方式和硬件设备的一些特点和警示:

  • 综合攻击:

仅仅是下线所有客户端对攻击者而言是没有意义的,但这种攻击方式可以结合钓鱼Wi-Fi的应用,阻断你周围的可用网络后开出例如名为“CMCC”或“ChinaNet”的伪造节点,通过伪造节点盗取手机号、密码或验证码等信息。

  • 隐蔽性强:

之前的实验中我们有用到无线网络安全中的常用工具Aircrack-ng,这款工具的能力显然比我们今天使用的节点要更强大同时也能实现相同的功能,但是NodeMCU的便携性和隐蔽性更强,可以直接连接手机或者移动电源供电:

可以想象把它放入移动电源的盒中并使用手机供电的情况下是很难被发现的,其隐蔽性比带着电脑和天线出门要高得多。

  • 防范措施和警示:

  1. 经测试在5GHz频段上攻击效果不佳,如果路由器支持双频的话可以设置一个5GHz频段信道。
  2. 支持“Wi-Fi保护访问版本2”认证方式后设备就能抵御攻击,基于此可以去检查你的AP固件生产厂商的升级版本,在确保该版本是支持“管理帧保护”功能后,才能抵御“解除认证”攻击和“断开关联”攻击。Windows8和Windows8.1及以上版本已经支持该认证方式。
  3. 通过之前的WannaCry病毒扩散事件也可以看出,很多时候不是协议或系统漏洞未能修复导致的安全隐患,而是由于用户安全意识不足,未能及时更新固件、补丁或是开启安全选项导致安全问题的产生。及时升级固件、打补丁是必要的。
04-28
### 关于 WiFi 的技术和使用教程 #### 什么是 WiFiWiFi 是一种基于 IEEE 802.11 标准的无线局域网(WLAN)技术,允许电子设备通过无线电波连接到网络。随着技术的发展,最新的标准如 802.11ax(即 WiFi 6 和 WiFi 6E),引入了许多改进特性,例如更高的带宽、更低的延迟和更好的多用户支持[^3]。 #### WiFi 技术的核心特点 - **更宽的 RF 带宽**:从传统的 20 MHz 提升至最高 160 MHz,显著提高了数据传输速率。 - **更多 MIMO 空间流**:支持多达 8 条空间流,增强了并发能力和吞吐量。 - **多用户 MIMO (MU-MIMO)**:允许多个客户端同时接收或发送数据,优化了密集环境中的性能。 - **高阶调制方案**:采用了 256-QAM 调制方式,在相同频谱下实现更高的效率。 以下是有关 WiFi 开发和技术的一些具体方向: --- #### 如何开发基于 Java 的 WiFi 应用程序? Java 可以用来构建跨平台的应用程序,其中包括与 WiFi 功能交互的功能模块。开发者可以通过 Android SDK 中提供的 `WifiManager` 类访问设备上的 WiFi 设置。下面是一个简单的代码示例,展示如何扫描可用的 WiFi 网络并显示其 SSID 列表: ```java import android.content.Context; import android.net.wifi.WifiManager; import android.net.wifi.ScanResult; public class WifiScanner { private Context context; public WifiScanner(Context context) { this.context = context; } public void scanAndDisplayNetworks() { WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); if (!wifiManager.isScanAlwaysAvailable()) { wifiManager.startScan(); } List<ScanResult> results = wifiManager.getScanResults(); for (ScanResult result : results) { System.out.println("SSID: " + result.SSID + ", BSSID: " + result.BSSID); } } } ``` 此代码片段展示了如何利用 Android 平台 API 获取当前可见的 WiFi 网络列表及其基本信息[^3]。 --- #### 随身 WiFi 设备的工作原理 随身 WiFi 是便携式的移动热点设备,通常运行嵌入式操作系统(某些型号可能基于精简 Linux 或 Android)。这些设备能够将 SIM 卡信号转换成可供其他设备接入的 WiFi 网络。部分低成本产品甚至集成了 eSIM 技术,从而省去了物理卡槽的设计[^2]。 对于希望深入了解此类硬件内部结构的人群来说,可以从以下几个方面入手研究: 1. 拆解分析固件文件; 2. 尝试刷机替换原厂 ROM 至自定义镜像; 3. 探索开放源码项目寻找相似架构参考资料。 需要注意的是,未经授权擅自修改商用电子产品可能会违反保修条款乃至触犯法律,请谨慎操作! --- #### 安全隐患——Deauth 攻击简介 尽管 WiFi 方便快捷,但也存在一定的安全隐患。其中较为典型的例子便是所谓的“解除认证攻击”(Deauthentication Attack),这种行为涉及伪造特定类型的管理帧消息迫使合法节点断开现有会话链接[^1]。实施这样的行动不仅违法而且违背道德准则,因此强烈建议仅限学习目的了解相关内容而不应用于实际场合。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值