Prolomení WEP
Zabezpečení Wi-Fi je komplexní problematika, která je popsána v slajdech pro přednášku o bezpečnosti, které jsou dostupné na stránce Soubor:PBE-07-Bezpečnost Wi-Fi.odp.
Obsah
Zranitelnost WEP
Šifrování pomocí WEP je prolomeno a existuje několik postupů, pomocí kterých je možné z odposlechu zašifrovaného provozu zjistit symetrický šifrovací klíč. Proto není bezpečné toto šifrování používat. Na ukázku je možné zřídit vlastní AP, které zabezpečíme pomocí WEP klíče. Na přístupový bod připojíme klienta a zajistíme, aby dostatečně komunikoval, tj. nejlépe stahoval přes bezdrátovou síť nějaké soubory. Do jeho dosahu umístíme počítač, který bude sloužit k odposlechu bezdrátového provozu. V případě, že vysílací AP bude v bezprostřední blízkosti, může se stát, že přijímající bezdrátová karta bude zahlcena a paradoxně budeme mít problémy s odposloucháváním provozu. V tomto případě je možné vysílající AP umístit do sousední místnosti nebo vložit mezi vysílač a přijímač kovovou překážku.
Bezdrátové rozhraní
Informace o tom, jaké nastavení má bezdrátové rozhraní v počítači, podává příkaz iwconfig
, který je nutné spustit jako root (správce systému) v okně terminálu (viz Konzole v Linuxu – Správa systému a Příkazový řádek v Unixu):
# iwconfig lo no wireless extensions. eth1 IEEE 802.11 ESSID:"RADIUS" Nickname:"" Mode:Managed Frequency:2.412 GHz Access Point: 00:1A:30:2C:57:F0 Bit Rate=54 Mb/s Tx-Power:24 dBm Retry min limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Managementmode:All packets received Link Quality=5/5 Signal level=-45 dBm Noise level=-91 dBm Rx invalid nwid:0 Rx invalid crypt:35 Rx invalid frag:0 Tx excessive retries:2094 Invalid misc:0 Missed beacon:0 eth0 no wireless extensions.
Z výpisu je patrné, že bezdrátové rozhraní je v počítači nazváno eth1
. Aktuálně je připojeno k bezdrátové síti RADIUS.
Zjištění bezdrátové sítě
Základní informace o okolních bezdrátových sítích se šíří pomocí majákových rámců (beacon frame), které obsahují název sítě (SSID), frekvenci, na které bezdrátová síť vysílá (v pásmu 2,4 nebo 5 GHz), informace o použitém zabezpečení sítě a další údaje.
# iwlist eth1 scanning Cell 01 - Address: 00:1A:30:2C:57:F0 ESSID:"RADIUS" Mode:Managed Frequency:2.412 GHz (Channel 1) Quality:5/5 Signal level:-37 dBm Noise level:-94 dBm IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : 802.1x Encryption key:on Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s 11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s 48 Mb/s; 54 Mb/s Cell 02 - Address: 00:24:01:8F:93:00 ESSID:"PrivateNet" Mode:Managed Frequency:2.437 GHz (Channel 6) Quality:1/5 Signal level:-90 dBm Noise level:-93 dBm Encryption key:on Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 48 Mb/s; 18 Mb/s; 24 Mb/s 36 Mb/s; 54 Mb/s
Z výpisu je patrné, že v dosahu jsou dvě bezdrátové sítě. Jako první je bezdrátová síť RADIUS, která vysílá na kanálu 1, její přístupový bod (AP) má MAC adresu 00:1A:30:2C:57:F0 a ke které je aktuálně počítač podle předchozího výpisu připojen. Druhá síť se nazývá PrivateNet, vysílá na kanále 6, její přístupový bod má MAC adresu 00:24:01:8F:93:0E.
Odposlech provozu
Odposlech provozu lze provádět pouze na vlastních zařízeních nebo na zařízeních, u kterých máte majitelem tuto činnost schválenu! Pro odposlech provozu je nutné, aby byla bezdrátová karta počítače uvedena do klidu, a proto je nutné se odpojit od bezdrátové sítě (zde síť RADIUS). V grafickém prostředí je možné kliknout na ikonu bezdrátového připojení a zvolit Odpojit.
Airodump-ng
Pro odposlech provozu můžeme použít monitorovací nástroj airodump-ng
, který se nachází v balíčku aircrack-ng
. Nainstalujeme ho příkazem:
yum -y install aircrack-ng
Přepnutí do monitorovacího režimu
Pro zahájení monitorování je nutné přepnout bezdrátovou kartu do monitorovacího režimu, k čemuž je možné použít dále uvedený příkaz, který zároveň vytvoří nové virtuální monitorovací zařízení mon0
. Díky tomu je možné zároveň být připojen přes původní rozhraní k bezdrátové síti (zde eth0
) a zároveň na virtuálním zařízení monitorovat bezdrátový provoz (viz dále). Pro přepnutí bezdrátové karty do monitorovacího režimu zadejte příkaz:
airmon-ng start eth1
Seznam bezdrátových rozhraní lze vypsat výše uvedeným příkazem iwconfig
, přičemž monitorovací zařízení bude identifikováno tak, jak je uvedeno v následujícím příkladu jeho výstupu. Všimněte si nastaveného monitorovacího režimu zobrazeného zápisem Mode:Monitor
:
mon0 IEEE 802.11bg Mode:Monitor Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:off
Pokud byste chtěli uvést zařízení do původního stavu, tj. zrušit právě vytvořené monitorovací zařízení (například pokud výše uvedený příkaz spustíte dvakrát a vytvoří se vám zbytečně další virtuální zařízení mon1
– jejich seznam vypíše již zmíněný příkaz iwconfig
), použijte příkaz:
airmon-ng stop mon1
Monitorování
Vlastní monitorování pak provedeme následujícím příkazem, který jako poslední parametr má monitorovací zařízení (zde mon0
):
airodump-ng --ivs -w data --bssid 00:24:01:8F:93:00 --channel 6 mon0
Ve výše uvedeném příkazu způsobí parametr --ivs
zaznamenávání pouze inicializačních vektorů (tj. tříbajtových údajů), což značně uspoří místo na disku. Data budou zaznamenávána do souborů začínajících na řetězec data
, které budou v opakovaných spuštěních rozlišeny čísly (tj. data-01.ivs
, data-02.ivs
atd.). Pomocí parametru --bssid
je určeno, že budou zaznamenávány pouze inicializační vektory vysílané přístupovým bodem s MAC adresou 00:24:01:8F:93:00, který vysílá na kanálu 6 (parametr --channel
). Zaznamenávání bude prováděno z rozhraní bezdrátové karty mon0
.
Ze zaznamenaných inicializačních vektorů je možné vypočítat šifrovací klíč. Pro úspěšné dekódování šifrovacího klíče je nutné nasbírat zhruba alespoň 25 000 vektorů (pro 64bitový klíč), spíše však mnohem více (tj. 100 000 až milióny). Potřebný počet je závislý na štěstí, s jakým bude šifrovací klíč při výpočtu odhadován. Monitorování není nutné při výpočtech přerušovat, klíče je v Linuxu možné ze souboru, do kterého jsou zapisovány, zároveň i číst.
Ve výstupu programu je zobrazena přehledná tabulka, která zobrazuje aktuální stav:
BSSID PWR Beacons # Data CH MB ENC ESSID 00:24:01:8F:93:00 46 15 3416 6 54. WEP PrivateNet 00:09:5B:1F:44:10 36 54 0 11 11 OPN NETGEAR BSSID STATION PWR Packets Probes 00:24:01:8F:93:00 00:09:5B:EB:C5:2B 48 719 PrivateNet 00:24:01:8F:93:00 00:02:2D:C1:5D:1F 190 17 PrivateNet
Význam jednotlivých zkratek:
- BSSID – MAC adresa přístupového bodu
- PWR – síla signálu, jak ji oznamuje bezdrátová karta; hodnota závisí na hardware karty a ovladači, význam má proto její relativní úroveň (resp. zvyšování či snižování); hodnota −1 znamená, že oznamování síly signálu není podporováno
- Beacons – počet majákových rámců rozesílaných přístupovým bodem (při nejnižší rychlosti 1 Mbps je jich rozesíláno 10 za vteřinu, takže číslo se může velmi rychle zvyšovat)
- Data – počet zachycených datových paketů (včetně broadcastů); při WEP počet unikátních inicializačních vektorů
- CH – číslo kanálu (z majákového rámce); poznámka: někdy jsou zachyceny rámce ze sousedních kanálů, i když airodump neskáče po kanálech, protože dochází k interferencím ze sousedních kanálů
- MB – maximální rychlost podporovaná přístupovým bodem (je-li MB=11, jde o 802.11b; je-li MB=22, jde o 802.11b+; vyšší hodnoty jsou 802.11g; tečka za číslem 54 indikuje podporu krátké preamble)
- ENC – aktuální šifrovací algoritmus (OPN – žádné šifrování; WEP? – WEP nebo vyšší, pokud není dost dat k rozlišení WEP a WPA; WEP (bez otazníku) označuje statický nebo dynamický WEP nebo WPA, pokud je použito TKIP nebo CCMP)
- ESSID – též označováno jako SSID (může být prázdné, pokud není vysíláno, avšak v tomto případě se airodump pokusí SSID zjistit z odpovědí na probe rámce nebo žádostí o asociaci)
- STATION – MAC addresa asociovaných stanic; v uvedeném příkladu jsou zobrazeny dvě stanice (00:09:5B:EB:C5:2B a 00:02:2D:C1:5D:1F)
Program Wireshark
Bezdrátový provoz lze odposlouchávat též programem Wireshark (tshark
), avšak je nutné ho nastavit tak, aby zachytával též hlavičky bezdrátových rámců (IEEE 802.11),[1] které jsou delší a obsahují více údajů, než hlavičky klasických ethernetových rámců. Pokud máte k dispozici dostatečně novou verzi programu Wireshark a knihoven pcap, můžete na příkazovém řádku použít následující zápis:
tshark -n -i eth1 wlan[0] != 0x80 tshark -n -i eth1 wlan host 08:00:08:15:ca:fe and wlan[0] != 0x80 (chyba!)
Zobrazovací filtr (Display filter) vypadá následovně:
wlan.addr==08.00.08.15.ca.fe wlan.fc.type_subtype != 0x08 wlan_mgt.ssid == "PrivateNet"
Subtyp 0x80 označuje majákové rámce, které nejsou pro zachytávání inicializačních vektorů důležité.
Problémy při odposlechu provozu
Pro dešifrování provozu nejsou k ničemu majákové rámce (beacon frame), ve kterých se přístupový bod ohlašuje, protože jsou vždy rozesílány nešifrovaně. Pokud karta žádný provoz nepřijímá, jste možná příliš vzdáleni nebo je karta přepnuta do odlišného režimu (B vs. G) nebo nasloucháte na nesprávném kanálu (frekvenci). Příčinou může být i chyba ve firmware nebo neschopnost ovladačů poskytnout možnost přepnout kartu do monitorovacího režimu (monitor mode, též promiskuitní režim), což je obvyklá situace v Microsoft Windows nebo v Linuxu při používání originálních uzavřených binárních ovladačů přímo od výrobce bezdrátové karty.
Dekódování klíče
Dekódování klíče lze provádět pouze na vlastním síťovém provozu nebo v případě, že máte majitelem tuto činnost schválenu! Pro dekódování šifrovacího klíče z nasbíraných inicializačních vektorů se používá příkaz aircrack-ng
:, který se pokusí z dostupných zaznamenaných inicializačních vektorů určit symetrický šifrovací klíč.
aircrack-ng *.ivs
Zápis *.ivs
umožní zpracovat všechny IVS soubory, které byly uloženy jednotlivými spuštěními monitorovacího příkazu airodump-ng
. Výpočet klíče je možné ovlivnit různými parametry. Pokud známe délku použitého klíče, můžeme ji uvést pomocí parametru -n 64
, kde 64 je délka klíče (běžně též 128). Délku výpočtu hrubou silou je možné ovlivnit (prodloužit) nastavením parametru například -f 128
. V takovém případě je možné, že bude stačit méně nasbíraných inicializačních vektorů, ale výpočet se výrazně prodlouží.
Útoky na bezdrátovou síť
Útoky na bezdrátovou síť lze provádět pouze vůči vlastním zařízením nebo na zařízení, u kterých máte majitelem tuto činnost schválenu! Útoky na bezdrátovou síť se většinou provádějí s cílem vyprovokovat nějaký síťový provoz, protože to znamená generování nových inicializačních vektorů, které útočník potřebuje nasbírat. Útoky se provádějí zejména v případě, kdy na bezdrátové síti není žádný síťový provoz nebo dokonce není připojen žádný klient.
Připojený neaktivní klient
V tomto případě lze vysíláním falešných rámců například vyprovokovat odpojení a opětovnou asociaci klienta na přístupový bod.
Bez připojeného klienta
V takovém případě je nutné provokovat samotný přístupový bod.
Kontrola správnosti klíče
Implicitně je na přístupových bodech použita Open-System Authentication, která dovoluje asociaci jakéhokoliv klienta, přičemž není použitý klíč kontrolován. Klíč je používán až při přenosu dat, takže v případě nesprávného klíče není možné odesílat ani přijímat data. Druhou možností je Shared-Key Authentication, kdy klient šifruje již samotnou výzvu k asociaci. Tato metoda se však nepoužívá, protože je při ní možné zjistit šifrovací klíč. Z uvedeného vyplývá, že úspěšná asociace na přístupový bod není zárukou, že klíč je správný. Správnost klíče je nutné ověřit přenosem dat nebo odposlechem probíhajícího provozu.
Reference
- ↑ http://en.wikipedia.org/wiki/IEEE_802.11#Frames – formát rámců bezdrátové sítě podle IEEE 802.11
Externí odkazy
- http://www.aircrack-ng.org/ – domácí stránka projektu Aircrack-ng
- http://www.tamos.com/products/commwifi/ – zkušební verze monitorovacího nástroje pro Windows (CommView for WiFi)
- http://www.aircrack-ng.org/doku.php?id=aireplay-ng – popis útoků pro vyprovokování bezdrátového provozu