Włamanie do WPA2 w ciągu minut. Pixie Dust – „magiczny pył” na routery
Pokazaliśmy już, jak poważnym zagrożeniem może byćpozostawienie w routerze włączonej funkcji Wireless Protected Setup(WPS) – napastnik może wykorzystać ją do uzyskania naszego hasłado sieci bezprzewodowej w ciągu zaledwie kilku do kilkudziesięciugodzin. W rzeczywistości może być jeszcze gorzej. Na rynku sporojest routerów, których implementację WPS zaatakować możnajeszcze efektywniej, uzyskując hasło w ciągu co najwyżejkilkunastu minut. Przyjrzymy się więc bliżej temu, jak działa„magiczny pył”, wykorzystywany w tego rodzaju atakach – izastanowimy, co napastnik może jeszcze zrobić, gdy WPS wyłączony,hasło długie i skomplikowane, a firmware routera aktualne, bezjakichkolwiek znanych luk.
Atak na WPS wykorzystywał słabość w implementacjizabezpieczenia PIN-em, pozwalającego na uwierzytelnienie urządzeniaw punkcie dostępowym bez konieczności wpisywania hasła – potakim uwierzytelnieniu to klient dostawał kompletną konfiguracjęsieci, wraz z hasłem WPA2-PSK. Złamanie ośmio-, a w praktycesiedmiocyfrowego PIN-u było zaś znacznie prostsze, niż siękomukolwiek wydawało: autorom tego zabezpieczenia pomyliło siędodawanie z mnożeniem, wskutek czego liczba kombinacji z 107 spadłado 104+103, czyli jedynie 11 tysięcy. Wciąż jednak był to atakonline, wymagający stałego połączenia z routerem, zajmującywiele godzin i wiążący się z ryzykiem wykrycia izablokowania dostępu.
Losowość to trudna sprawa
W 2014 roku Dominique Bongard odkryłjeszcze gorszy błąd w implementacji WPS, który umożliwił atakoffline na wiele modeli routerów, pozwalając uzyskać hasło siecizabezpieczonej przez WPA2 w ciągu nawet kilku minut. Zakładamy, żepo lekturze poprzedniego artykułu z tego cyklu macie już podstawowąwiedzę o procesie wymiany danych w Wireless Protected Setup –pokażemy więc teraz, gdzie tkwi błąd, i na co on pozwala.
Przypomnijmy kolejnych osiem wiadomości wysyłanych międzyklientem (rejestrującym – registrar) a routerem (rejestrowanym –enrolee) podczas uwierzytelnienia WPS. Jak Tym razem jednakprzyjrzymy się im dokładniej. Zapewne zastanawiacie się, dlaczegoto punkt dostępowy/router jest urządzeniem rejestrowanym (enrolee),a klient jest urządzeniem rejestrującym (registrar), a nie naodwrót? Prawdopodobnie Wi-Fi Alliance uznało, że w przeciwnymwypadku protokół byłby bezwartościowy w scenariuszachzakładających wykorzystanie urządzeń bez wyświetlaczy(headless).
M1: Rejestrowany wysyła do rejestrującego128-bitową jednorazową liczbę (nonce) N1 i swój klucz publiczny(PKE). Po jego otrzymaniu, rejestrujący generuje swój kluczpubliczny (PKR) i 128-bitową jednorazową liczbę N2, a następiewylicza sobie klucz Diffiego-Hellmana (DHKey) i klucz wyprowadzającyklucz (KDK). Z nich są wyliczane następnie 256-bitowy kluczuwierzytelniający AuthKey do uwierzytelniania wiadomości protokołurejestrowania, 128-bitowy klucz dla kluczy KeyWrapKey (KWK) doszyfrowania tajnych liczb jednorazowych i danych konfiguracyjnychoraz 256-bitowy rozszerzony główny klucz sesji EMSK, służący dowyprowadzenia kolejnych kluczy. M2: teraz rejestrujący wysyła do rejestrowanego swoją liczbęN2 i swój klucz publiczny PKR, oraz kodem HMAC z wmieszanym kluczemtajnym, wyprowadzonym z wiadomości M1 i M2. M3: rejestrowany wysyła teraz do rejestrującego kody E-Hash1E-Hash2 – to ponownie kody HMAC z kluczem tajnym, powstające zodpowiednio z kluczy PKE, PKR, pierwszej części PIN-u (PSK1) i128-bitowej jednorazowej liczby E-S1, oraz z kluczy PKE, PKR, drugiejczęści PIN-u (PSK2) i 128-bitowej jednorazowej liczby E-S2. M4: rejestrujący odpowiada rejestrowanemu wyliczeniem R-Hash1 iR-Hash2 – to kody HMAC powstające odpowiednio z 128-bitowejlosowej liczby R-S1, PSK1, PKE i PKR, oraz 128-bitowej losowej liczbyR-S2, PSK2, PKE i PKR, żądając dowiedzenia pierwszej połowyPIN-u. M5: Rejestrowany udowadnia posiadanie pierwszej połowy PIN-u,zwracając zaszyfrowaną KSK liczbę E-S1, której autentycznośćjest sprawdzana wyliczeniem odpowiedniego HMAC z E-S1, PSK1, PKE iPKR. M6: Rejestrujący żąda w analogiczny sposób dowiedzenia drugiejpołowy PIN-u, (tu użyta zostaje 128-bitowa losowa liczba R-S2). M7: Rejestrowany zwraca liczbę E-S2, której towarzyszą danekonfiguracyjne. M8: Rejestrujący ustawia sobieodpowiednią konfigurację sieci.
Czytelnicy, którzy wczytali się uważnie w to, co dzieje się wM1-M8 dzieje, mogą zauważyć jedną ciekawą rzecz. Sporo tamlosowości. To też zauważył Bongard – jeśli moglibyśmy zgadnąćliczby E-S1 i E-S2, to moglibyśmy siłowo wyliczyć PSK1 i PSK2offline, nie martwiąc się o mechanizmy ochronne w postaciprzerywania połączeń. I jak się szybko okazało, w wielurouterach zgadnięcie tych liczb jest bardzo proste. Są one wynikamipracy generatorów liczb pseudolosowych, często bardzo niskiejjakości, o niskiej entropii. Jak ktoś pogrzebie w firmwarerouterów, łatwo odtworzy początkowy stan generatora, bywyprowadzić z niego poszukiwane liczby.
Grzebanie rozpoczęło się od routerów z czipsetami Broadcoma.Wykorzystano w nich znany od kilkudziesięciu lat generator LCG. Wtym wypadku nie pobiera on żadnej zewnętrznej entropii, a obieliczby generowane są zaraz po jednorazowej liczbie urządzeniarejestrowanego. Do tego zastosowany optymalizację, wskutek której 7bitów ziarna losowości może być wyprowadzone z ostatniegowynikowego bajtu. Znana jest też funkcja je wyprowadzająca – więcwystarczy przeprowadzić wymianę wiadomości do M3, wziąć liczbęN1 z M1, siłowo wyliczyć stan generatora pseudolosowego, z tegowyliczyć E-S1 i E-S2, a następnie siłowo wyliczyć PSK1 i PSK2 zE-Hash1 i E-Hash2. Sukces!
Równie fajnie do sprawy podszedł Realtek, generując sobieliczby pseudolosowe z czasu uniksowego (liczba sekund od 1 stycznia1970 roku), i co więcej korzystając z tego samego generatora dogenerowania N1 na początku. Tak więc jeśli cała wymiana zajdzie wjednej sekundzie, to E-S1=E-S2=N1. Jeśli zajmie nieco więcej czasu,też nie ma problemu, wystarczy znaleźć ziarno, które dało namN1, powiększyć je i w wyniku uzyskamy E-S1 i E-S2. Kilka minutpracy procesora klasy i5 – i sukces!
Broadcom i Realtek przynajmniej się starały. Z badań hakerówwynika, że Ralink i Mediatek poszły po linii najmniejszego oporu.Tam E-S1 i E-S2 nigdy nie są generowane, są zawsze równe zero.Sukces jest natychmiastowy.
Jest więc źle: entropia routerów jest niska (choć mogłaby byćbardzo wysoka, czerpiąc np. z aktualnego stanu fal radiowych), wieleurządzeń ma dokładnie ten sam stan po restarcie, nietrudno jestzmusić urządzenia zdalnie do restartu i zaatakować je zaraz potym. Co gorsze, liczba dotkniętych tą podatnością modeli idzie wdziesiątki – w tych tańszych nikt nawet nie udaje, że coś tam wśrodku jest innego prócz referencyjnej implementacji czipsetu zdoklejonym interfejsem z inną skórką. Stąd też siłowy atakoffline na WPS sprawdza się znacznie częściej, niż można by byłooczekiwać. Długo jeszcze się to nie zmieni, gdyż kwestialosowości jest chyba ostatnią rzeczą, o której producenci punktówdostępowych myślą. Dowodzą tego zaprezentowane przez Bongardaodpowiedzi od producentów, które sparafrazować można chyba tylkopopularnym zawołaniem nic się nie stało.
Wniosek jestprosty. Jeśli jeszcze WPS nie wyłączyliście, zróbcie to teraz.Jak za chwilę pokażemy, złamanie WPS w routerach o słabejlosowości jest bardzo proste.
PixieDust: magiczny pył w trybach routerów
Narzędzia jużznacie. W Kali Linuksie zaczynamy od przełączenia Wi-Fi w trybmonitorowania (airmon-ng start [nazwa interfejsu]), pamiętając ozabiciu przeszkadzających w tym procesów. Następnie uruchamiamywasha do pozyskania SSID, kanału i adresu MAC routerów z aktywnymWPS (wash -i [nazwa interfejsu w trybie monitorowania] -s -C).
Po zdobyciu tychdanych sięgamy po Reavera. Nie będziemy musieli jednak tym razemczekać, sprawdzając jeden PIN po drugim. Wystarczy nam jedyniepozyskać trochę danych. Potrzebujemy PKE, PKR, E-Hash1, E-Hash2,E-Nonce i AuthKey. W tym celu wydajemy polecenie
reaver -i [nazwainterfejsu w trybie monitorowania] -c [kanał] -b [adres MAC routera]-vvv
Jak tylkozdobędziemy niezbędne dane, po otrzymaniu wiadomości M3, należyprzerwać atak kombinacją Ctrl-C.
Uwaga: reaver pozwala teraz na automatyczne przerwanie protokołu WPS, by działaćtylko w trybie PixieLoop. Po dodaniu do polecenia flagi -P wiadomośćM4 nie zostanie nigdy wysłana, program zapętla komunikację od M1do M3. Dzięki temu unikamy ryzyka zablokowania napastnika przezrouter.
W razie problemówz powiązaniem z routerem, można użyć polecenia:
aireplay-ng -1 0[nazwa interfejsu w trybie monitorowania] -a [adres MAC routera]
a następnie przy wywoływaniu reavera zastosować flagę -A, za sprawąktórej narzędzie to nie będzie samo próbowało powiązania.
Teraz, abyprzeprowadzić atak offline, musimy wydać polecenie, przy którymbędzie sporo kopiowania i wklejania długich ciągów liczbszesnastkowych. Należy więc zrobić to uważnie:
pixiewps -e [PKE]-r [PKR] -s [E-Hash1] -z [E-Hash2] -a [AuthKey] -n [E-Nonce]
Jeśli atakowany router należy do grona tych, w którychwykorzystano kiepski generator liczb pseudolosowych, PIN zostaniewyliczony niemal natychmiast. Wówczas uzyskanie hasła WPA2-PSK dosieci ofiary jest już trywialne:
reaver -i [nazwa interfejsu w trybie monitorowania] -c [kanał] -b [adres MAC routera]-p [wyliczony przez pixiewps PIN]
[frame]W Kali Linuksie domyślnie wykorzystywana jest sforkowana wersjaReavera (reaver-wps-fork-t6x), która sama potrafi przeprowadzić tenatak w sposób automatyczny. Jeśli z jakiegoś powodu jej w Kali niemacie (albo chcecie skorzystać z niej w innej dystrybucji), topobrać ją możecie z GitHuba (git clonehttps://github.com/t6x/reaver-wps-fork-t6x) i skompilować: cd reaver-wps-fork-t6x/src ./configure make make install wystarczy wydać polecenie: reaver-i [nazwa interfejsu w trybie monitorowania] -c [kanał] -b [adresMAC routera] -vvv -K 1 -fJestto metoda równoważna wcześniej opisanej, mniej przydatnaedukacyjnie, za to bardziej praktyczna.
[/frame]Lista routerów, wobec których można zastosować ten atak, jestdośćdługa. Znajdziecie na niej m.in. modele:
- D-Linka (DIR-501, DIR-605L, DIR-610N, DIR-615, DIR-626L i GO-RT-N150),
- Linksysa (E1700, RE1000, WRT160N),
- Netgeara (EX2700, EX6100, JNR3210 i PR2000),
- TP-Linka (TD-W8951ND, TL-WDR3500 i TL-WR841HP),
- Belkina (F5D8236-4, F6D4230-4, F7D5301, F7D5301, F9K1103, F9K1105 i F9K1110),
- oraz Asusa (RT-N10E, RT-N12E, RT-N15, RT-N56U).
Oczywiście wiele zależy od wersji sprzętu i oprogramowania – w kolejnych modyfikacjachproducenci czasem (sic!) usuwali podatność na Pixie Dust. Jeślijednak wasze urządzenia znajdują się na niej, to wyłączenie WPSjest sprawą priorytetową.
Taktyka optymalnego ataku
Zastanówmy się więc, jak napastnik może przygotować się doataku na typową, domową sieć bezprzewodową. Pierwszym jegokrokiem będzie na pewno sprawdzenie, czy czasem sieć nie jestzabezpieczona przez WEP. Jeśli jest, to złamaniejej zajmie najwyżej kilka minut, bez względu na siłę hasła.Jeśli jednak wykorzystane zostały zabezpieczenia WPA/WPA2 i WPSjest włączone, to napastnik spróbuje wykorzystać atak na WPSoffline (opisany tu Pixie Dust), a jeśli okaże się on niemożliwy,zastosuje zwykłyatak na WPS online.
Niektórzy mogą być przekonani, że nowe implementacje WPS,stosujące środki obrony przed siłowymi atakami, takie jakwydłużanie czasu między nieudanymi próbami czy wręcz wyłączanieWPS w razie nadmiernej liczby prób, skutecznie ochronią ich sieć.Tak jednak nie jest. Cierpliwy napastnik sięgnie po takie skryptyjak ReVdk3-r1 czy mdk3, by zmusić punkt dostępowy do restartu.
Jeśli i to zawiedzie, napastnikowi pozostaje przechwyceniekomunikacji 4-wayhandshake i atak siłowy. Dzisiaj, gdy w cenie taniego samochoduosobowego można zbudować klaster obliczeniowy o mocyprzekraczającej moc superkomputerów sprzed 10 lat, a w sieciznaleźć można gotowe słowniki ze standardowymi hasłami i tęczowetablice, taki atak jest całkiem realny – jak pokazaliśmy,nasz redakcyjny klaster GPU z raptem dwiema kartami Radeon 7970 wciągu ok. 4 dni z prawdopodobieństwem 50% złamie hasło składającesię z ośmiu liter.
Są przecież jednak ludzie stosujący tylko WPA2 zkilkunastoznakowym hasłem pełnym też cyfr i znakówniealfanumerycznych, którzy stosują nowoczesne firmware routerów,takie jak OpenWRT czy DD-WRT, WPS wyłączyli na „dzień dobry” –czy oni mogą spać spokojnie? Niestety nie. Istnieje wiele innychmetod pozyskania hasła, dostępnych nawet dla średniozaawansowanychnapastników. Jedną z najbardziej niepokojących jest stworzeniefałszywego punktu dostępowego, tzw. Złego Bliźniaka (Evil Twin),z którym połączy się urządzenie ofiary tylko dlatego, żefałszywy punkt dostępowy ma silniejszy sygnał – a to otwieradrogę do całej listy innych ataków, pozwalających np. wykraśćhasło sieci bezpośrednio z systemu Windows.
Należy więc traktować Wi-Fi z rezerwą i świadomościąsłabości w dziedzinie bezpieczeństwa, pamiętając, że czasemnapastnikowi wcale nie potrzeba zdobyć hasła – czasem np.wystarczy odciąć „prawowite” urządzenie od sieci. Tak jest np.w wypadku coraz popularniejszych kamerek IP monitoringu, któreprzesyłają obraz do centrali po sieci bezprzewodowej. Sprytny hakermoże takie kamerki „oślepić” z łatwością nawet za pomocąsmartfonu – więc o jakim tu bezpieczeństwie mówimy?
W kolejnym odcinku serii przyjrzymy się właśnie takim bardziejzaawansowanym zagrożeniom.