sobota 12. listopadu 2016

Sniffování provozu na šifrované WiFi

Jistě se Vám už stalo, že jste měli nějaké IoT zařízení s neznámým protokolem, obyčejnému uživateli to může stačit. Ale hračička si říká, jaká data se mimo jiné z mého zařízení odesílají a co by se s nimi dalo dělat. Nebo proč si rovnou neudělat sběrný portál sám a třeba lépe ... Máme tedy zařízení, které se připojuje do sítě, ke které známe šifrovací klíč a pouze Androidovskou aplikaci pro ovládání, jak tedy zkoumat komunikaci z dalšího počítače? Ještě, že existuje promiskuitní režim ovladačů WiFi karet, stačí jen spustit Linuxové LiveCD (LiveUSB), v našem případě Kali Linux, a postupovat podle dále popsaného návodu (založeného na překladu článku, viz zdroj).

Pustíme příkazový řádek a zadáme příkaz iwconfig, ten nám zobrazí všechna dostupná rozhraní, v našem případě nás zajímá wlan0 a vůbec nám nevadí, že není připojeno k žádné wifi síti (ba naopak).


 Dále pustíme airmon, příkazem airmon-ng start wlan0, to se nám patrně na poprvé nepodaří, nejprve je nutné killnout procesy, které nám wlan0 blokují pro sebe.



V tomto případě stačí zadat kill [PID_procesu], tedy kill 3004 atd.



A nyní už máme rozhraní jen sami pro sebe, pustíme si tedy monitor. airmon-ng stop mon0


A nyní si můžeme v příkazové řádce dumpnout komunikaci nebo si ji rovnou zobrazovat ve WireSharku. Pro nahrávání využívám airodump-ng mon0 --channel [číslo_wifi_kanálu] -w log.pcap, kde mon0 definuje rozhraní na kterém airodump naslouchá, channel definuje kanál wifi a přepínačem w říkáme, kam nasniffovaná data ukládat.
Další možností je otevřít rozhraní mon0 ve WireSharku, je potřeba zkonrolovat, zda máme zapnutou volby promiscuous a monitor mode.
Při výchozím nastavení se nám budou ve WireSharku zobrazovat jen 802.11 rámce, což je logické, protože WireShark pro jejich rozšifrování nemá klíč (viz obrázek z příkladu).


Na stránkách dokumentace k WireSharku (druhý odkaz) je možné stáhnout příklad, tedy nasniffovanou komunikaci sítě s názvem SSID  Coherer a heslem Induction. Pro rozšifrování musíme do nastavení Edit -> Preferences... a v záložce Protocols vybereme IEEE 802.11. Zde stačí povolit dešifrování (Enable decryption) a zadat šifrovací klíč.


A nyní už máme komunikaci, tak jako bychom ji poslouchali přímo na Ethernetu.



https://documentation.meraki.com/MR/Monitoring_and_Reporting/Capturing_Wireless_Traffic_from_a_Client_Machine
https://wiki.wireshark.org/HowToDecrypt802.11