Sieć WiFi stała się nieodłącznym elementem naszego codziennego życia. Od domów po biura, od kawiarni po lotniska, od smartfonów po inteligentne urządzenia domowe – sieci bezprzewodowe są wszechobecne i pełnią kluczową rolę w zapewnianiu nam łatwiejszego dostępu do Internetu. Wraz z rozpowszechnieniem się WiFi pojawił się poważny problem z bezpieczeństwem. Niestety nadal wiele osób popełnia błędy podczas konfiguracji swojej sieci, przez co bardzo łatwo jest przełamać zabezpieczenia. W poradniku tym przyjrzymy się narzędziu Aircrack-ng, które służy do testowania zabezpieczeń sieci WiFi. Warto wspomnieć o tym, że Aircrack-ng jest pakietem kliku bardzo przydatnych komponentów, za pomocą których praca testera bezpieczeństwa jest znacznie szybsza i bardziej efektywna.
Aircrack-ng – wszechstronne narzędzie do testowania bezpieczeństwa sieci WiFi
Aircrack-ng stanowi kompleksowy zestaw narzędzi przeznaczonych do testowania zabezpieczeń sieci WiFi. Za jego pomocą można m.in. przechwytywać handshake i łamać klucze zabezpieczeń sieciowych WEP/WPA/WPA2, tworzyć fałszywe punkty dostępowe, przechwytywać i analizować ruch sieciowy, a także przeprowadzać inne, bardziej złożone ataki. Dzięki Aircrack-ng można ocenić stan bezpieczeństwa danej sieci bezprzewodowej oraz namierzyć luki w zabezpieczeniach.
Aircrack-ng stanowi pakiet narzędzi. Każde narzędzie ma określony cel i może być używane solo lub w połączeniu z innymi narzędziami dostępnymi w pakiecie do wykonywania szerokiego zakresu zadań związanych z bezpieczeństwem sieci bezprzewodowej. Aircrack-ng jest preinstalowany w systemie Kali Linux, a także w Parrot Security OS, dzięki czemu jest łatwo dostępny zarówno dla specjalistów ds. bezpieczeństwa, jak i etycznych hakerów. Narzędzie Aircrack-ng może być używane zarówno na Windowsie, MacOS jak i Linuxie. W poradniku tym pokażę jak zainstalować go i używać na Linuxie.
Tu znajdziesz oficjalną stronę Aircrack-ng: KLIK! Na stronie znajduje się pełna dokumentacja w języku angielskim.
Żeby móc w pełni korzystać z Aircrack-ng potrzebujesz:
- Karty sieciowej która jest zdolna do pracy w trybie monitor oraz do wstrzykiwania pakietów (ja korzystam z TP-LINK TL-WN722N oraz ALFA NETWORK AWUS036AXML). Jeśli nie masz jeszcze karty, przeczytaj ten poradnik: KLIK!
- Odpowiedniej mocy obliczeniowej sprzętu. Jeśli masz zainstalowany system Linux na wirtualnej maszynie (np. Kali Linux lub Parrot Security OS) sprawdź, czy możesz zwiększyć ilość pamięci RAM oraz rdzeni CPU.
- Odpowiedniej ilości miejsca na dysku.
Dostępne narzędzia w Aircrack-ng
Aircrack-ng stanowi pakiet narzędzi. Oczywiście lista dostępnych komponentów jest znacznie dłuższa. Jednak w poradniku tym skupię się na najczęściej używanych narzędziach. Poniżej ich lista z krótkim opisem funkcjonalności:
- Airmon-ng – umożliwia przełączenie karty sieciowej w tryb monitorowania. Tryb ten pozwala nasłuchiwać całą otaczającą nas transmisję. W trybie monitor nasza karta sieciowa odbiera wszystkie ramki, które do niej docierają. Pakiet Airmon-ng będzie przez nas używany w każdym ataku sieciowym. Pamiętaj jednak, że nie każdą kartę sieciową można przełączyć w tryb monitor.
- Airodump-ng – służy do przechwytywania pakietów, które krążą w sieci. Jest to bardzo często pośredni etap podczas przeprowadzania większości ataków sieciowych.
- Aireplay-ng – służy do wstrzykiwania pakietów.
- Aircrack-ng – jest to podstawowe, flagowe narzędzie omawianego pakietu. Umożliwia łamanie kluczy WPA i WPA2 metodą słownikową. Oczywiście uprzednio należy przechwycić tzw. handshake (jest to wymiana informacji pomiędzy urządzeniem a punktem dostępowym, celem nawiązania połączenia pomiędzy nimi). Za jego pomocą można również łamać klucze WEP. Jednak ten klucz zabezpieczeń sieciowych obecnie jest bardzo rzadko używany z uwagi na liczne luki.
- Airbase-ng – umożliwia przekształcenie naszej karty sieciowej w punkt dostępowy (Access Point). Może to być szczególnie przydatne podczas przeprowadzania ataków typu man-in-the-middle. Dzięki temu możliwe jest przeprowadzanie ataków bezpośrednio na samych klientach, a nie ich puntach dostępowych. Za pomocą Airbase-ng możemy wykonać atak evil twin lub fake access point.
- Airgraph-ng – służy do przedstawienia w formie graficznej badanych sieci bezprzewodowych i powiązanych z nimi klientów.
Instalacja Aircrack-ng w systemie Linux
Możesz używać Aircrack-ng na dowolnej dystrybucji Linuxa. Zachęcam Cię do przetestowania Kali Linux lub Parrot OS Security. Są to specjalne dystrybucje Linuxa dla etycznych hakerów. Charakteryzują się tym, że na start mamy zainstalowane niektóre narzędzia, które są potrzebne do testowania zabezpieczeń. Oczywiście pakiet Aircrack-ng też jest domyślnie zainstalowany.
W tym miejscu pobierzesz Parrot Security OS: KLIK!
Tu pobierzesz Kali Linux: KLIK!
Zachęcam Cię do instalacji wybranego sytemu operacyjnego na maszynie wirtualnej Oracle VM VirtualBox: KLIK!
Jeśli jednak chcesz pracować na innej dystrybucji np. Linux Mint czy Ubuntu, to też jest to możliwe. Po prostu narzędzia do testowania zabezpieczeń będziesz musiał samodzielnie zainstalować.
Jeśli chcesz sprawdzić, czy masz u siebie zainstalowany pakiet Aircrack-ng, wpisz w terminalu:
sudo aircrack-ng
Komenda instalacji Aircrack-ng:
sudo apt install aircrack-ng
Airmon-ng
Jest to bardzo ważne narzędzie w pakiecie Aircrack-ng. Służy do przełączania karty sieciowej w tryb monitorowania. Tryb ten umożliwia karcie bezprzewodowej nasłuchiwanie całego ruchu WiFi, który znajduje się w jej zasięgu. Oczywiście zasięg zależy od anteny. Dodatkowo za pomocą Airmon-ng możemy wyłączyć procesy, które zakłócają pracę naszej karty będącej w trybie monitorowania. Po zakończonych testach penetracyjnych, za pomocą Airmon-ng możemy także przywrócić standardowy tryb pracy karty sieciowej.
Z Airmon-ng będziesz korzystać na początku każdego audytu sieci bezprzewodowej lub testów penetracyjnych. Stanowi on podstawę do korzystania z innych narzędzi z pakietu Aircrack-ng, takich jak Airodump-ng, Aireplay-ng czy Aircrack-ng.
Dla przypomnienia karta sieciowa może pracować w dwóch trybach:
- Managed Mode – jest to standardowy tryb w którym karta odbiera tylko i wyłącznie pakiety skierowane na jeden konkretny adres MAC. W tym trybie możemy korzystać z Internetu.
- Monitor Mode – w tym trybie karta sieciowa jest w stanie odbierać wszystkie pakiety, które znajdują się w jej zasięgu, nawet jeśli nie są one adresowane do adresu MAC naszego urządzenia. Nie każda karta wspiera ten tryb.
Poniżej znajdziesz podstawowe komendy, za pomocą których przełączysz swoją kartę sieciową w tryb monitorowania.
Najpierw należy sprawdzić, czy są uruchomione procesy, które zakłócają działanie naszej karty:
sudo airmon-ng check
Na powyższym zrzucie widzimy, że został znaleziony jeden proces. Wyłączymy go za pomocą poniższej komendy:
sudo airmon-ng check kill
Teraz należy sprawdzić jak nazywa się interfejs naszej karty sieciowej:
sudo iwconfig
Interfejs mojej karty sieciowej nazywa się wlan0.
Teraz już mogę włączyć tryb monitor:
sudo airmon-ng start <interface name>
- <interface name> – nazwa interfejsu Twojej karty sieciowej którą chcesz przełączyć w tryb monitorowania. U mnie interfejs nazywa się wlan0.
Ponownie wydajmy komendę iwconfig, żeby sprawdzić status naszej karty. Na poniższym zrzucie widzimy, że karta pracuje już w trybie monitor: (Mode:Monitor).
W każdej chwili możemy wyłączyć tryb monitor i przejść do standardowego trybu pracy.
Wyłączenie trybu monitor:
sudo airmon-ng stop <interface name>
- <interface name> – nazwa interfejsu karty sieciowej, w której chcesz wyłączyć tryb monitorowania (w moim przypadku jest to „wlan0mon”).
Dodatkowo należy włączyć managera sieci. Trzeba to robić każdorazowo do wyłączeniu trybu monitora:
sudo service network-manager restart
Jeśli powyższa komenda nie zadziała, spróbuj tej:
sudo systemctl restart NetworkManager
Za pomocą poniższej komendy sprawdzić status aktywnych interfejsów sieciowych (sprawdzisz, czy Twoja karta sieciowa pracuje w trybie monitorowania):
sudo airmon-ng
Możesz także ustawić domyślny kanał dla karty sieciowej po wejściu w tryb monitora:
sudo airmon-ng --channel <num>
- <num> – w tym miejscu podaj numer kanału
Airodump-ng
Za pomocą tego narzędzia możemy przechwytywać pakiety które krążą w pobliskich sieciach (nie musimy być do nich podłączeni). Oczywiście uprzednio musimy przełączyć naszą kartę sieciową w tryb monitor za pomocą Airmon-ng (patrz wyżej).
Za pomocą Airodump-ng możemy przechwycić WPA/WPA2 handshake, z którego możemy potem wydobyć hasło do atakowanej sieci WiFi za pomocą narzędzia Aircrack-ng. Jeśli do komputera podłączony jest odbiornik GPS, Airodump-ng jest w stanie rejestrować współrzędne znalezionych punktów dostępowych.
Jeśli chcesz zacząć przechwytywać pakiety wpisz w terminalu poniższą komendę. W miejscu <interface name> wpisz nazwę swojego interfejsu karty będącej w trybie monitorowania:
sudo airodump-ng <interface name>
Tak wygląda tabelka z przechwyconymi pakietami:
Poniżej objaśnienie co oznaczają poszczególne kolumny w tabelce:
- BSSID – adres MAC punktu dostępowego (AP, ang. Access Point).
- PWR – poziom sygnału. Im wartość jest większa, tym punkt dostępowy znajduje się bliżej Twojej karty sieciowej. Oczywiście zasięg w dużej mierze zależy od tego jaką antenę posiada Twoja karta sieciowa.
- Beacons – liczba pakietów komunikatów wysyłanych przez punkt dostępowy.
- #Data – liczba przechwyconych pakietów danych, w tym pakietów transmisji danych.
- #/s – liczba pakietów danych na sekundę mierzona w ciągu ostatnich 10 sekund.
- CH – numer kanału.
- MB – maksymalna prędkość obsługiwana przez punkt dostępowy. Jeśli MB = 11, dany punkt dostępowy pracuje w standardzie 802.11b, jeśli MB = 22, to 802.11b+, a do 54 to 802.11g. Wyższe wartości oznaczają standard 802.11n lub 802.11ac.
- ENC – używany algorytm szyfrowania. OPN oznacza brak szyfrowania.
- CIPHER – rodzaj klucza.
- AUTH – używany protokół uwierzytelniania.
- ESID – nazwa sieci bezprzewodowej.
Ograniczenie nasłuchiwania do jednego punktu dostępowego:
sudo airodump-ng -bssid AA:BB:CC:DD:EE:FF -c <num> <interface name>
- -bssid – adres MAC badanego punktu dostępowego.
- -c – numer kanału na którym pracuje wybrany punkt dostępowy. Można wybrać jeden kanał, np. -c 7 lub kilka kanałów -c 1, 7, 11.
- <interface name> – nazwa interfejsu naszej karty sieciowej będącej w trybie monitor.
Wyniki naszego skanowania możemy zapisać do pliku za pomocą flagi -w. W poniższym przykładzie fraza „capture” jest nazwą pliku, który zostanie utworzony.
sudo airodump-ng <interface name> -w capture
Możemy także zapisać wyniki skanowania dla wybranego punktu dostępowego:
sudo airodump-ng -bssid AA:BB:CC:DD:EE:FF -c <num> -w capture <interface name>
Wyniki skanowania są zapisywane w lokalizacji, w której uruchomiliśmy Airodump-ng. Jeśli chcesz sprawdzić swoją lokalizację, wydaj komendę:
sudo pwd
Aireplay-ng
Jest to narzędzie do wstrzykiwania pakietów i manipulowania ruchem w sieci bezprzewodowej. Obejmuje różne metody ataków. Bardzo ciekawym i przydatnym atakiem jest deautentykacja, której przyjrzymy się bliżej.
Deautentykacja polega na wysyłaniu do wybranego urządzenia oraz powiązanego z nim punktu dostępowego serii ramek deautentykacyjnych. Ramki te podszywają się pod prawdziwe pakiety, które nakazują odłączenie się urządzenia od punktu dostępowego. W rezultacie urządzenie zostaje odłączone od sieci WiFi i jest zmuszone do ponownego podłączenia się. Podczas gdy urządzenie łączy się z punktem dostępowym, my jako atakujący możemy przechwycić handshake, z którego możemy potem wyciągnąć hasło za pomocą Aircrack-ng. Deautentykacja bardzo często jest etapem pośrednim w innych rodzajach ataków.
Zanim użyjemy Aireplay-ng, musimy uprzednio przechwycić pakiety za pomocą Airodump-ng. Dzięki temu będziemy znać MAC punktu dostępowego ofiary, numer kanału na którym pracuje, a także MAC klienta, którego chcemy odłączyć.
Przykładowa komenda:
sudo aireplay-ng -0 100 -a AA:BB:CC:DD:EE:FF -c GG:HH:II:JJ:KK:LL <interface name>
- -0 – oznacza deautentykację,
- 100 – oznacza, że zostanie wysłane 100 ramek deautentykacyjnych. Oczywiście ilość ramek może być dowolna. 1 oznacza wysyłanie ramek jedna po drugiej, w sposób ciągły.
- -a AA:BB:CC:DD:EE:FF – jest to adres MAC punktu dostępowego.
- -c GG:HH:II:JJ:KK:LL – jest to adres MAC klienta, którego chcemy odłączyć od punktu dostępowego. Jeśli nie wpiszemy tego parametru, zostaną odłączeni wszyscy klienci, którzy są podłączeni do danego punktu dostępowego.
- <interface name> – nazwa interfejsu.
Aircrack-ng
Jest to główne, flagowe narzędzie omawianego pakietu. Służy do łamania kluczy szyfrowania sieci bezprzewodowych, takich jak WEP, WPA, WPA2. Wykorzystywane są do tego różne algorytmy do odzyskiwania kluczy szyfrujących. Dzięki Aircrack-ng można uzyskać nieautoryzowany dostęp do sieci.
W pierwszej kolejności musimy przechwycić pakiety za pomocą Airodump-ng. Następnie musimy przechwycić handshake. W celu przyspieszenia ataku możemy wykorzystać deautentykację. Dzięki temu odłączymy naszą ofiarę od punktu dostępowego. Po ponownym podłączeniu przechwycimy handshake . Mając już przechwycony handshake, możemy za pomocą Aircrack-ng odzyskać klucz przy użyciu ataku słownikowego.
Przykładowa komenda łamiąca klucz WPA:
sudo aircrack-ng -w dictionary.txt -b AA:BB:CC:DD:EE:FF result.cap
- -w dictionary.txt – słownik za pomocą którego będziemy łamać handshake,
- -b AA:BB:CC:DD:EE:FF – adres MAC punktu dostępowego ofiary,
- result.cap – plik z przechwyconym handhake.
Airbase-ng
Airbase-ng to narzędzie do tworzenia fałszywych punktów dostępowych (AP). Jest to niezwykle przydatne podczas ataków typu man-in-the-middle oraz ataków socjotechnicznych. Za pomocą Airbase-ng możemy emulować istniejące punkty dostępowe (atak evil twin) lub tworzyć nowe (atak fake access point), a następnie nakłonić pobliskie urządzenia do połączenia się z naszym fałszywym punktem dostępowym. Jeśli dane urządzenie podłączy się, możemy monitorować jego ruch sieciowy, a także manipulować nim.
Jeśli chcemy emulować istniejący punkt dostępowy musimy w pierwszej kolejności zebrać informacje o danej sieci oraz podłączonych do niej klientach. Po zabraniu niezbędnych informacji możemy użyć Airbase-ng do stworzenia fałszywego puntu dostępowego, który będzie wabił do połączenia się z nim niczego nieświadomych użytkowników. W następstwie ofiary narażone są na ujawnienie poufnych informacji.
Przykładowa komenda tworząca punkt dostępowy:
sudo airbase-ng -a <AA:BB:CC:DD:EE:FF> --essid <FakeAP> --channel <#> <interface name> -z 2
-a <AA:BB:CC:DD:EE:FF>
- adres MAC fałszywego punktu,
- –essid <FakeAP> – nazwa naszej fałszywej sieci,
- –channel <#> – numer kanału dla fałszywego punktu dostępowego,
- <interface name> – nazwa naszego interfejsu,
- -z 2 – za pomocą tego parametru możemy ustalić, że nasz fałszywy punkt dostępowy korzysta z WPA2. Wartość -z 1 oznacza WPA.
Oczywiście należy pamiętać o tym, że oprócz uruchomienia naszego fałszywego punktu dostępowego, musimy także zapewnić połączenie internetowe, żeby nasza ofiara mogła w pełni korzystać z Internetu po podłączeniu się do naszego AP.
Airgraph-ng
Za pomocą Airgraph-ng wygenerujesz w formie graficznej przechwycony ruch sieciowy. Airgraph-ng nie jest preinstalowany w pakiecie Aircrack-ng, tak więc należy go zainstalować:
sudo apt-get update -y
sudo apt-get install -y airgraph-ng
Przed użyciem Airgraph-ng musisz przechwycić pakiety i zapisać je do pliku csv lub txt.
Przełącz swoją kartę sieciową w tryb monitorowania. Następnie włącz nasłuchiwanie ruchu sieciowego za pomocą Airodump-ng. W komendzie użyj flagi -w w celu zapisania przechwyconych danych do pliku:
sudo airodump-ng -w capture <interface name>
Pamiętaj, że plik zostanie zapisany w lokalizacji w której uruchomiony został Airodump-ng.
Teraz utworzymy graficzną interpretację naszych przechwyconych danych korzystając z narzędzia Airgraph-ng:
sudo airgraph-ng -i capture.csv -o capture.png -g CAPR
- -i capture.csv – wskazujemy nasz plik csv, który utworzyliśmy za pomocą Airodump-ng,
- -o capture.png – wskazujemy nazwę dla pliku wynikowego,
- -g – typ grafu, do wyboru mamy CAPR lub CPG. CAPR pokazuje jakie urządzenia są aktualnie podłączone do punktów dostępowych. Natomiast CPG pokazuje nam które urządzenia nie są aktualnie podłączone do żadnego punktu dostępowego. Na grafie możemy zobaczyć nazwy punktów dostępowych z którymi były wcześniej połączone.