Penetrační testy bezdrátové sítě
Prověření bezpečnostních mechanismů sloužících k ochraně zdrojů, služeb a dat před neoprávněným přístupem ze strany uživatelů, připojených prostřednictvím Wi-Fi sítě.
PENETRAČNÍ TESTOVÁNÍ
Penetrační testy, zkráceně někdy nazývané pentesty, se
používají k hodnocení zabezpečení informačních systémů. V rámci testování se
tester snaží úmyslně pronikat do testovaného systému za účelem určení současného
stavu zabezpečení daného informačního systému. (Weber, 2007) Z této definice
vyplývá, že penetrační testování je možné zařadit do skupiny tzv. etického
hackingu. Etický hacking si klade za cíl zvýšit bezpečnost napadaného systému,
protože jeho cílem není škodit, či krást, ale hledat potenciální slabá místa,
která mohou být napravena. Etický hacker je tedy člověk, který disponuje
potřebnými znalostmi, ale stojí na naší straně a pomáhám svým klientům udržovat
systémy v bezpečí. (CENGAGE Learning, 2010)
V rámci penetračního testování
se testuje nejenom technická stránka informačního systému, mezi kterou patří
například nastavení systému nebo aktuálnost softwarového vybavení, ale také
organizační opatření. Mezi organizační opatření se řadí například odolnost
systém proti napadení od interního uživatele, který se může v rámci své pracovní
pozice pokusit třeba o podvod. Důležité je také zmínit, že mechanismus, který je
v rámci provedených penetračních testů považován na bezpečný a neexistuje pro
něj způsob, jak ho prolomit, tak není bezpečný navždy. Příkladem je symetrická
šifra DES, která byla vyvinutá v 70. letech a byla později zvolena jako
standard, který se používal k šifrování dat v civilních organizacích USA. Dnes
je považována za silně neperspektivní a její 64bitový klíč je možné prolomit
hrubou silou za méně než 24 hodin. Tato doba se s pokrokem v oblasti
informačních technologií bude i nadále zkracovat, a proto je vhodné penetrační
testy opakovat pravidelně a zahrnout je například do bezpečnostního auditu.
Opakování by se také mělo provést po zásadní změně testovaného systému.
Výstupem penetračního testování je závěrečná zpráva, která nám určuje, do jaké
míry fungují současná bezpečnostní opatření, případně poukazuje na možné
slabiny. Z této zprávy může vlastník systému určit, jaké škody by mu případné
napadení mohlo způsobit a současně zpráva říká, jaká protiopatření můžeme
aplikovat, aby rizika vzniku škod minimalizoval.
Druhy testů
V rámci
penetračního testování se rozlišuje několik druhů testů, které se liší podle
způsobu provedení nebo podle úrovně znalostí, které o systému máme. V
následujících odstavcích si představíme postupně:
• manuální testy, •
automatizované testy, • semioautomatické testy, • black-box testy, • white-box
testy, • grey-box testy.
Manuální testy
Manuální testy, jak již název
napovídá, vykonává tester na testovaném systému manuálně. To přináší velkou řadu
výhod, ale i nevýhod. Mezi výhody se řadí skutečnost, že člověk dokáže
přistupovat k testovanému systému sofistikovaněji než automatické testy. Tím
dojde k lepšímu prověření testovaného systému. Mezi další výhody můžeme zařadit
i například fakt, že konkrétní osoba, která systém testovala, zná lépe
podrobnosti testů a může i sobám, které se v oboru bezpečnosti neorientují, lépe
vysvětlit, jaké nedostatky se v testovaném systému nachází a lépe prezentovat
možné důsledky, které z těchto nedostatků plynou. (Selecký, 2012, s. 11-38) K
nevýhodám se řadí hlavně časová náročnost, protože je potřeba mít dokonalé
znalosti o použitých technologiích nebo programovacích jazycích. Samotnou
časovou náročnost podtrhuje fakt, že testy jsou vykonávané manuálně.
Automatizované testy
Penetrační testy, které se provádějí automaticky, mají
celou řadu výhod. Oproti manuálním testům, je zde výhodná časová náročnost,
kterou testy spotřebují, protože je časově méně náročné se test naučit ovládat,
než chápat důležité principy a ty následně umět aplikovat na testovaný systém.
Mezi další výhody se řadí relativně snadná verifikovatelnost a
reprodukovatelnost testů. (Selecký, 2012, s. 11-38) Automatické testy mají celou
řadu nevýhod. Obzvláště v porovnání s manuálními testy není možné dokonale
pokrýt testované systémy. Důležité je poznamenat, že žádný z testovacích postupů
nedokáže 100% pokrýt testované systémy, můžeme se maximálně dokonalému pokrytí
přiblížit. Dále se výsledky testů hůře obhajují před zadavatelem, protože v
některých případech nemusí tester přesně vědět, jak testy fungují nebo chápat
důležité principy, které využívají.
Semioautomatické testy
Tato
kategorie testů kombinuje předešlé dva způsoby provedení testů. Cílem této
kategorie je minimalizace nevýhod použitých testů a maximalizace výhod.
Black-box testy
Mezi nejpoužívanější způsob testování patří black-box testy.
Tyto testy popisují útočníka, který zná pouze vstupy a výstupy do systému,
vnitřní struktura systému je mu skryta. Pro určení vstupů a výstupů testů je
často potřebný velmi rozsáhlý průzkum, jehož časová náročnost je závislá na
rozsáhlosti systému.
Aplikace těchto testů poskytuje celou řadu výhod.
Základní výhoda vyplývá ze skryté vnitřní struktury samotného testovaného
systému, protože tester nepotřebuje znalosti daného programovacího jazyka, ve
kterém je systém napsán. Při využití tohoto způsobu odpadá také nutnost
poskytnutí zdrojového kódu aplikace jiným osobám, než jsou jeho majitelé.
Poslední výhodou je i vysoká variabilita testů, protože může dojít k otestování
například jen některých vstupů nebo výstupů v systému.
Black-box testy mají
i několik nevýhod. V rámci testování není otestována efektivnost kódu. Další
nevýhodou je, že tester nemusí objevit chyby, které vyžadují sofistikovanější
přístup k systému, protože podmínkou pro úspěšnou aplikaci tohoto druhu testů
jsou široké znalosti testera, které musí mít, aby dokázal podchytit veškeré
variace vstupů a výstupů v testovaném systému.
White-box testy
Tyto
testy jsou pravý opak testům předcházejícím. V tomto případě zná tester
kompletní kód aplikace a její architekturu, v případě testů kompletních systému,
zná jejich architekturu a nastavení politik. Součástí testování je analýza
zdrojového kódu, ve kterém se hledají chyby a kontroluje se i jeho efektivnost.
Mezi výhody lze zařadit, že tester zkoumá kompletní aplikaci a její zdrojový
kód. Při tomto výzkumu jsou opravovány chyby a současně může docházet k
optimalizacím kódu. Současně, při kompletní znalosti systému probíhá hledání
chyb rychleji a efektivněji, navíc dokážeme lépe pokrýt testovaný systém.
K
nevýhodám se řadí například vyšší cenová náročnost, protože v rozsáhlejších
testovaných systémech může průzkum zdrojových kódů a architektury zabrat velké
množství času. Současně cenovou náročnost zvyšují vyšší kvalifikační požadavky
na testera, který musí znát použité programovací jazyky či technologie, ze
kterých je systém postaven.
Grey-box testy
Posledním typem testů jsou grey-box testy. Ty kombinují
výhody white-box a black-box testů. V těchto testech se využívají znalosti
architektury systému, které se pak dále aplikují při testech, které se provádí z
hlediska potencionálního uživatele nebo útočníka. Někdy tyto testy obsahují
prvky reverzního inženýrství, které se používá pro hodnocení míry informací,
které jsou obsažené v chybových hláškách.
Fáze penetračního testování
V
problematice penetračního testování se můžeme setkat s nejrůznějším členěním
průběhu testů. Nejčastěji se však uvádí následující čtyři fáze, které jsou
uvedeny na obrázku 1:
Stanovení cílů a rozsahu testování
Prvotní fáze penetračního testování
zahrnuje stanovení cílů a rozsahu testů, které bude tester provádět. V prvé řadě
je nutné stanovení hlavních cílů, které určují, který systém či aplikace bude
testovaná, ale hlavně, na které části testovaného systému se zaměříme.
Penetrační testy je možné například u aplikací zaměřit třeba jen na přihlašovací
formulář či na data, která se vyměňují mezi klientem a serverem.
Sběr dat
Po absolvování prvotní fáze, kdy určíme cíle, je potřeba získat maximum
informací o testovaném systému. Množství informací bude závislé na zvoleném
způsobu testování, protože v případě black-box testů budeme zjišťovat jiné
podrobnosti o systému, než v případě white-box testů. Do sběru informací řadíme
také například verze softwaru, který se používá na klientských stanicích či
jiných informací, které souvisí s testovaným systémem.
Skenování a
exploitace
Třetí fáze obsahuje již samotné testování systému. Zde testujeme
míru zabezpečení, snažíme se na základě prolamování bezpečnostních mechanismů
získávat přístupy do testovaného systému, například do bezdrátových sítí, což
bude nastíněné v dalších kapitolách této práce. V oblasti informačních
technologií nelze zaručit, že je aplikace či systém dokonale bezpečný. S
postupem času, kdy se zvyšuje výpočetní výkon současných počítačů, je snazší
prolamovat zabezpečení útoky hrubou silou. K nalezení nových potencionálně
slabých míst používaných aplikací či technologií pomáhají také otevřené
standardy, které jsou snadno dohledatelné. Každý tak do nich může nahlédnout a
hledat slabá místa, které je možno využít. Většina těchto nálezu je následně
zveřejněna a je možné jejich využití i v rámci této fáze penetračního testování.
Vyhotovení závěrečné zprávy
Poslední fází penetračního testování je
sumarizace výsledků. Do závěrečné zprávy poznamená tester výsledky testů,
poukáže na možná místa, která ohrožují testovaný systém. V závěrečné zprávě se
také mohou objevit vysvětlivky, které slouží pro objasnění uvedených informací a
použitých postupů.
BEZPEČNOSTNÍ STANDARDY IEEE 802.11
Bezpečnostní
standardy bezdrátových sítí jsou velmi důležité. Jelikož rádiové vlny se šíří i
za přirozené hranice, například za zdi domů nebo hranice pozemků, je důležité je
zabezpečit a chránit tak přenášená data před útočníky, kteří by je chtěli
zneužít. Existuje celá řada způsobu, jak bezdrátovou síť zabezpečit. Mezi
poměrně slabá zabezpečení jako je skrytí SSID, jehož prolomení je otázkou vteřin
až po poměrně robustní zabezpečení, které zajištuje dodatek k IEEE 802.11i
standardu, který je také známý pod zkratkou WPA2. Současné rozložení zabezpečení
bezdrátových sítí můžeme vidět na následujícím grafu. Z něho vyplývá, že více
než polovina bezdrátových sítí využívá nejmodernější zabezpečení WPA2, ale je
stále velké množství sítí, které používají prolomená zabezpečení WEP.
WEP
Zkratka WEP (Wired Equivalent Privacy) znamená v českém překladu:
soukromí ekvivalentní drátovým sítím. Cílem tohoto bezpečnostního standardu bylo
přinést do bezdrátových sítí zabezpečení, které je srovnatelné drátovým sítím.
Bylo součástí původního standardu IEEE 802.11, který vyšel již v roce 1997.
Bohužel, jelikož zabezpečení bylo šito na míru tehdejším zařízením, není moc
složité a bylo již v roce 2001 prolomeno. Od této doby se objevují další typy
útoků, které ho umí prolomit rychleji a efektivněji.
Charakteristika
Šifrování pomocí WEP probíhá na linkové vrstvě. K šifrování se používá proudová
šifra RC4 a pro kontrolu integrity kontrolní součet CRC 32. Samotný šifrovací
klíč může být použit v různých délkách. WEP64 používá 64bitový klíč, který se
skládá z 40bitového klíče a 24bitového inicializačního vektoru. Analogická je
situace u WEP128, kde se 128bitový klíč skládá z 104bitového klíče a 24bitového
inicializačního vektoru. Existují ještě další varianty WEP zabezpečení, ale ty
nejsou rozšířené. Mezi nimi můžeme jmenovat například WEPplus nebo WEP2. Za
oficiálního nástupce lze považovat zabezpečení WPA, které odstraňuje řadu
neduhů.
Samotný postup šifrování je velmi jednoduchý. Na vstupu se nachází
data, ze kterých je nejdříve spočítán kontrolní součet pomocí hašovací funkce
CRC 32, který slouží po dešifrování ke kontrole integrity dat. Hodnota
kontrolního součtu je přiložena k datům, která jsou následně poslána na jeden
vstup operace XOR. Druhým vstupem této operace je šifrovací klíč, který vznikne
jako výstup algoritmu RC4. Do tohoto algoritmu přivádíme sdílený klíč, ke
kterému přidáme inicializační vektor, který nám zajišťuje obměnu šifrovacího
klíče v nezávislosti na ostatních datech.
Operace XOR nebo také exkluzivní
disjunkce, je logická operace, při které je pravdivých hodnot dosahováno v
případě, že jsou vstupy unikátní mezi sebou. Pro upřesnění tohoto tvrzení
poslouží následující příklad. Na dvou vstupech, kdy na jednom je hodnota jedna a
na druhém nula, je výstupem operace XOR pravda. V případě stejných hodnot na
vstupech je hodnota nepravda. Více v následující tabulce:
Výsledkem operace XOR jsou již šifrovaná data, která doplňuje inicializační vektor, který je přenášen bez šifrování. Vektor není šifrován, protože druhá strana, která bude provádět dešifrování dat, musí znát jeho hodnotu.
Dešifrování později probíhá stejně jednoduše jako šifrování. Ze šifrovaných dat je nejdříve oddělen inicializační vektor, který je spolu se sdíleným klíčem přiveden na vstup šifrovacího algoritmu RC4. Výsledek tohoto algoritmu je přiveden na jeden vstup operace XOR. Druhým vstupem jsou samotná zašifrovaná data. Výstupem z operace XOR jsou již dešifrovaná data, u kterých je znovu spočítán kontrolní součet pomocí hašovací funkce CRC 32, který je porovnán s hodnotou, která byla přenesena spolu s daty. Pokud tyto hodnoty odpovídají, data jsou označena jako platná a jsou použita dále. V opačném případě došlo cestou mezi zařízením, která je šifrovala a zařízením, která jej dešifrovala, ke změně, a proto budou zahozena. Ke změně dat může dojít vícero způsoby, od prostého vlivu prostředí až po pokus o úmyslnou změnu, kterou by mohl někdo využít pro svůj prospěch.
Data do rámce jsou poskládána velice jednoduše. Součástí hlavičky rámce jsou, jak úvodní informace, tak zdrojová a cílová adresa. Za úvodní části následuje konkrétní hodnota o inicializačním vektoru. Tato hodnota má délku 3 bajty a není šifrována. Následuje část, která se stará o výběr klíče. Oblast PAD značí část, která je závislá na výběru klíče, je velká 6 bitů a na ní plynule navazuje ID klíče, které určuje konkrétní klíč. Tato hodnota je velká 2 bity, protože klíče mohou být maximálně čtyři. Tato část také není šifrována. Následuje šifrovaná oblast, kde jsou přenášena samotná data. U nich je přiložen také kontrolní součet ICV, který je čtyři bajty velký. Součet je stejně jako data přenášen v zašifrované podobě. Na konci rámce se nachází kontrolní součet celého rámce, konkrétně zde označený jako FCS.
Slabá místa
Zabezpečení WEP obsahuje celou řadu chyb a nedostatků. Mez
základní nedostatek můžeme označit použití statický klíčů, které se nemění.
Použít je možné až 4 klíče, ale jediná proměnná část je inicializační vektor,
který se velmi často opakuje, protože nabývá pouze 224 unikátních hodnot.
Slabinu v nízkém počtu unikátních hodnot podtrhuje fakt, že vektor je přenášen v
nezašifrované podobě spolu s šifrovanými daty. Současně je nedostatečné, že se
používá stejný algoritmus na šifrování i autentifikaci.
Jako další nevýhodu
můžeme označit i linearitu hašhovací funkce CRC 32, kterou lze obejít vhodnou
záměnou bitů nebo skutečnost, že k šifrování kontrolního součtu dochází společně
s daty.
Mezi další slabé místo můžeme zařadit použití šifrovacího algoritmu
RC4, který zde byl použit hlavně pro svoji nenáročnost a snadnou implementaci.
Dnes je tento algoritmus již zastaralý a neperspektivní, protože existuje celá
řada mechanismů, jak ho prolomit. V současnosti je již na ústupu.
Útok
hrubou silou
Jedním z nejprimitivnějších útoku na WEP je útok hrubou silou.
Tento útok využívá skutečnosti, že WEP64 má velmi krátkou délku klíče. Při délce
klíče 40 bitů, tvoří klíč buď 5 znaků ASCII, nebo 10 hexadecimálních číslic.
Tyto podmínky velmi zjednodušují útok hrubou silou, protože množství klíčů není
velké a vyhledání klíče netrvá příliš dlouho. Obranou proti tomuto druhu útoku
je použití delšího klíče, například WEP128, který má délku klíče 104 bitů, což
znamená použití 13 znaků ASCII nebo 26 hexadecimálních číslic.
Injektace
rámců
Injektace rámců nám sama o sobě šifrovací klíč neposkytne, ale může
nám pomoci zlepšit podmínky pro jiné typy útoků. Každý zachycený rámec je možno
poslat znovu, protože klíč je statický a inicializační vektor se může opakovat.
Těchto podmínek se dá využít, protože jediné co je potřeba udělat, je změnit
pořadové číslo rámce tzv. Sequence number v rámci. Po této úpravě může být rámec
odeslán znovu, čímž můžeme zpomalovat tok dat v síti nebo naopak můžeme zvyšovat
provoz, který následně zachytíme a využijeme ho k provedení jiných útoků,
například FMS.
Obrana proti injektaci rámců v rámci standardu IEEE, který
obsahuje část o zabezpečení WEP, není. Některá zařízení proti tomuto útoku
bojují malou vyrovnávací pamětí, do které si ukládají poslední rámce a v
případě, že se opakuje velké množství inicializačních vektorů, tak rámce
ignorují.
Fragmentační útok
Princip tohoto útoku spočívá ve spojování
rámců přístupovým bodem. V případě, kdy je tento princip využit, zvolíme vlastní
proud dat, která jsou šifrována pomocí RC4 šifry a inicializační vektor. Tento
proud je rozdělen na několik fragmentů a vyslán spolu s inicializačním vektorem
k přístupovému bodu. Ten využije vlastnosti, že fragmentované rámce poskládá do
jednoho, maximálně však do délky MTU, znovu zašifruje, v tomto případě využije
znovu inicializační vektor, a odešle složený rámec zpět. Útočník takto získá
výhodu, protože text, který odeslal na přístupový bod v rámci fragmentů, sám
určil a stejně tak zná inicializační vektor a díky tomu získá nový a delší proud
dat, který je zašifrován pomocí RC4.
FMS útok
Útok FMS, který byl
představen v roce 2001, využívá vlastnosti algoritmu RC4, která v určitém
případě přenese první bajt vstupního proudu do prvého bajtu výstupního proudu.
Jelikož na vstupu bývají jako první bajty inicializační vektory, tak vektory,
které trpí touto vlastností, nazýváme slabé inicializační vektory. Na základě
vytvořených dvojic slabých vektorů a prvních bajtů, které vytvoří algoritmus
RC4, je možné statisticky dohledat šifrovací klíč.
Tato metoda je velmi
populární, a proto ji využívá řada nástrojů jako Aircrack-ng nebo Airsnort.
Obranou proti tomuto útoku je například vynechání slabých inicializačních
vektorů. Tuto techniku používá vylepšené zabezpečení WEPplus. Další možností je
změna zabezpečení na WPA, které používá techniku TKIP, která využívá tzv. silné
inicializační vektory.
Kleinův útok
Tento typ útoku potřebuje pro
získání šifrovacího klíče znát prvních 16 bajtů nešifrovaného textu. Tyto data
je možné získat například u ARP rámců, které jsou až do 16 bajtu stejné, na 16
pozici se liší pouze podle toho, jestli se jedná o dotaz či o odpověď. Tento 16
bajt je možné snadno odhadnout podle MAC adres. Když je tato podmínka prvních 16
bajtů splněna, je možné získat šifrovací klíč ze 40 000 nasbíraných ARP rámců s
pravděpodobností 50% a při nasbírání 85 000 ARP rámců je možné získat klíč s
pravděpodobností 95%. Obrana proti Klenovu útoku je pouze přechod na WPA a WPA2,
které Kleinův útok neumožnují
WPA
Zabezpečení WPA je nástupce
zabezpečení WEP, které bylo prolomeno. V reakci na tuto událost vydala Wi-Fi
Alliance v roce 2002 zabezpečení WPA, které bylo součástí tehdy připravovaného
standardu IEEE 802.11i.
Charakteristika
WPA používá protokol TKIP, který
byl navržen tak, aby ho bylo možné provozovat na starých zařízeních, která
podporovala WEP. Tento protokol na rozdíl od svého předchůdce obsahuje celou
řadu vylepšení, která ho činní bezpečnějším. Protokol stále pracuje s šifrovacím
algoritmem RC4, ale použitý klíč se zde pravidelně každých 10 000 paketů mění.
Současně je zde použit delší inicializační vektor, který má délku 48 bitů.
Vylepšená byla také kontrola integrity rámce, kterou vedle lineární funkce CRC
32 zajištuje také funkce MIC. Tento algoritmus obsahuje přímo v sobě počítadlo
rámců, takže je znemožněna injektace rámců, kterou známe z WEP.
Ovšem i TKIP má své slabiny, hlavně v použitém RC4 algoritmu, a proto není
doporučeno ho dnes používat. Jsou známé útoky, které dokáží ve specifických
případech zabezpečení prolomit, a proto je vhodné použít vylepšenou variantu WPA
s algoritmem AES, která není příliš rozšířená, nebo nástupce WPA2, které používá
AES ve výchozím stavu
Autentizace klienta může být zabezpečena buď pomocí
předsdíleného klíče, zkráceně PSK, nebo pomocí autentizačního serveru podle
protokolu IEEE 802.1x. Tímto serverem bývá typicky RADIUS. PSK je vhodné použít
v domácnostech nebo v malých kancelářích, protože nevyžaduje dodatečnou
infrastrukturu jako standard IEEE 802.1X. Délka hesla je v rámci PSK 8 až 63
ASCII znaků nebo 64 hexadecimálních číslic.
Výměna šifrovacích klíčů je při
použití WPA zajištěna za pomocí výměny čtyř zpráv, tzv. čtyřcestného handshaku.
Během tohoto procesu se přístupový bod a klient domluví na šifrovacích klíčích a
hlavně ověří, že obě strany používají stejné klíče.
Princip čtyřcestného
handshaku je velmi jednoduchý. V první fázi si klient a přístupový bod
vygenerují 32 bajtů náhodných dat. Obsahem první zprávy jsou náhodná data, která
vygeneroval přístupový bod. Tato zpráva je odeslána klientovy, který tímto má
všech pět složek pro výpočet šifrovacího klíče. Tento klíč se skládá z PSK,
které je spočítané pomocí SSID a hesla, které zadal uživatel. Další složkou
klíče jsou náhodná data, která přístupový bod odeslal klientovi spolu s daty,
která vygeneroval sám klient. Poslední dvě složky jsou fyzické adresy, jak
klientova bezdrátového adaptéru, tak přístupového bodu
Výpočet klíče
proběhne jednoduše, všechny výše jmenované složky jsou vložené do pseudonáhodné
funkce, která využívá HMAC-SHA1. Výsledkem této funkce je 48 bajtů dlouhý
šifrovací klíč.
Ve druhé zprávě probíhá vše analogicky, jediným rozdílem je,
že příjemcem dat je přístupový bod. Ten následně vygeneruje totožným postupem
šifrovací klíč. Současně s náhodnými daty posílá klient hodnotu funkce MIC,
pomocí které přístupový bod ověří, že vygenerované šifrovací klíče se rovnají na
obou stranách.
Obsahem třetí zprávy je následně jiný šifrovací klíč, který
se používá pro šifrování skupinového a všesměrového provozu. K tomuto klíči je
opět přiložena hodnota MIC, která slouží pro ověření na straně klienta, že
přístupový bod používá stejný šifrovací klíč. Po přijetí této zprávy následně
klient zasílá jen potvrzení zpět, které je zase doprovázeno hodnotou MIC. Tímto
celý proces výměny zpráv končí.
V průběhu celého čtyřcestného handshaku nedochází k přenosu hesla k bezdrátové
síti ani vygenerovaného šifrovacího klíče. To zvyšuje bezpečnost, ovšem má to i
nevýhody, přístupový bod si musí pamatovat více šifrovacích klíčů, protože jsou
unikátní pro každého klienta.
Útoky
V současné době jsou známé dva druhy
útoků na WPA. Jedním z nich je klasický slovníkový útok, kdy po zachycení
handshaku se útočník snaží získat heslo pomocí slovníků, pomocí kterých zkouší
určité kombinace. Tento útok je bohužel časově náročný a v případě použití
silného hesla, které může být například složeno z více slov nebo používá
speciální znaky, je téměř nemožné ho odhalit.
Mezi další typ útoku patří
tkiptun, který nám neumožní získat přístupový klíč, ale umožní nám injektaci
několika rámců. Bohužel jeho použití je velmi obtížné, protože je zapotřebí
splnění specifických podmínek, mezi které patří podpora QoS a nebo změna klíče
pomocí TKIP musí probíhat alespoň 20 minut.
WPA2
WPA2 se od svého
předchůdce příliš neliší. Jedná se o plnohodnotnou implementaci standardu IEEE
802.11i. Od roku 2006 je toto zabezpečení povinné pro všechny zařízení, která
chtějí být certifikována jako Wi-Fi.
Charakteristika
WPA2 používá
vylepšený protokol CCMP, jehož hlavní silnou stránkou je použití symetrického
šifrovacího algoritmu AES, který zde nahrazuje zastaralý algoritmus RC4 známý z
protokolu TKIP.
Algoritmus AES vzešel z výběrového řízení, které nařídil
NIST v roce 2001. Jeho cílem bylo najít vhodný šifrovací symetrický algoritmus,
který by měl minimální délku klíče 128 bitů, ale podporoval by i delší,
například 192 či 256 bitů. Požadavek na minimální délku klíče zaručuje odolnost
algoritmu proti útokům hrubou silou. V současnosti je tento algoritmus
považovaný za bezpečný a již téměř vytlačil předchozí standardní algoritmus DES
nebo jeho dočasnou bezpečnější variantu 3DES.
Útoky
Zabezpečení WPA2 je
v současné době považované za nejbezpečnější způsob, jak ochránit bezdrátovou
síť. Je totiž znám jen jeden druh útoků a to jen slovníkový útok, který je velmi
časově náročný. Opakuje se zde situace známá ze zabezpečení WPA, kde je také
minimální délka klíče 8 znaků ASCII a maximální až 63 znaků ASCII. Za této
situace by útok hrubou silou trval příliš dlouho a jediná možnost je použít
vhodný slovník, který by mohl dané heslo obsahovat. Bohužel i tak se nemusí v
případě silného hesla podařit hledaný klíč najít a útok skončí neúspěchem.
WPS
WPS je bezpečnostní standard, který byl navržen Wi-Fi aliancí v roce
2003. Jeho hlavním přínosem mělo být zjednodušení připojení klientů do
bezdrátové sítě. Myšlenkou tohoto standardu je, že si uživatel přinese domů
zařízení, který má nastavené silné heslo a vhodné zabezpečení, například WPA2.
Toto zařízení následně připojí k elektrické síti a internetu a je nastaveno.
Ostatní zařízení připojí do sítě pomocí WPS.
Charakteristika
Zařízení se
do sítě připojují několika způsoby. Nejjednodušší je stisk WPS tlačítka přímo na
přístupovém bodě, které aktivuje speciální režim, který připojí po omezenou dobu
(typicky tři minuty) všechna zařízení, která o připojení zažádají. Druhým
způsobem je zadání osmimístného PIN kódu, který se musí shodovat s tím, který je
v zařízení nastaven. Mezi další způsoby můžeme zařadit přiblížení zařízení a
následný přenos potřebných údajů pomocí technologie NFC nebo pomocí USB
zařízení. V praxi se ovšem nejčastěji setkáme s prvními dvěma způsoby.
Ve
chvíli, kdy klient zažádá o připojení pomocí WPS například pomocí PIN kódu, tak
dojde k ověření tohoto kódu, a pokud je PIN kód přijat, tak se ke klientovy
přenese klíč a potřebné údaje o síti, mezi které patří například typ
zabezpečení.
Útoky
Hlavní slabina technologie WPS se skrývá v procesu
připojování pomocí PIN kódu. První vážnou chybou je, že některé domácí routery
dovolují zkoušet PIN s neomezeně pokusy. Tento stav vede k možnosti prolomení
pomocí útoku hrubou silou. V současné době se tento problém týká pouze starších
zařízení. Pro nová zařízení a některá starší výrobci zjednali nápravu pomocí
nových firmwarů, které nedovolí například více než tři pokusy za minutu. Druhou
možností je technologii WPS na zařízení vypnout a nepoužívat ji
Problémem
je, že i tento počet může stačit. WPS sice používá osmimístné číslo, které
znamená 108 kombinací, ale současně při pokusu o připojení zašle zpět informaci,
jestli útočník trefil, buď první čtyři čísla pinu, nebo druhá čtyři čísla. To
počet kombinací snižuje. V útoku dále pomáhá i fakt, že poslední číslo z
osmimístného pinu tvoří kontrolní součet. To dále snižuje počet kombinací, a
proto je použití technologie WPS velmi nebezpečné.
V celkovém součtu tedy
potřebujeme až 104 pokusů pro uhodnutí první části pinu a následně 103 pokusů k
uhodnutí části druhé. Celkem je tedy potřeba 11 000 pokusů na projití a nalezení
PINu, což u routeru, který nemá omezený počet pokusů, znamená při frekvenci
jeden pin za tři sekundy maximálně 9 hodin. Po tomto čase má útočník heslo do
sítě, která je zabezpečená nejmodernějším zabezpečením WPA2, ale doplatila na
slabinu WPS.
V případě, že zařízení disponuje omezením na počet PINů, dostává se útočník
přibližně na maximální čas 60 hodin.
POUŽITÉ PROSTŘEDKY
Hardwarové
prostředky
K provádění penetračních testů bezdrátových sítí je potřeba mít
odpovídající hardwarové vybavení. U sítové Wi-Fi karty je nutné, aby její
firmware podporovala monitorovací režim a nejlépe, aby uměla injektaci paketů.
Pro účely této práce byla vybrána USB Wi-Fi karta TP-Link TL-WN722, která výše
uvedené splňuje.1 Wi-Fi adaptér podporuje standardy 802.11bgn a pro lepší příjem
disponuje odnímatelnou 4 dBi anténou. S cenou okolo 300Kč se jedná o levné a
snadno dostupné zařízení.
Wi-Fi adaptér byl následně použit na dnes již
spíše starším notebooku Lenovo ThinkPad T61, který disponuje 4GB RAM paměti,
procesorem Intel Core2 Duo T7700 o taktu 2.4 GHz klasickým plotnovým diskem o
kapacitě 500GB. Současně s USB Wi-fi adaptérem byl používán integrovaný PCI
Express Wi-Fi adaptér Intel PRO/Wireless 4965agn, který sloužil ke generování
provozu při pokusech o prolomení testovaných bezpečnostních standardů. Pro tento
účel sloužil střídavě i mobilní telefon BlackBerry Passport. Na tomto notebooku
bylo nainstalované také potřebné softwarové vybavení, které bude rozebráno v
následujících kapitolách.
Poslední součástí hardwarového vybavení byl
bezdrátový router ASUS RT-N10U, který disponuje podporou standardů IEEE
802.1bgn, což znamená podporu zabezpečení od WEP po WPA2, včetně WPS. Tento
router současně se svoji pořizovací cenou okolo 600Kč reprezentuje standardní
vybavení průměrné domácnosti.
Softwarové prostředky
Jako softwarové
vybavení notebooku byla zvolena speciální linuxová distribuce Kali Linux, která
vychází z Debianu. Kali Linux se zaměřuje na bezpečnost, penetrační testování a
forenzní analýzy. Díky tomu obsahuje vše potřebné pro penetrační testování
bezdrátových sítí. V současnosti nahrazuje svého předchůdce, distribuci
BackTrack, která již není dále aktivně vyvíjena.
Mezi minimální požadavky
této distribuce se řadí 10GB volného místa na disku a minimálně 512MB RAM jak
pro verzi i386, tak pro verzi AMD64. Samotnou distribuci ani nemusíme
instalovat. Je možné ji spustit pomocí spustitelného DVD nebo USB flash disku.
Pro potřeby této práce byla použita v té době poslední verze 2016.2, která vyšla
31. srpna 2016 a je volně ke stažení.
SKENOVACÍ NÁSTROJE
Aircrack-ng
Balíček nástrojů Aircrack-ng obsahuje
nástroje, které se soustředí na testování Wi-Fi sítí, převážně se zabezpečením
WEP a WPA. V současnosti existuje ve verzi 1.2-rc4, která vyšla v únoru 2016.
Samotný balík existuje v předkompilovaných verzích pro Windows a Linux nebo je
součástí distribuce, jako je tomu v případě Kali Linuxu.
Aircrack-ng
Hlavním nástrojem v balíku je Aircrack-ng. Ten nám slouží k zjištění šifrovacího
klíče u WEP pomocí slovníkového útoku nebo útoku FMS. U zabezpečení WPA a WPA2
je možné použít pouze slovníkový útok. Pomocí tohoto nástroje dostaneme v
případě úspěšného útoku šifrovací klíč ve dvou podobách, hexadecimální a pomocí
ASCII kódu. V některých případech není možné ASCII přepis zobrazit, a proto
zobrazí Aircrack-ng jen hexadecimální variantu.
Airodump-ng
Dalším z
nástrojů je Airodump-ng, který slouží k odchytávání provozu, který následně
ukládá do souborů, které můžeme použít v jiných nástrojích balíků Aircrack-ng
nebo třeba v programu Wireshark, kde následně po rozšifrování dat pomocí
nástroje Airdecap-ng můžeme vidět proběhlou komunikaci a zjišťovat další
informace, například hesla přenášená pomocí nezabezpečené varianty protokolu
HTTP.
Dále zde najdeme podrobné informace o nalezených sítích:
kde,
BSSID – je fyzická adresa přístupového bodu,
PWR – síla signálu, kterou
získává program z ovladačů sítové karty,
RXQ – procentuální hodnota
zachycených paketů,
Beacons - počet paketů, které přístupový bod odesílá o
své existenci,
#Data – počet zachycených datových rámců, u WEP počet
unikátních IV,
#/s – průměrný počet rámců, měřeno za posledních 10 sekund,
CH – číslo kanálu, kde přístupový bod vysílá, MB – maximální rychlost, kterou
přístupový bod podporuje,
ENC – použitý šifrovací algoritmus, například WEP,
WPA nebo WPA2,
CIPHER – upřesnění šifrovacího algoritmu, například CCMP nebo
TKIP,
AUTH – protokol, použitý pro ověření, například PSK,
ESSID – název
bezdrátové sítě.
Ve spodní části výpisu najdeme informace o připojených
stanicích, kde nalezneme informace o jejich fyzické adrese nebo například o
počtu rámců odeslaných klientem.
Ostatní nástroje
Mezi další nástroje
můžeme zařadit například Airmon-ng, který přepíná Wi-Fi adaptér do
monitorovacího režimu nebo nástroj Aireplay-ng, který slouží k injektaci paketů.
Dalším zajímavým nástrojem je tkiptun-ng, který slouží k provedení
stejnojmenného útoku na WPA.
Wifite
Wifite je utilita, který se snaží za
pomoci programovacího jazyku Python zautomatizovat a zjednodušit lámání
zabezpečení Wi-Fi sítí. Program sám přepne Wi-Fi adaptér do sledovacího módu,
následně provede skenování okolí a zjistí podrobnosti o bezdrátových sítích.
Dokáže současně detekovat zapnuté WPS nebo přítomnost klientů na přístupovém
bodu. Po zvolení cíle, na který se bude útočit, Wifite samo určí vhodné útoky a
celý proces následně běží automaticky. Pokud je útok úspěšný, tak nakonec vypíše
heslo. Programu tedy stačí pouhé dva vstupy od uživatele, a to výběr zařízení a
cíle. Odpadá zdlouhavé zadávání příkazů či přepisovaní údajů z výstupů různých
nástrojů.
Wireshark
Wireshark je analyzér sítových protokolů. Pomocí
jeho funkcionalit můžeme vidět, jaká data proudí sítí nebo jaké verze protokolů
se používají. Sběr těchto informací se využívá například při penetračním
testování. Wireshark je v základní variante GUI aplikace, ale existuje i
varianta TShark, která funguje v rámci terminálu.
Využití Wiresharku je
velmi široké. Od verze 1.4 umí přepínat Wi-Fi adaptéry do monitorovacího módu,
což ho předurčuje pro použití i pro penetrační testování bezdrátových sítí.
Zachytávat ale může velké množství typů sítí jako například Ethernet, PPP nebo
loopback.
Hlavní výhody Wiresharku spočívají v širokých možnostech
filtrování zachycených paketů. Pomocí různých filtrů je možné soustředit
pozornost na konkrétní protokoly, cílové adresy, porty nebo služby. Následně je
možné zkoumat i obsah přenášených dat, a to i zpětně, protože se veškerý
zachycený provoz může uložit do souboru. Díky tomu může Wireshark odhalit
nežádoucí provoz na síti v podobě používání zastaralých nebo nezabezpečených
protokolů. V současnosti je program dostupný jak pro Windows, tak pro Linuxové
systémy a je i součástí distribuce Kali Linux.
Wash
Program Wash je
jednoduchý skenovací nástroj, který slouží k nalezení přístupových bodů, které
mají aktivní WPS. Tento nástroj potřebuje pro svoji činnost aktivní monitorovací
režim na Wi-Fi adaptéru. Součástí zobrazení je kromě názvu bezdrátové sítě a
fyzické adresy přístupového bod, také informace o kanálu, kde přístupový bod
vysílá a o verzi WPS, která je aktivní. Nástroj Wash je součástí balíku Reaver,
který slouží k prolamování sítí pomocí WPS. Je součástí distribuce Kali Linux.
Nmap
Nmap je skener portů, který dokáže zjistiti přítomnost hostitelských
počítačů a služeb v počítačové síti. Hlavní funkce skeneru spočívá v odesílání
upravených paketů, kde u jejich odpovědí následně dochází k analýzám, které je
vyhodnotí. V současnosti jsou analýzy velmi rozsáhlé a je možné díky nim
zjistit, jaké porty má hostitelský počítač otevřené porty nebo v případě
rozsáhlejších analýz například získat informace o používaném operačním systému
cílového zařízení, verze služeb, které poslouchají nebo například přítomnost
firewallu.
Nmap má i grafické nástavby, například je možné jmenovat Zenmap,
který usnadňuje použití a umí i lépe zobrazit výsledky než konzolová verze
Nmapu.
Ve verzi 7.30 je součástí distribuce Kali Linux, včetně grafické
nástavby Zenmap.
Kismet
Jedná se o detektor bezdrátových sítí, který
pracuje v prostředí terminálu. Dokáže pracovat s Wi-Fi adaptéry, které mají
podporu pro monitorovací mód. Zvládá zkoumat provoz ve standardech 802.11abgn, v
závislosti na použitém adaptéru a jeho ovladačích. V současnosti podporuje i
několik přídavných modulů, které umožňují pracovat i mimo standardy 802.11.
Kismet pracuje pasivně. Pomocí sběru rámců dokáže detekovat sítě, u kterých
následně zobrazí podrobnosti, podobně jako například Airodump-ng. Současně
zvládá zobrazit skryté sítě a to i dokonce takové, které nevysílají beacon
rámce. Tyto sítě odhalí pomocí provozu, který probíhá mezi přístupovým bodem a
komunikujícím zařízením.
Ettercap
Tento nástroj umí skenovat síť a
následně zde provádět Man in the middle útoky, například ARP spoofing nebo DHCP
spoofing. Jeho využití je široké, protože současně umí odposlouchávat speciální
pakety, kde proudí hesla k jednotlivým službám jako je POP, IMAP, TELNET, FTP,
HTTP a jiné.
Jedná se o volně dostupný nástroj, který existuje v konzolové i
grafické variantě. Je součástí Kali Linuxu, kde je přeinstalován s větším
množstvím užitečných zásuvných modulů.
POSTUPY PENETRAČNÍHO TESTOVÁNÍ
WEP
První část práce je zaměřena na praktické prolomení zabezpečení
bezdrátové sítě, která používá WEP. V současné době existující nástroje
umožňující za specifických podmínek prolomit síť v řádu desítek sekund.
WEP64
Postup prolomení sítě s WEP64 je velmi jednoduchý. V následující části
se používá balík nástrojů Aircrack-ng a síťová karta TP-Link. Pro generování
provozu byl použit chytrý mobilní telefon. Provoz byl generován v podobě
načítání webových stránek na internetu ve vestavěném prohlížeči. V prvním kroku
došlo k nastavení použitého přístupového bodu na zabezpečení WEP, určen byl
šifrovací klíč, který má v ASCII přepis UPCE1 a SSID, které bylo nastaveno na
Pokus2017. Současně došlo i k dalšímu nastavení bodu, tak aby na něm fungoval
internet a aktivovaná byla služba DHCP, aby připojení klienti dostali potřebné
adresy. Následně bylo přistoupeno k přípravě notebooku, ke kterému byl připojen
USB Wi-Fi adaptér. Po připojení byla zkontrolována přítomnost adaptéru v systému
pomocí příkazu ifconfig, kde se ve výpisu objevil použitý adaptér pod aliasem
wlan0. V případě, že adaptér ve výpisu ifconfig není vidět, je nutné
zkontrolovat přítomnost firmware v operačním systému. Například na systémech
založených na Debianu, kam patří i Kali Linux, je nutné v případě použití Wi-Fi
adaptéru od Intelu doinstalovat balíček iwlwifi. Toto je možné provést pomocí
příkazu apt-get install firmware-iwlwifi. Před tímto příkazem je vhodné pomocí
apt-get update obnovit repozitáře. Po úspěšném nalezení adaptéru je nutné na něm
aktivovat monitorovací režim. Ten aktivujeme pomocí příkazu airmon-ng start
wlan0. Současně s touto aktivací se nám změní i název adaptéru, na který se
budeme v dalších krocích odkazovat, v tomto případě se změnil na wlan0mon. Občas
se může stát, že se nepodaří nastartovat monitorovací režim na používaném
adaptéru, protože ho blokuje jiný proces, který ho právě využívá. V takovém
případě zvládá Airmon-ng vypsat konkrétní procesy, které adaptér využívají,
včetně jejich PID. My musíme takové procesy ukončit ručně nebo pomocí příkazu
airmon-ng check kill procesy nechat zabít samotným Airmonem-ng.
V dalším
kroku nás již čeká výběr samotného cíle. Pomocí příkazu airodump-ng wlan0mon
začneme skenovat okolí adaptéru a vyhledávat dostupné bezdrátové sítě. Při
skenování okolí můžeme rozšířit získané informace ve výpisu programu Airodump-ng
zajímavými přepínači:
• --manufacturer, který může ze získaných fyzických
adres přístupových bodů odvodit výrobce zařízení,
• --wps zobrazí informace
o použití WPS na daném zařízení,
• --band, který nastaví pásmo, buď 2,4GHz
nebo 5GHz pásmo
• –c, který omezí skenované kanály na jeden konkrétní.
V
základním nastavení tyto přepínače aktivní nejsou a Airodump-ng skenuje pouze v
pásmu 2,4GHz. Důležité je zmínit, že pro skenování 5GHz pásma je zapotřebí
patřičný adaptér, který toto pásmo podporuje, což zde uváděný TP-Link není.
Nyní je možno začít zachytávat data potřebná k rozluštění šifrovacího klíče. Po
výběru cíle zastavíme Airodump-ng a upravíme příkaz, tak, aby nám zachytával
rámce z konkrétního cíle. V tomto případě budeme zachytávat provoz z
přístupového bodu s názvem Pokus2017. Z výpisu je možné zjistit kanál, na kterém
přístupový bod vysílá a jeho fyzickou adresu. Tyto informace stačí k zahájení
sběru dat. Pomocí příkazu airodump-ng --bssid C8:60:00:72:80:B4 –c 5 –w
Pokus2017 wlan0mon, kde:
• --bssid znační fyzickou adresu zařízení,
• –c
filtruje číslo kanálu, na kterém vysílá přístupový bod,
• –w, který znační
názvy souborů, do kterých se bude ukládat zachytávaný provoz na síti.
Po
zadání tohoto příkazu průběžně sledujeme sloupec data, který říká počet
zachycených unikátních inicializačních vektorů. Pokud jejich počet přesáhne
určitý počet3 , je možno přistoupit k lámání hesla pomocí Aircracku-ng.
Ve
složce, kam Airodump-ng ukládá zachycená data, se nachází soubor s příponou
.cap, který použijeme jako vstupní data pro Aircrack-ng. Spuštění je jednoduché,
stačí zadat aircrack-ng Pokus2017.cap v tomto konkrétním případě. Výsledkem
tohoto příkazu mohou být dva stavy. V prvním případě se na výstupu objeví hláška
„Failed. Next try with 5000 IVs.“. V takovém případě to znamená neúspěch,
protože zatím není dostatečné množství inicializačních vektorů pro odhalení
šifrovacího klíče. Pokud nastane tato situace, tak je důležité pokračovat ve
sběru inicializačních vektorů a pokus s Aircrackem-ng opakovat s doporučeným
dalším množstvím inicializačních vektorů. V případě druhém se na výstupu objeví
hláška „KEY FOUND!“ a v následujících závorkách se objeví hexadecimální varianta
šifrovacího klíče. V případě, že je to možné, tak se vypíše i ASCII přepis.
Tento testovací scénář probíhal za ideálních podmínek, protože byl k bezdrátové
síti připojen klient, v tomto případě mobilní telefon, který prohlížel webové
stránky a tím napomáhal k rychlému odhalení šifrovacího klíče, protože generoval
provoz, který mohl být zachycen.
Díky těmto podmínkám došlo k odhalení klíče
přibližně po 75 vteřinách od zahájení zachytávání. Stačilo k tomu jen přibližně
16 000 inicializačních vektorů. Ovšem v praxi nemusí nastat ideální podmínky, a
proto je nutné si dopomoci například pomocí injektace rámců, kterou aktivujeme
pomocí příkazu aireplay-ng -3 –b C8:60:00:72:80:B4 –h B0:48:7A:92:FB:D5
wlan0mon, kde:
• -3 značí typ útoku,
• -b fyzickou adresu přístupového
bodu,
• –h fyzickou adresu Wi-Fi adaptéru.
V takovém případě trvalo
nasbírání potřebného množství rámců přibližně dvě hodiny. Získaná data, která
obsahuje soubor .cap, je následně možné dešifrovat pomocí Airdecap-ng. V takovém
případě vypadá příkaz následovně: airdecap-ng –w 55:50:43:45:31 Pokus2017.cap,
kde:
• –w značí šifrovací klíč v hexadecimální podobě.
Následně
rozšifrovaná data je možné otevřít pomocí Wiresharku, kde je možné provádět
další analýzy.
WEP128
V případě zabezpečení WEP128 je postup analogický,
pouze se mění potřebné množství, které je nutné nasbírat, aby bylo možné odhalit
šifrovací klíč. V případě, kdy byl generován provoz, došlo k nasbírání
dostatečného množství inicializačních vektorů, přibližně 85 000, po sedmi
minutách. V případě, že provoz na přístupovém bodu byl provoz minimální se při
pokusu zastavily stopky po šesti hodinách.
WEP pomocí Wifite
Použití
Wifite celý výše zmíněný proces zjednodušuje. V případě, kdy se budeme snažit
proniknout do stejné sítě jako v přecházejícím případě s WEP64, tak nám stačí
jen několik kroků. V prvním kroku došlo k nastavení použitého přístupového bodu
na zabezpečení WEP, určen byl šifrovací klíč, který má v ASCII přepis UPCE1 a
SSID, které bylo nastaveno na Pokus2017. Současně došlo i k dalšímu nastavení
bodu, tak aby na něm fungoval internet a aktivovaná byla služba DHCP, aby
připojení klienti dostali potřebné adresy.
Po připojení adaptéru a spuštění
samotného Wifite, program sám vyhledá dostupné Wi-Fi adaptéry a následně je
přepne do monitorovacího režimu. V případě, že jich je nalezeno více, nechá
program uživatele vybrat, se kterým adaptérem se bude pracovat. Po vybrání
adaptéru Wifite začne skenovat okolí a vypíše do konzole možné cíle.
Po
přibližně dvou minutách skenovaní je možné zastavit proces vyhledávání pomocí
control a c a Wifite nám seřadí možné cíle podle aktuálních podmínek, což
znamená, že nejvýhodnější cíle budou na prvních pozicích. Následně číselně
zvolíme cíl, na který bude Wifite útočit. Po zvolení cíle dojde k výběru
vhodných útoku a Wifite začne sbírat inicializační vektory a pravidelně
automaticky testovat, zda jich nemá dostatečný počet pro získání hesla. Wifite
současně dokáže poznat přítomnost klientů na zařízení a v případě, že není žádný
klient asociován s přístupovým bodem, tak použije metody, jak generovat provoz
bez klienta.
V testovaném případě nám Wifite zanechal pouze hexadecimální
přepis šifrovacího klíče, což není velmi pohodlné. V takovém případě se může
využít nepřeberné množství konvertorů, které jsou dostupné na internetu. Po
ukončení útoku Wifite vypne automaticky monitorovací mód na adaptéru a uloží
nalezené heslo do souboru s názvem cracked.csv.
WPA a WPA2
V následující
kapitole bude popsán postup, jak prolomit zabezpečení WPA a WPA2 pomocí
slovníkového útoku. Využito k tomu bude, stejně jako u zabezpečení WEP, balíku
nástrojů Aircrack-ng a síťové karty TP-Link. Pro obě zabezpečení je postup
analogický.
Po nastavení testovaného přístupového bodu, kde bylo zvoleno
zabezpečení WPA2 s protokolem CCMP, heslo UPCEUPCE a SSID Pokus2017. Současně
došlo i k dalšímu nastavení bodu, tak aby na něm fungoval internet a aktivovaná
byla služba DHCP, aby připojení klienti dostali potřebné adresy. Následně začíná
příprava notebooku s Wi-Fi adaptérem. Nejprve je nutné zjistit, zda je adaptér
připojen pomocí příkazu ifconfig. Pokud ho ve výpisu nenalezneme, budeme řešit
problémy podobně jako v kapitole o zabezpečení WEP. Následně na adaptéru
aktivujeme monitorovací režim pomocí příkazu airmon-ng start wlan0 a můžeme
přejít k výběru cíle.
Pro výběr cíle byl využit nástroj Airodump-ng, který
byl upraven tak, aby filtroval jen zabezpečení WPA a WPA2. Proces skenovaní byl
spuštěn pomocí airodump-ng --encrypt WPA wlan0mon. Po zvolení vhodného cíle bylo
následně přistoupeno k zachytávání rámců pomocí Airodumpu-ng. Proces zachytávání
musí probíhat do doby, než se mezi daty neobjeví handshake. Zachytávání
provedeme pomocí příkazu airodump-ng -c 3 -w PSKPokus2017 -- bssid
C8:60:00:72:80:B4 wlan0mon, kde:
• –c znamená kanál, na kterém přístupový
bod vysílá,
• --bssid fyzickou adresu přístupového bodu,
• –w název
souboru, kam se budou rámce ukládat.
Vyslání handshaku můžeme i vynutit,
stačí k tomu připojený klient na přístupovém bodu. V Airodumpu-ng uvidíme jeho
fyzickou adresu, kterou použijeme jako jeden z argumentů pro nástroj
Aireplay-ng, který ho násilně odpojí. Jelikož se většinou klient pokusí o
připojení znovu, získáme tak handshake, který můžeme dále využít k útoku. Příkaz
pro násilné odpojení vypadá například následovně: aireplay-ng -0 1 –a
C8:60:00:72:80:B4 –c B0:48:7A:92:FB:D5 wlan0mon, kde:
• 0 znamená, že se
jedná o deautentizaci klienta,
• 1 značí jen jeden pokus o deautentizaci,
• –a je fyzická adresa přístupového bodu,
• –c fyzická adresa klienta,
kterého chceme násilně odpojit.
Na konci příkazu nalezneme zařízení, přes
které bude příkaz pro odpojení odeslán.
Po zachycení handshaku je možné
přistoupit k samotnému slovníkovému útoku.
Pokud vlastníme handshake, je
možno přistoupit k pokusům o nalezení hesla. K tomu bylo využito nástroje
Aircrack-ng. Příkaz aircrack-ng -w worldlist.lst PSKPokus2017.cap spustí
vyhledávání v rámci .cap souboru, kde nalezne handshake, který následně
porovnává s frázemi, které jsou uvedené ve slovníku. Pro účel testování byl
použit vlastní slovník, který tvořilo pouze 7 frází z důvodu urychlení
vyhledávání. Tvar slovníku je jednoduchý textový soubor, kde každý řádek
představuje jeden testovací řetězec. Vytvořit ho je proto možné i pomocí běžného
poznámkového bloku.
Proces vyhledávání ve slovníku je velmi náročná úloha,
která se může protáhnout na několik hodin. V rámci praktické části bylo
uvažováno nejkratší WPA klíč, který má osm znaků, což při použití malých znaků
anglické abecedy, kterých je dvacet šest, činní přibližně 2,08 10 kombinací.
Toto množství je velmi velké a projití takového slovníku by trvalo velmi dlouho.
Pro představu došlo v praktické části k změření výkonu v aplikaci Aircrack-ng na
dvou počítačích. V první případě byl otestován používaný notebook s procesorem,
který disponuje dvěma jádry na taktu 2,4GHz. Naměřená rychlost byla okolo 1200
otestovaných klíčů za sekundu. Při tomto výkonu bychom otestovaly všechny
osmimístné kombinace malé abecedy přibližně za pět a půl roku nepřetržitého běhu
programu Aircrack-ng.
V druhém případě byla rychlost otestována na počítači
s procesorem AMD FX-8320, který byl přetaktován na 4,3GHz. Tento procesor
disponuje osmi jádry, a jelikož je úloha hledání klíče velmi dobře
paralelizovatelná, tak došlo k navýšení rychlosti na hodnotu 6350 otestovaných
klíčů za sekundu. V takovém případě by trvalo projití slovníku přibližně rok a
patnáct dní. Útok pomocí slovníku je tedy velmi časově náročný a s nejistým
výsledkem, stačí použití silného a dlouhého hesla, u kterého by odhalení trvalo
třeba i desítky let, což je vzhledem k možné délce až 63 znaků možné, a
útočníkovy šance klesají na nulu.
WPS
Útok vedený na WPS je jednou z
nejsnazších metod, jak získat přístupový klíč do sítě, která je zabezpečená
pomocí WPA nebo WPA2. V rámci praktického testování byl pokusný přístupový bod
nastaven na zabezpečení WPA2 a použito bylo heslo UPCEUPCE. Následně bylo
aktivováno WPS. Současně došlo i k dalšímu nastavení bodu, tak aby na něm
fungoval internet a aktivovaná byla služba DHCP, aby připojení klienti dostali
potřebné adresy.
Po připojení adaptéru a jeho nalezení ve výpisu programu
ifconfig, je důležité nastartovat pomocí airmon-ng start wlan0 monitorovací
režim. Následně je možno přistoupit k vyhledání cílového přístupového bodu.
Případné problémy se řeší stejně jako v kapitole o zabezpečení WEP. K vyhledání
cíle je možné použít dva nástroje, Airodump-ng z balíčku nástrojů Aircrack-ng
nebo nástroj Wash. První jmenovaný se použije stejně jako v přechozích
případech, jen se přidá přepínač --wps, který zajistí zobrazení verze aktivního
WPS na přístupovém bodu. Celý příkaz tedy zní airodump-ng --wps wlan0mon. Druhou
možností je použití nástroje Wash, který zobrazí méně informací než Airodump-ng,
ale současně nezobrazí přístupové body, které nemají aktivní WPS. Aktivaci
nástroje Wash je možno provést pomocí příkazu wash –i wlan0mon, kde:
• –i
značí používaný adaptér.
Po výběru cíle se následně přejde k samotnému útoku
na WPS. Útok na WPS probíhá jednoduchým zkoušením všech možných kombinací PINů,
což nám umožní nástroj Reaver, který je součástí Linuxové distribuce Kali Linux.
Z výpisu, kde dojde k zvolení cíle, je důležité vybrat informace o fyzické
adrese zařízení, na které se bude útočit a kanál, na které přístupový bod
vysílá. Použití programu vypadá následovně: reaver -i wlan1mon -b
C8:60:00:72:80:B4 - vv -c 11, kde:
• –i značí použitý adaptér v
monitorovacím režimu,
• -b fyzickou adresu přístupového bodu,
• -c
kanál, kde přístupový bod vysílá,
• –vv zajistí rozšířený výpis v průběhu
programu.
V případě úspěchu se nám po několika hodinách zobrazí jak
fungující WPS PIN do sítě, tak heslo, které je potřeba pro přihlášení pomocí
zabezpečení WPA2.
Proces získání klíče trval přibližně čtrnáct hodin,
přičemž testovaný přístupový bod měl již ve svém firmware obsaženou ochranou
technologii, která po několika špatně zadaných pokusech odložila další o určitý
čas. Z pozorování, které bylo nabyto v průběhu testu, vyplývá, že po třech
špatně zadaných kombinacích PINu přístupový bod zvolil náhodný čas z intervalu
šedesáti až sto osmdesáti sekund, po které nedovolil další pokus o přihlášení.
Program Reaver je na takovéto opatření připraven, a proto zvládne čekat, když
nedostává odpověď na testovaný PIN a vyzkouší ho vždy znovu po uplynutí 60
sekund. I v případě WPS je možné celý postup zautomatizovat pomocí programu
Wifite, který využívá mechanismy programu Reaver a Wash, díky kterým umí
vyhledávat sítě, které mají zapnuté přihlašovaní pomocí WPS. Současně, při
zapnutém WPS upřednostňuje tyto sítě v seznamu sítí a preferuje tento typ útoku
před útoky pomocí slovníku, které se používají u WPA a WPA2.
Man in the
middle
Tento typ útoků nám slouží k zachytávání dat oběti pomocí útočníkova
zařízení. V následujícím textu bude konkrétně představen způsob zneužití
protokolu ARP k provedení tzv. ARP spoofingu. Protokol ARP má v počítačových
sítích důležitou roli. Používá se pro překlad síťové IP adresy na adresu
fyzickou. ARP spoofing je technika, kdy útočník podvrhne tyto adresy, konkrétně
fyzickou adresu, kterou zvolí vlastní, například svého zařízení. To mu umožní
stav, kdy veškerá komunikace mezi zařízenými proudí přes něj.
Pro tento typ
útoky byl použit nástroj Ettercap, který díky svému jednoduchému grafickému
rozhraní zjednodušuje provedení těchto útoků. Před započetím útoku proběhlo
nastavení přístupového bodu, kde bylo zvoleno zabezpečení WPA2 s protokolem
CCMP, heslo UPCEUPCE a SSID Pokus2017. Současně došlo i k dalšímu nastavení
bodu, tak aby na něm fungoval internet a aktivovaná byla služba DHCP, aby
připojení klienti dostali potřebné adresy. Následně byl útočící notebook
připojen do sítě.
V prvním kroku k provedení ARP spoofingu je zapotřebí
povolit přemostění komunikace a současně povolit odposlech komunikace na našem
zařízení. K tomu v nástroji Ettercap slouží menu Sniff, kde se nachází položka
Unified sniffing. Po aktivací se ve spodním stavovém okně objeví hláška
„Starting Unified sniffing“. Po tomto kroku následuje sken sítě, aby bylo možné
zvolit žádaný cíl. V menu Hosts se použije položka Host list, po jejíž aktivaci
se zobrazí seznam hostů, kteří jsou dostupní v síti. V tomto se přistoupí k
zvolení dvou cílů. Jeden bude klient v síti a druhý jeho výchozí brána. Mezi
těmito dvěma zařízeními se nachází útočník, přes kterého proudí komunikace v
obou směrech.
Jako cíl jedna byl v tomto případě zvoleno zařízení s adresou
10.10.10.1, které v této bezdrátové síti představuje výchozí bránu. Jako druhý
cíl bylo zvoleno zařízení s adresou 10.10.10.107, které je v tomto konkrétním
případě ztvárněno mobilním telefonem, na kterém klient prohlíží webové stránky.
Po volbě cílů je možné přikročit k spuštění útoku. To je možné provést v memu
Mitm, kde zvolíme možnost ARP poisoning. Po zvolení se objeví okno, ve kterém je
důležité zvolit možnost Sniff remote connection, která zajistí obousměrnou
komunikaci přes útočníka. Po provedení tohoto kroku je nastavení kompletní.
Následně je možné, například pomocí Wiresharku, sledovat provoz na síti. Na
Obrázku 25 je vidět průběh otevření univerzitních stránek. Veškerá komunikace,
která směřovala do mobilního telefonu, tak proudí přes útočníkův notebook. Této
situace se dá velmi snadno zneužít k zachycení přístupových údajů, které proudí
po síti pomocí nezabezpečených protokolů. Jedním z řešení, jak například tomuto
předcházet je použití zabezpečených protokolů pro komunikaci, například HTTPS.