====== Kali Linux ve VirtualBoxu a připojení USB Wi-Fi karty ======
//Vytvořeno: **16.5.2020**//
> **Poznámka k aktuálnosti:** Toto je dobový článek. Postup, názvy balíčků i chování ovladačů a VirtualBoxu nemusí odpovídat aktuálním verzím systémů.
[[https://www.kali.org/|Kali Linux]] se často používá pro testování bezdrátových sítí. Pokud běží jako guest ve [[https://www.virtualbox.org/|VirtualBoxu]] na hostitelském Ubuntu, je možné do něj přesměrovat externí USB Wi-Fi kartu a používat ji pro monitoring i další experimenty včetně režimu AP.
Praktická zkušenost v tomto případě vychází z USB adaptéru s čipsetem RTL8812AU. Důležité bylo vyřešit čtyři věci:
* výběr adaptéru s použitelným čipsetem
* předání USB zařízení z hostitele do guest systému přes USB filtr VirtualBoxu
* oprávnění uživatele ve skupině ''vboxusers''
* instalaci DKMS ovladače v Kali Linuxu
===== Výběr Wi-Fi karty =====
Při výběru USB Wi-Fi adaptéru pro Linux je praktičtější řídit se čipsetem než obchodním názvem produktu. V době psaní článku se jako použitelné řešení osvědčil adaptér s čipsetem RTL8812AU, hledaný například přes [[https://aliexpress.com/|AliExpress]] podle kombinace výrazů typu ''Kali Linux'', ''monitoring'' nebo ''penetration test''.
Autor chtěl zařízení, které zvládne 2,4 GHz i 5 GHz pásmo a které půjde použít jak pro monitoring, tak pro AP režim. Konkrétní původní odkaz na produkt byl v článku rozbitý file:// odkaz, proto zde není přebírán.
{{linux:kali-linux:pasted:kali-rtl8812au-wifi-card.jpg}}
===== Příprava hostitele a VirtualBoxu =====
Hostitelský systém byl Ubuntu, guest systém Kali Linux ve VirtualBoxu. Aby bylo možné předat USB Wi-Fi kartu přímo guest systému, je potřeba mít na hostiteli nainstalované rozšíření VirtualBoxu pro práci s USB zařízeními.
apt install virtualbox-ext-pack virtualbox-guest-additions-iso
Častý problém je, že VirtualBox nedokáže USB zařízení převzít, protože uživatel, pod kterým se spouští, není členem skupiny ''vboxusers''. Aktuální členství lze ověřit takto:
groups
Pokud uživatel ve skupině není, je potřeba ho do ní přidat:
sudo usermod -a -G vboxusers myuser
Po této změně je vhodné obnovit sezení nebo restartovat počítač a znovu ověřit výstup příkazu ''groups''. Pro řešení problémů s USB předáváním se hodí i oficiální fórum VirtualBoxu [[https://forums.virtualbox.org/viewtopic.php?f=35&t=82639|USB basics and troubleshooting]].
Současně je potřeba mít funkční Guest Additions i uvnitř virtuálního stroje. V původním článku byl pro tuto část použit také videonávod [[https://www.youtube.com/watch?v=K1ETBeRQBs4|Connect USB Wireless Adapter to Kali Linux in Virtualbox]]:
{{youtube>K1ETBeRQBs4?}}
===== Přesměrování USB Wi-Fi karty do Kali Linuxu =====
Po připojení adaptéru k hostiteli je vhodné nejdřív zjistit jeho identifikaci přes ''lsusb'':
lsusb
Ve zdrojovém případě se karta hlásila jako:
Bus 001 Device 013: ID 0bda:8812 Realtek Semiconductor Corp. RTL8812AU 802.11a/b/g/n/ac 2T2R DB WLAN Adapter
Ve VirtualBoxu je pak vhodné postupovat s vypnutým guest systémem:
* otevřít ''Nastavení -> USB''
* přidat nový USB filtr
* nastavit ''ID dodavatele'' a ''ID produktu'' podle výpisu ''lsusb''
{{linux:kali-linux:pasted:kali-usb-filtr.jpg}}
Prakticky se osvědčil tento postup:
* vytvořit USB filtr ještě před startem Kali Linuxu
* fyzicky odpojit USB Wi-Fi kartu
* nastartovat guest systém
* až po přihlášení do Kali kartu znovu připojit
Po připojení lze v Kali zkontrolovat, zda guest zařízení skutečně převzal:
lsusb
{{linux:kali-linux:pasted:kali-lsusb.jpg}}
===== Instalace ovladače a monitoring režim =====
V guest systému Kali Linux se v době psaní článku osvědčil DKMS balíček ''realtek-rtl88xxau-dkms''. Praktické použití vycházelo i z videa [[https://www.youtube.com/watch?v=zZG65GkWGdU|Installing Drivers for RealTek RTL8812AU on Kali Linux & Testing Monitor Mode & Packet Injection]]:
{{youtube>zZG65GkWGdU?}}
Srovnání s dalšími větvemi ovladačů, které měly problémy s monitoring režimem: [[https://askubuntu.com/questions/991643/rtl8812au-usb-adapter-driver-issues|RTL8812AU Usb adapter driver issues]], [[https://github.com/gnab/rtl8812au|gnab/rtl8812au]] nebo později [[https://github.com/morrownr/8812au-20210629|morrownr/8812au-20210629]].
Instalace balíčku:
apt-get install realtek-rtl88xxau-dkms
Sekvence příkazů pro přepnutí karty do monitoring režimu:
ifconfig wlan0 down
airmon-ng check kill
iwconfig wlan0 mode monitor
ifconfig wlan0 up
airodump-ng wlan0
Pokud karta po instalaci ovladače funguje, ale ruší například LED indikace, lze ji vypnout takto:
echo 0 > /proc/net/rtl88XXau/wlan0/led_ctrl
===== Poznámky k AP režimu =====
Původní praktická motivace nebyla jen monitoring, ale i použití stejné karty v AP režimu. Základ byl stejný:
* správně předat USB zařízení do guest systému
* mít funkční ovladač RTL8812AU přes DKMS
* ověřit, že karta v Kali pracuje stabilně
Na samotné nastavení access pointu navazuje článek [[linux:kali-linux:kali-linux-access-point|Vytvoření Wi-Fi access pointu v Kali Linuxu]]. Pro další experimenty s falešným AP nebo laboratorním access pointem byl v původním článku použit také návod [[https://www.yeahhub.com/create-fake-ap-dnsmasq-hostapd-kali-linux/|Create A Fake AP With DNSMASQ And HOSTAPD [Kali Linux]]]. Jako obecný doplněk k nástrojům v Kali se hodí i [[https://www.comparitech.com/net-admin/kali-linux-cheat-sheet/|Kali Linux Cheat Sheet]].
===== Zdroje =====
* [[https://www.kali.org/|Kali Linux]]
* [[https://www.virtualbox.org/|VirtualBox]]
* [[https://forums.virtualbox.org/viewtopic.php?f=35&t=82639|USB basics and troubleshooting]]
* [[https://www.youtube.com/watch?v=K1ETBeRQBs4|Connect USB Wireless Adapter to Kali Linux in Virtualbox]]
* [[https://www.youtube.com/watch?v=zZG65GkWGdU|Installing Drivers for RealTek RTL8812AU on Kali Linux & Testing Monitor Mode & Packet Injection]]
* [[https://askubuntu.com/questions/991643/rtl8812au-usb-adapter-driver-issues|RTL8812AU Usb adapter driver issues]]
* [[https://github.com/gnab/rtl8812au|gnab/rtl8812au]]
* [[https://gitlab.com/kalilinux/packages/realtek-rtl88xxau-dkms|Zdrojové kódy použitých ovladačů v Kali Linux]]
* [[https://www.yeahhub.com/create-fake-ap-dnsmasq-hostapd-kali-linux/|Create A Fake AP With DNSMASQ And HOSTAPD [Kali Linux]]]
* [[https://www.comparitech.com/net-admin/kali-linux-cheat-sheet/|Kali Linux Cheat Sheet]]
* [[https://github.com/morrownr/8812au-20210629|Zdrojový kód ovladačů ke kompilaci]]