Skip to main content

Bezpieczeństwo Wi-Fi, czyli dlaczego należy zmieniać domyślne hasła routerów Wi-Fi


Dzisiejszy tekst dotyczy bezpieczeństwa sieci bezprzewodowych standardu 802.11, czyli dobrze znanych nam sieci Wi-Fi. Na warsztat weźmiemy jednego z najpopularniejszych dostawców domowych (i nie tylko) routerów Wi-Fi, które są powszechnie wykorzystywane z domyślnymi ustawieniami. Czemu domyślne ustawienia są złe? Czemu domyślne ustawienia akurat tego producenta są złe? Zapraszamy na kolejny wpis na blogu.

Routery Wi-Fi TP-Link i konwencja haseł

Swego czasu ekipa Red Academy zakupiła do testów router Wi-Fi firmy TP-Link Archer C50 1200. Domyślne hasło stanowił ciąg 8 cyfr. Po krótkim reserachu w Internecie oraz wśród innych użytkowników tych urządzeń okazało się, że to nie przypadek – TP-Link używa takich domyślnych haseł na swoich urządzeniach.

Rys. 0 Tabliczka znamionowa zakupionego sprzętu

8-znakowe hasło składające się z samych cyfr daje nam 10^8, czyli 100 000 000 kombinacji, co nie wydaje się dużą liczbą zważywszy na możliwość wykonania ataku offline oraz niską złożoność algorytmu HMAC-SHA1. Algorytm HMAC-SHA1 jest wykorzystywany podczas generowania klucza PTK, który z kolei przy pomocy algorytmu AES szyfruje kanał komunikacji między klientem a Access Pointem. Za udostępnienie informacji niezbędnych do wygenerowania klucza PTK odpowiedzialny jest protokół EAPOL.

Cały proces ustalania klucza PTK nazywa się 4 way handshake`iem. Szczegółowe omówienie tego procesu znajdziecie Państwo w Kursie Podstawowym RED.

Rys1. 4-way handshake WPA2-PSK

W Red Academy rozumiemy, że teoria jest ważna, ale… nie najważniejsza. Dość teorii, przejdźmy do praktyki!

Rekonesans, pakiety deauth i przechwycenie 4-way handshake

Na początek eksperymentu wykorzystamy narzędzie airodump-ng aby znaleźć sieci w otoczeniu. Wykorzystując dość mocną kartę Alfa AWUS1900, zdołano odnaleźć kilkadziesiąt sieci Wi-Fi, z których prawie wszystkie (jeden wyjątek) wykorzystywały standard WPA2. Wśród odnalezionych sieci, mniej więcej 30% z nich stanowiły te uruchomione na routerach TP-Link. Być może było ich więcej, ale weryfikowano to tylko po SSID (rozgłaszanej nazwie), a nie po adresach MAC. Wśród odnalezionych sieci była też i testowana sieć – TP-Link_4AXX.

Rys. 2 Okoliczne sieci Wi-Fi wraz z testowanym Routerem

Na potrzeby eksperymentu zestawiono prosty, lecz wystarczający lab zawierający 3 hosty i jeden AP (Access Point).

Rys. 3 Schemat laboratorium

Po chwili rozpocząłem nasłuchiwanie sieci w wykorzystaniem filtra BSSID, a wyniki w formacie pcap miały zostać zapisane do pliku „capture_wifi”. W celu odzyskania hasła do sieci w formie jawnej musimy nasłuchiwać docelową sieć i przechwycić 4-way handshake, który będzie nawiązany miedzy Access Pointem a dowolnym hostem. Można to osiągnąć na dwa sposoby:

  1. Nasłuchiwać sieć aż do momentu, gdy napotkamy handshake pomiędzy klientem łączącym się do sieci, a AP (Access Pointem)
  2. Wysłać pakiet Deauth (ang. deauthenticate) do wybranego przez nas urządzenia, który spowoduje rozłączenie się danego urządzenia z testowaną siecią. W zależności od profilu sieci urządzenie:
    1. może samoczynnie, powtórnie połączyć się do sieci
    1. może zostać manualnie, powtórnie podłączone do sieci przez użytkownika

W obydwóch przypadkach, w efekcie powinniśmy uzyskać pełny 4-way handshake pomiędzy urządzeniem, a Access Pointem. W celu rozłączenia stacji Windows 10 od sieci, wysłano pakiety Deauth i po kilkunastu sekundach stacja odłączyła się, a następnie powtórnie podłączyła do sieci.

Rys. 4 Przechwytywanie ruchu testowanej sieci TP-Link_4AD0
Rys. 5 Odłączenie stacji Win10 od sieci przy wykorzystaniu pakietów deauth

Pod udanym odłączeniu stacji Windows 10 od sieci, airodump wykrył ramki EAPOL (odpowiedzialne za powtórne uwierzytelnienie) i zanotował ich obecność w kolumnie „Notes (patrz Rys. 4). Można to łatwo zweryfikować otwierając zapisany ruch w Wiresharku i wyfiltrować protokół EAPOL. Na Rys. 6 doskonale widać 4 way handshake pomiędzy routerem Tp-Link, a komputerem Windows 10.

Rys. 6 Ruch eapol przechwycony przez program airodump

Odzyskanie hasła do sieci Wi-Fi – Hashcat w praktyce

Hashcat umożliwia „odzyskiwanie” hasła do sieci w plaintexcie, w przypadku przechwycenia 4 way handshake i przekonwertowania go hasha o odpowiednim formacie.

W jaki sposób hashcat odzyskuje hasło z przechwyconego handshake?

  1. Hashcat generuje klucz PMK podstawiając kolejne testowane hasła. Wszystkie niezbędne dane do wygenerowania klucza PMK są znane.
  2. Hashcat generuje klucz PTK, wykorzystując wygenerowany PMK. Wszystkie niezbędne dane do wygenerowania klucza PTK są znane.
  3. Hashcat wylicza hash MIC przesłanej ramki EAPOL z drugiego requestu. Do tego celu używa fragmentu klucza PTK.
  4. Hashcat porównuje wyliczony własnoręcznie MIC z MICiem zawartym w ramce EAPOL.
  5. Jeżeli wartości MIC zgadzają się – podstawione w kroku 1 hasło jest prawidłowe.
  6. Jeżeli wartości MIC nie zgadzają się – Hashcat wraca do 1 kroku i testuje kolejne hasło.

Dość teorii – czas na praktykę!

Po przechwyceniu ruchu w sieci, należy przekonwertować ramki EAPOL do formatu znanego Hashcatowi. Można zrobić to za pomocą gotowego narzędzia o nazwie hcxpcapngtool.

Rys. 7 Wygenerowanie hasha dla programu Hashcat

Wygenerowany hash ma nastepujący format:

Rys 8. Format hasha trybu 22000 dla Hashcata

Po wygenerowaniu hasha nie pozostaje nic innego jak tylko spróbować złamać go metodą brute-force. Zadanie to wykonywano na maszynie wirtualnej, bez dostępu do GPU, osiągając hashrate 4000 H/s. Warto mieć to na uwadze, zważywszy że dedykowane układy graficzne posiadają możliwości co najmniej kilku rzędów większe. Przy 100 milionach kombinacji i 4000 H/s łatwo policzyć, że w najgorszym wypadku zadanie zostanie wykonane w 7 godzin.

Rys. 9 Rozpoczęcie ataku brute-force na wygenerowany hash

Prawidłową kombinację cyfr hashcat odnalazł po niecałych 2 godzinach.

Rys. 10 Odnalezienie prawidłowego hasła do sieci Wi-Fi

Podsumowanie

Czas 2 godzin potrzebny do złamania 8 znakowego hasła do sieci Wi-Fi to bardzo dobry wynik, zważywszy na brak wykorzystania dedykowanych układów GPU. Hasła złożone z samych cyfr dobrze sprawdzają się w przypadku PINów, ale nie zapewniają należytej ochrony w przypadku ataków brute-force offline. Każda dodana cyfra zwiększa dziesięciokrotnie ilość możliwych kombinacji, co przy 10-znakowych haśle daje nam zawrotne 30 dni na złamanie hasha, zakładając hashrate na poziomie 4000 H/s. Czy to dobre założenie? Absolutnie nie. Pojedyncza karta GeForce 3070Ti jest w stanie osiągnąć wartości rzędu 500 kH/s, co dodatkowo skraca czas łamania do kilku godzin.

Łamanie hashy w chmurze za pomocą Vast.Ai

W jaki sposób „wypożyczyć” moce obliczeniowe w chmurze, aby złamać hash w szybko i względnie tanio?

Rozpocząć należy od założenia konta na stronie vast.ai, ponadto należy doładować konto kilkoma dolarami na start. Kolejny krok to wybór interesujących nas zasobów:

Rys. 11 Zasoby do wypożyczenia

Po kliknięciu „Rent”, strona przekierowuje nas do wyboru template, czyli do obrazu systemu i oprogramowania, które ma być zainstalowane na naszej instancji. Domyślnie, aplikacja proponuje nam oprogramowanie do uczenia maszynowego takie jak Tensorflow czy Pytorch. Spróbujmy odnaleźć oprogramowanie hashcat, wpisując frazę „hashcat” w wyszukiwarce.

Rys. 12 Odnalezienie template z hashcatem i wsparciem CUDA

Domyślnie, na instancji uruchomiony jest serwer SSH z możliwością zalogowania do niego, ale warto to zweryfikować klikając wcześniej „Edit”. Po zweryfikowaniu danych, wybieramy template i klikamy „Rent” na interesujących nas zasobach GPU.

Rys. 13 Uruchomienie instancji hashcata

Po wejściu w instancje, klikamy przycisk connect, który umożliwia nam połączenie przez SSH do naszych zasobów.

Rys. 14 Szczegóły instancji wraz z możliwością połączenia się do niej

W celu połączenia się do zasobów, należy dodać klucz publiczny id_rsa do instancji. Klucze można dodawać per instancja, bądź per konto.

Rys. 15 Dodanie klucza SSH do instancji

Po dodaniu klucza do instancji, nie pozostaje nic innego jak tylko połączyć się z uruchomionymi zasobami, wykorzystując podany one-liner.

Po podłączeniu się do instancji, przeklejamy zawartość hasha do pliku i uruchamiamy hashcata – dokładnie z takimi samymi parametrami co na lokalnym Linuxie.

Rys. 16 Uruchomienie hashcata na instancji vast.ai

Do dyspozycji mamy dwie potężne karty RTX 4090, które generują hashrate rzędu 5000 kH/s.

Złamanie 8 znakowego hasła składającego się z samych cyfr zajęło… 27 sekund.

Rys. 17 Złamanie 8 znakowego hasła z wykorzystaniem instancji VastAI

Uruchomienie sprzedaży kursu cyberbezpieczeństwa od Red Academy

Szanowni Państwo! Z radością informujemy, że rozpoczęliśmy sprzedaż Kursu Podstawowego Red – Edycja 261024. Przypominamy, że nasz autorski kurs cy…

Harmonogram Kursu Podstawowego Red – edycja 261024

Szanowni Państwo! Prezentujemy harmonogram Kursu Podstawowego Red, który rozpocznie się już 26.10.2024 r. Informujemy, że sprzedaż kursu ro…

Aktualizacja – Kurs Podstawowy Red

Szanowni Państwo! Z radością informujemy, że zakończyliśmy pracę nad modułem „Eskalacja uprawnień” Kursu Podstawowego Red. Moduł ten liczy aż 77 s…

Status Kursu Podstawowego Red

Szanowni Państwo! Informujemy, że zakończyliśmy prace nad kolejnym modułem Kursu Podstawowego Red. „Skanery Podatności i Ataki na Active Direct…

Jak zacząć karierę w branży cyberbezpieczeństwa w 2024 roku?

Otaczający nas świat staje się coraz bardziej zdigitalizowany, a proces cyfryzacji nie wykazuje oznak spowolnienia. Liczba urządzeń podłączonych d…

Sylabus Kursu Podstawowego Red

Kurs cyberbezpieczeństwa od podstaw! Szanowni Państwo! Informujemy, że na naszej stronie udostępniony został sylabus Kursu Podstawowego Red. Zn…

Supply Chain Attack

☢️ Supply Chain Attack, czyli dostarczenie złośliwego oprogramowania za pośrednictwem samego twórcy, dostawcy. Jedna z najgroźniejszych broni wspó…

Bezpieczeństwo Wi-Fi, czyli dlaczego należy zmieniać domyślne hasła routerów Wi-Fi

Dzisiejszy tekst dotyczy bezpieczeństwa sieci bezprzewodowych standardu 802.11, czyli dobrze znanych nam sieci Wi-Fi. Na warsztat weźmiemy jednego…

Standardy, zalecenia, benchmarki

Przygotowanie kursu trwa pełną parą. Po mocno technicznym i skomplikowanym module „Initial Access” przyszedł czas na przyjemniejszy, lecz nie mnie…

Rozpoczęcie działalności Red Academy

Szanowni Państwo! Projekt Red Academy nabiera rozpędu. W chwili obecnej nasi specjaliści pracują nad stworzeniem kompleksowego, przystępnego c…