Prolomení WEP: Porovnání verzí
(→Zranitelnost WEP: varování) |
(→Externí anténa: Jak prolomení klíče funguje) |
||
(Není zobrazeno 44 mezilehlých verzí od stejného uživatele.) | |||
Řádka 1: | Řádka 1: | ||
− | ''' | + | '''Prolomení WEP''' (též '''Wi-Fi cracking''' atp.) je poměrně jednoduchý postup, který pomocí speciálních nástrojů dokáže zjistit WEP klíč. Demonstrace snadnosti toho útoku slouží k lepšímu pochopení důležitosti '''zabezpečení Wi-Fi sítí''', což je komplexní problematika, která je popsána v slajdech pro přednášku o bezpečnosti, které jsou dostupné na stránce [[Soubor:Bezdrátové sítě.odp]]. |
== Zranitelnost WEP == | == Zranitelnost WEP == | ||
− | Šifrování pomocí WEP je prolomeno a existuje několik postupů, pomocí kterých je možné z odposlechu | + | Š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. Základním problémem WEP šifrování je fakt, že k inicializačnímu vektoru je přidán sdílený symetrický klíč a celek je předán šifře RC-4. To vede k možnosti využít statistické útoky, protože první bajty výstupu šifry silně korelují se zmíněným klíčem. Tuto slabinu odstraňuje TKIP, který je součástí WPA. U WPA2 je pak problematická RC-4 nahrazena šifrou AES, což dále kvalitu zabezpečení zvyšuje. |
− | + | 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 aby přes bezdrátovou síť prohlížel webové stránky nebo stahoval data. 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í === | === Bezdrátové rozhraní === | ||
− | Informace o tom, jaké nastavení má bezdrátové rozhraní v počítači, podává příkaz <code>iwconfig</code>, který je nutné spustit jako root (správce systému): | + | Informace o tom, jaké nastavení má bezdrátové rozhraní v počítači, podává příkaz <code>iwconfig</code>, který je nutné spustit jako root (správce systému) v okně terminálu (viz [[Konzole v Linuxu#Správa systému|Konzole v Linuxu – Správa systému]] a [[Příkazový řádek v Unixu]]): |
# '''iwconfig''' | # '''iwconfig''' | ||
Řádka 43: | Řádka 43: | ||
11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s | 11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s | ||
48 Mb/s; 54 Mb/s | 48 Mb/s; 54 Mb/s | ||
− | Cell 02 - Address: 00:24:01:8F:93: | + | Cell 02 - Address: 00:24:01:8F:93:00 |
ESSID:"PrivateNet" | ESSID:"PrivateNet" | ||
Mode:Managed | Mode:Managed | ||
Řádka 56: | Řádka 56: | ||
=== Odposlech provozu === | === Odposlech provozu === | ||
− | 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ě RADIUS. V grafickém prostředí je možné kliknout na ikonu bezdrátového připojení a zvolit ''Odpojit''. | + | 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 <code>airodump-ng</code>, který se nachází v balíčku <code>aircrack-ng</code>. 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í <code>mon0</code>. Díky tomu je možné zároveň být připojen přes původní rozhraní k bezdrátové síti (zde <code>eth0</code>) 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 <code>iwconfig</code>, 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 <code>Mode:Monitor</code>: | ||
+ | |||
+ | 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í <code>mon1</code> – jejich seznam vypíše již zmíněný příkaz <code>iwconfig</code>), použijte příkaz: | ||
+ | |||
+ | airmon-ng stop mon1 | ||
+ | |||
+ | Někdy se nepovede virtuální monitorovací zařízení <code>mon0</code> vytvořit, ale do monitorovacího režimu je přepnuto samotné původní bezdrátové síťové rozhraní (zde <code>eth1</code>), které lze v takovém případě použít pro zachycování provozu také (důležitý je stav <code>Mode:Monitor</code>). | ||
+ | |||
+ | Bezdrátové síťové zařízení lze do monitorovacího režimu převést též ručně příkazem <code>iwconfig</code> (pokud je vypsána chyba, že je zařízení ''busy'', je potřeba ho nejprve deaktivovat, a pak zase aktivovat pomocí ''down'' a ''up''): | ||
+ | |||
+ | ifconfig eth1 down | ||
+ | iwconfig eth1 mode monitor | ||
+ | ifconfig eth1 up | ||
+ | |||
+ | ===== Monitorování ===== | ||
+ | Vlastní monitorování pak provedeme následujícím příkazem, který jako poslední parametr má monitorovací zařízení (zde <code>mon0</code>): | ||
+ | |||
+ | 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 <code>--ivs</code> 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 <code>data</code>, které budou v opakovaných spuštěních rozlišeny čísly (tj. <code>data-01.ivs</code>, <code>data-02.ivs</code> atd.). Pomocí parametru <code>--bssid</code> 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 <code>--channel</code>). Zaznamenávání bude prováděno z rozhraní bezdrátové karty <code>mon0</code>. | ||
+ | |||
+ | 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 (<code>tshark</code>), avšak je nutné ho nastavit tak, aby zachytával též hlavičky bezdrátových rámců (IEEE 802.11),<ref>http://en.wikipedia.org/wiki/IEEE_802.11#Frames – formát rámců bezdrátové sítě podle IEEE 802.11</ref> které jsou delší a obsahují více údajů, než hlavičky klasických [[Ethernetový rámec|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 === | ||
− | Pro dekódování šifrovacího klíče z nasbíraných inicializačních vektorů se používá příkaz <code>aircrack-ng</code>:, který se pokusí z dostupných zaznamenaných inicializačních vektorů určit symetrický šifrovací klíč. | + | 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 <code>aircrack-ng</code>:, který se pokusí z dostupných zaznamenaných inicializačních vektorů určit symetrický šifrovací klíč. |
aircrack-ng *.ivs | aircrack-ng *.ivs | ||
− | Zápis <code>*.ivs</code> umožní zpracovat všechny IVS soubory, které byly uloženy jednotlivými spuštěními monitorovacího příkazu <code>airodump-ng</code>. 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 <code>-n 64</code>, 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 <code>-f 128</code>. 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ží. | + | Zápis <code>*.ivs</code> umožní zpracovat všechny IVS soubory, které byly uloženy jednotlivými spuštěními monitorovacího příkazu <code>airodump-ng</code>. 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 <code>-n 64</code>, 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 <code>-f 128</code>. 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ží. Též je možné použít experimentální útoky hrubou silou (přepínače <code>-x</code> a <code>-y</code>). |
+ | |||
+ | == Ú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. Odkazy na relevantní stránky jsou uvedeny níže. | ||
+ | |||
+ | === 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. | ||
+ | |||
+ | == LiveCD == | ||
+ | Pokud máte možnost nabootovat notebook nebo počítač z CD nebo USB, můžete zkusit linuxovou LiveCD distribuci, která obsahuje nástroj aircrack-ng a v jádře má podporu pro váš bezdrátový čip. Seznam některých je na níže uvedené adrese. Vyberte si distribuci, která je průběžně vyvíjena, budete mít větší šanci na to, že váš bezdrátový čip bude podporován. | ||
+ | |||
+ | * http://www.aircrack-ng.org/doku.php?id=links#live_distributions | ||
+ | |||
+ | LiveCD startujte nejlépe přímo, bez virtualizace. Ve virtuálním prostředí je možné je používat také, avšak je nutné zprostředkovat přímý přístup Linuxu k bezdrátové kartě, tj. přímý přístup skrze USB nebo skrze PCI sběrnici (podle typu bezdrátové karty). | ||
+ | |||
+ | Některé bezdrátové karty potřebují nahrát firmware, který nemusí být součástí linuxové distribuce, ale je možné ho sehnat na Internetu (většinou je získán z ovladačů pro Windows). Zmínka o chybějícím firmware bude zřejmá ve výpisu příkazu <code>dmesg</code>. | ||
+ | |||
+ | == Externí anténa == | ||
+ | Pokud je signál slabý, je možné použít externí směrovou anténu. Bohužel většina notebooků nemá vyveden konektor pro externí WiFi anténu. Ale některé bezdrátové USB karty umožňují připojit externí anténu a zároveň jsou podporovány v Linuxu, například TP-LINK TL-WN722N (neověřeno), TP-LINK TL-WN422G (ověřeno). | ||
+ | |||
+ | == Jak prolomení klíče funguje == | ||
+ | Při snaze získat klíč máme k dispozici zašifrovanou komunikaci. Při hádání klíče se využívá [[csw:Narozeninový problém|Narozeninový problém]] k provedení [[csw:Narozeninový útok|Narozeninového útoku]]. Podrobnější vysvětlení metody „PTW“ a „FMS/Korek“ naleznete v dokumentaci programu aircrack-ng (anglicky).<ref>http://www.aircrack-ng.org/~~V:/doku.php?id=aircrack-ng – popis programu aircrack-ng a metod výpočtu WEP klíče</ref> | ||
+ | |||
+ | == Reference == | ||
+ | <references /> | ||
== Externí odkazy == | == Externí odkazy == | ||
* http://www.aircrack-ng.org/ – domácí stránka projektu Aircrack-ng | * 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.tamos.com/products/commwifi/ – zkušební verze monitorovacího nástroje pro Windows (CommView for WiFi, evaluation version) |
* http://www.aircrack-ng.org/doku.php?id=aireplay-ng – popis útoků pro vyprovokování bezdrátového provozu | * http://www.aircrack-ng.org/doku.php?id=aireplay-ng – popis útoků pro vyprovokování bezdrátového provozu | ||
+ | * http://www.tuto-fr.com/tutoriaux/crack-wep/FAQ/en-aircrack-documentation.php – (FAQ) aircrack documentation | ||
+ | * http://www.tuto-fr.com/en/tutorial/tutorial-crack-wep-aircrack.php – Tutorial Aircrack | ||
+ | * http://www.aircrack-ng.org/doku.php?id=links#live_distributions – odkazy na LiveCD distribuce Linuxu s nástrojem aircrack-ng | ||
+ | |||
+ | === Programy pro crack WEP klíče === | ||
+ | * https://cs.wikipedia.org/wiki/Kismet – program pro crackování WEPu v Linuxu | ||
+ | * https://cs.wikipedia.org/wiki/Aircrack-ng – program pro crackování WEPu v Linuxu | ||
+ | * https://en.wikipedia.org/wiki/InSSIDer – program pro crackování WEPu ve Windows | ||
+ | * https://en.wikipedia.org/wiki/NetStumbler – program pro crackování WEPu ve Windows (poslední verze z roku 2005) | ||
+ | |||
+ | == TODO == | ||
+ | * airsnort | ||
+ | * kismet | ||
+ | |||
+ | [[Kategorie:Síťové služby v Linuxu]] |
Aktuální verze z 4. 12. 2014, 17:15
Prolomení WEP (též Wi-Fi cracking atp.) je poměrně jednoduchý postup, který pomocí speciálních nástrojů dokáže zjistit WEP klíč. Demonstrace snadnosti toho útoku slouží k lepšímu pochopení důležitosti zabezpečení Wi-Fi sítí, což je komplexní problematika, která je popsána v slajdech pro přednášku o bezpečnosti, které jsou dostupné na stránce Soubor:Bezdrátové sítě.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. Základním problémem WEP šifrování je fakt, že k inicializačnímu vektoru je přidán sdílený symetrický klíč a celek je předán šifře RC-4. To vede k možnosti využít statistické útoky, protože první bajty výstupu šifry silně korelují se zmíněným klíčem. Tuto slabinu odstraňuje TKIP, který je součástí WPA. U WPA2 je pak problematická RC-4 nahrazena šifrou AES, což dále kvalitu zabezpečení zvyšuje.
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 aby přes bezdrátovou síť prohlížel webové stránky nebo stahoval data. 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
Někdy se nepovede virtuální monitorovací zařízení mon0
vytvořit, ale do monitorovacího režimu je přepnuto samotné původní bezdrátové síťové rozhraní (zde eth1
), které lze v takovém případě použít pro zachycování provozu také (důležitý je stav Mode:Monitor
).
Bezdrátové síťové zařízení lze do monitorovacího režimu převést též ručně příkazem iwconfig
(pokud je vypsána chyba, že je zařízení busy, je potřeba ho nejprve deaktivovat, a pak zase aktivovat pomocí down a up):
ifconfig eth1 down iwconfig eth1 mode monitor ifconfig eth1 up
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ží. Též je možné použít experimentální útoky hrubou silou (přepínače -x
a -y
).
Ú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. Odkazy na relevantní stránky jsou uvedeny níže.
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.
LiveCD
Pokud máte možnost nabootovat notebook nebo počítač z CD nebo USB, můžete zkusit linuxovou LiveCD distribuci, která obsahuje nástroj aircrack-ng a v jádře má podporu pro váš bezdrátový čip. Seznam některých je na níže uvedené adrese. Vyberte si distribuci, která je průběžně vyvíjena, budete mít větší šanci na to, že váš bezdrátový čip bude podporován.
LiveCD startujte nejlépe přímo, bez virtualizace. Ve virtuálním prostředí je možné je používat také, avšak je nutné zprostředkovat přímý přístup Linuxu k bezdrátové kartě, tj. přímý přístup skrze USB nebo skrze PCI sběrnici (podle typu bezdrátové karty).
Některé bezdrátové karty potřebují nahrát firmware, který nemusí být součástí linuxové distribuce, ale je možné ho sehnat na Internetu (většinou je získán z ovladačů pro Windows). Zmínka o chybějícím firmware bude zřejmá ve výpisu příkazu dmesg
.
Externí anténa
Pokud je signál slabý, je možné použít externí směrovou anténu. Bohužel většina notebooků nemá vyveden konektor pro externí WiFi anténu. Ale některé bezdrátové USB karty umožňují připojit externí anténu a zároveň jsou podporovány v Linuxu, například TP-LINK TL-WN722N (neověřeno), TP-LINK TL-WN422G (ověřeno).
Jak prolomení klíče funguje
Při snaze získat klíč máme k dispozici zašifrovanou komunikaci. Při hádání klíče se využívá Narozeninový problém k provedení Narozeninového útoku. Podrobnější vysvětlení metody „PTW“ a „FMS/Korek“ naleznete v dokumentaci programu aircrack-ng (anglicky).[2]
Reference
- ↑ http://en.wikipedia.org/wiki/IEEE_802.11#Frames – formát rámců bezdrátové sítě podle IEEE 802.11
- ↑ http://www.aircrack-ng.org/~~V:/doku.php?id=aircrack-ng – popis programu aircrack-ng a metod výpočtu WEP klíče
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, evaluation version)
- http://www.aircrack-ng.org/doku.php?id=aireplay-ng – popis útoků pro vyprovokování bezdrátového provozu
- http://www.tuto-fr.com/tutoriaux/crack-wep/FAQ/en-aircrack-documentation.php – (FAQ) aircrack documentation
- http://www.tuto-fr.com/en/tutorial/tutorial-crack-wep-aircrack.php – Tutorial Aircrack
- http://www.aircrack-ng.org/doku.php?id=links#live_distributions – odkazy na LiveCD distribuce Linuxu s nástrojem aircrack-ng
Programy pro crack WEP klíče
- https://cs.wikipedia.org/wiki/Kismet – program pro crackování WEPu v Linuxu
- https://cs.wikipedia.org/wiki/Aircrack-ng – program pro crackování WEPu v Linuxu
- https://en.wikipedia.org/wiki/InSSIDer – program pro crackování WEPu ve Windows
- https://en.wikipedia.org/wiki/NetStumbler – program pro crackování WEPu ve Windows (poslední verze z roku 2005)
TODO
- airsnort
- kismet