Łamanie hasła sieci Wi-Fi zabezpieczonej metodą WEP

2013-08-08 | Mirosław Zelent

Tym razem przedstawię na konkretnym przykładzie jak łatwy w przeprowadzeniu jest atak na sieć Wi-Fi zabezpieczoną metodą WEP. Oczywiście będę łamał stworzoną przez siebie sieć, a pokazanie metody ataku ma służyć jedynie do uzmysłowienia ludziom jak zawodny i łatwy do obejścia jest współcześnie standard zabezpieczeń WEP. Nie ponoszę odpowiedzialności za jakiekolwiek rezultaty niewłaściwego wykorzystania zawartych tutaj technik testowania zabezpieczeń.

Co będzie potrzebne?

Metodę ataku można oczywiście modyfikować; ja pokażę najprostszy atak, który najszybciej przyniesie rezultaty, gdy mamy aktywnego klienta korzystającego właśnie z sieci Wi-Fi. Potrzebne będą:

  1. Komputer wyposażony w interfejs Wi-Fi i ewentualnie kawa :-)
  2. Linux Kali (dawniej Backtrack) czyli dystrybucja Linuxa dedykowana testowaniu zabezpieczeń. Obraz ISO można pobrać stąd; wersja 32bit lub 64bit w zależności od posiadanego komputera, najlepiej pełna wersja (nie mini). Linuxa będziemy mogli uruchomić z płyty albo z pendrive'a (bez potrzeby instalacji systemu) - istniejąca instalacja np. Windowsa nie ulegnie uszkodzeniu; ewentualnie można skorzystać z oprogramowania do wirtualizacji np. VirtualBox.

Mam plik ISO. Co dalej?

System Linux można uruchomić z płyty lub pendrive'a. Pominę opis uruchomienia systemu w programach do wirtualizacji, odsyłam do witryn tych programów. Aby wypalić obraz ISO na płytę wystarczy program do nagrywania płyt, albo wbudowane narzędzie Windows (prawy klik na plik ISO):

Jeśli wolisz zabootować Kali z pendrive'a, to potrzebny będzie program YUMI (tutaj). Wkładamy pendrive'a i uruchamiamy pobrany plik. Potwierdzamy przeczytanie licencji (yeah, right ;-), podajemy literę napędu naszej pamięci przenośnej, z listy wybieramy dystrybucję Kali, a potem wskazujemy pobrany plik ISO z Linuxem:

Potwierdzamy klikając na Create, a po zakończeniu procesu (a może to chwilkę potrwać - tu przyda się wspomniana wyżej kawa) wybieramy "Nie" (bo przygotowujemy tylko jedną dystrybucję):

Pozostaje już tylko uruchomić komputer bootując z CD-ROM albo z pendrive'a (dokonujemy wyboru w boot menu - najczęściej uruchamiamy je na ekranie startowym komputera klawiszem F12, albo ustawiamy w BIOSie odpowiedni boot order. Po uruchomieniu loadera wybierz z listy Linuxa Kali (przy uruchomieniu z pendrive'a będzie na liście system tools):

A teraz proces właściwego łamania hasła

Po załadowaniu się gotowego do pracy pulpitu Linuxa, uruchamiamy terminal używając ikonki na górnym pasku zadań:

Najpierw wypadałoby dowiedzieć się, jaką nazwę ma w systemie nasz interface Wi-Fi. Wpisujemy do terminala (albo wklejamy używając Ctrl+Shift+V) poniższe polecenie - w moim przypadku jest to wlan0:

  • airmon-ng

Teraz trzeba upewnić się, że nasza karta sieciowa ma włączony tryb monitorowania (zasadniczo powinna mieć, ale niektóre karty sieciowe, w tym np. Atherosy mogą zachowywać się dziwnie). Żeby mieć pewność chwilowo wyłączam interface poleceniem:

  • airmon-ng stop wlan0
po czym wznawiam jego działanie:
  • airmon-ng start wlan0

tym razem mając już pewność, że tryb monitorowania jest włączony. Ostrzeżenie o dwóch procesach mogę pominąć, czasem jeśli wejdziemy w zasięg jakiejś sieci Wi-Fi, to NetworkManager może nas spróbować z nią połączyć, więc jak ktoś chce może pozabijać te procesy odpowiednio używając polecenia kill.

Teraz chciałbym dowiedzieć się, w zasięgu jakich sieci bezprzewodowych znajduje się mój komputer oraz jacy klienci z jakimi adresami MAC korzystają teraz z Wi-Fi. Użyję w tym celu polecenia:

  • airodump-ng wlan0

Pozostawiamy ten terminal otwarty w zanadrzu - dzięki sekcji STATION zawsze wiemy czy aktualnie ktoś korzysta z atakowanej sieci. Uruchamiamy drugi terminal - w nim rozpoczniemy zapisywanie na dysk (a dokładnie do pliku z rozszerzeniem *.cap → od ang. capture) monitorowanych danych wymienianych w sieci przez klienta:

  • airodump-ng -w [plik] -c [kanal] --bssid [bssidnr] [interface]

Przydadzą się nam tutaj informacje zebrane z pierwszego terminala - w moim przypadku po wstawieniu odpowiednich danych polecenie wygląda tak:

Teraz pozostaje obserwować ilość zgromadzonych danych (tzw. IVS-ów) w sekcji #Data. Ile należy ich zebrać? Cóż, nie ma jednoznacznej odpowiedzi. Osobiście polecam spróbować zatrzymać polecenie airodump (naciskając Ctrl+C w terminalu) po uzyskaniu liczby 50 tysięcy IVS, zaś w przypadku nieudanego późniejszego złamania klucza próbować ponownie co 25k - czyli 50k, potem 75k, 100k i tak aż do skutku. Po zatrzymaniu polecenia udajemy się do folderu domowego /root/home (możesz skorzystać z menu Places na górnym pasku systemowym):

Czeka tu już na nas plik ze zdumpowanymi danymi, gotowy do uruchomienia programu crackującego. Jak widać na screenie, niepotrzebnie nadałem plikowi rozszerzenie cap, system i tak dodał jeszcze jedno :-). Numer 01 oznacza pierwszą próbę zrzucania danych do pliku o tej nazwie, kolejna próba nie zastąpi tego pliku, lecz umieści w jego nazwie numer 02. Mój plik z danymi miał około 75MB. Program crackujący uruchamiam poleceniem:

  • aircrack-ng [nazwa_pliku]
W moim przypadku wpisałem zatem:
Już po niedługiej chwili uzyskałem dostęp do scrackowanego klucza WEP:

Kilka uwag końcowych

  1. Czy do złamania WEP konieczne jest, żeby w sieci był aktywny klient? Niekoniecznie. Ja pokazałem najprostszą metodę, zainteresowanych odsyłam do zapoznania się z atakiem wykorzystującym protokół ARP co ma związek z wykorzystaniem polecenia: aireplay-ng i cały włam może potrwać raptem kilka minut.
  2. Jeżeli ktokolwiek uważa, że dodanie do metody WEP filtrowania MAC (czyli listy dozwolonych adresów sprzętowych) jest lekiem na całe zło - jest w błędzie. Adres MAC klienta sieci nie problem (co było widać) uzyskać, zaś ja atakując mogę sklonować ten adres MAC i przypisać do swojego interfejsu.
  3. Pokazaną na początku metodę tworzenia bootowalnego Linuxa z pendrive'a można wykorzystać do przyjrzenia się dowolnej dystrybucji Linuxa - pick your poison at: distrowatch.com :)