149 15 13MB
Polish Pages 199 Year 2015
Spis treści O autorach
7
O recenzencie
9
Klauzula wyłączenia odpowiedzialności
10
Wprowadzenie
11
Co znajdziesz w tej książce Co będzie potrzebne do pracy z książką Dla kogo przeznaczona jest ta książka Konwencje użyte w tej książce Errata Nielegalne kopiowanie
Rozdział 1. Tworzymy laboratorium sieci bezprzewodowych Wymagania sprzętowe Niezbędne oprogramowanie Instalowanie systemu Kali Linux Czas na działanie — instalujemy system Kali Linux Instalacja i konfiguracja bezprzewodowego punktu dostępowego Czas na działanie — konfiguracja bezprzewodowego punktu dostępowego Konfiguracja bezprzewodowej karty sieciowej Czas na działanie — konfigurowanie bezprzewodowej karty sieciowej Podłączanie się do bezprzewodowego punktu dostępowego Czas na działanie — konfigurowanie bezprzewodowej karty sieciowej Podsumowanie
Rozdział 2. Sieci WLAN i związane z nimi zagrożenia Budowa ramek w sieciach WLAN Czas na działanie — tworzenie interfejsu pracującego w trybie monitora Czas na działanie — przechwytywanie pakietów przesyłanych w sieci bezprzewodowej Czas na działanie — przeglądanie ramek zarządzających, ramek sterujących i ramek danych
12 14 14 15 15 16
17 18 19 19 19 21 22 24 24 26 26 29
31 32 33 36 39
Spis treści
Czas na działanie — nasłuchiwanie i przechwytywanie pakietów w sieci bezprzewodowej Czas na działanie — wstrzykiwanie pakietów Ważne uwagi dotyczące przechwytywania i wstrzykiwania pakietów w sieciach WLAN Czas na działanie — eksperymentujemy z bezprzewodową kartą sieciową Rola organów regulacyjnych w sieciach bezprzewodowych Czas na działanie — eksperymentujemy z bezprzewodową kartą sieciową Podsumowanie
Rozdział 3. Omijanie uwierzytelniania sieci WLAN Ukryte identyfikatory SSID sieci bezprzewodowych Czas na działanie — ujawnianie ukrytych identyfikatorów SSID sieci Filtrowanie adresów MAC Czas na działanie — omijanie filtrowania adresów MAC Uwierzytelnianie w sieciach z otwartym dostępem Czas na działanie — podłączanie się do punktu dostępowego z otwartym dostępem Uwierzytelnianie ze współdzielonym kluczem Czas na działanie — omijanie uwierzytelniania ze współdzielonym kluczem Podsumowanie
Rozdział 4. Słabe strony protokołów szyfrowania w sieciach WLAN Szyfrowanie w sieciach WLAN Szyfrowanie WEP Czas na działanie — przełamywanie zabezpieczeń protokołu WEP Szyfrowanie WPA/WPA2 Czas na działanie — łamanie słabych haseł w sieciach z szyfrowaniem WPA-PSK Przyspieszanie procesu łamania szyfrowania WPA/WPA2 PSK Czas na działanie — przyspieszanie procesu łamania kluczy Odszyfrowywanie pakietów WEP i WPA Czas na działanie — deszyfrowanie pakietów WEP i WPA Podłączanie się do sieci WEP i WPA Czas na działanie — podłączanie się do sieci wykorzystującej szyfrowanie WEP Czas na działanie — podłączanie się do sieci wykorzystującej szyfrowanie WPA Podsumowanie
Rozdział 5. Ataki na infrastrukturę sieci WLAN Domyślne konta i hasła punktów dostępowych Czas na działanie — łamanie domyślnych, fabrycznych haseł punktów dostępowych Ataki typu odmowa usługi (DoS) Czas na działanie — atak DoS typu anulowanie uwierzytelnienia Złośliwy bliźniak i fałszowanie adresów MAC Czas na działanie — złośliwy bliźniak ze sfałszowanym adresem MAC Nieautoryzowany punkt dostępowy Czas na działanie — nieautoryzowany punkt dostępowy Podsumowanie
Rozdział 6. Ataki na klienta sieci WLAN Ataki typu Honeypot i Misassociation Czas na działanie — przeprowadzanie ataków typu Misassociation Atak typu Caffe Latte
4
42 45 45 46 48 48 52
55 56 56 61 61 64 64 65 66 72
75 76 76 77 88 90 96 97 99 100 102 102 103 105
107 108 108 110 110 114 115 120 120 127
129 130 131 135
Spis treści
Czas na działanie — przeprowadzanie ataku typu Caffe Latte Ataki typu Deauthentication i Disassociation Czas na działanie — anulowanie uwierzytelnienia klienta Atak typu Hirte Czas na działanie — łamanie klucza WEP poprzez atak typu Hirte Łamanie klucza WPA PSK bez obecności punktu dostępowego Czas na działanie — łamanie klucza WPA bez obecności punktu dostępowego Podsumowanie
Rozdział 7. Zaawansowane ataki na sieci WLAN
136 138 139 141 141 143 144 146
147
Ataki typu Man-in-the-Middle Czas na działanie — atak typu Man-in-the-Middle Podsłuchiwanie ruchu sieciowego na bazie ataków Man-in-the-Middle Czas na działanie — podsłuchiwanie ruchu w sieci bezprzewodowej Przechwytywanie sesji w sieciach bezprzewodowych Czas na działanie — przechwytywanie sesji w sieciach bezprzewodowych Odkrywanie konfiguracji zabezpieczeń klienta Czas na działanie — odkrywanie profili zabezpieczeń klientów bezprzewodowych Podsumowanie
148 148 152 152 157 157 161 161 165
Rozdział 8. Ataki na sieci WLAN z szyfrowaniem WPA-Enterprise i serwerami Radius 167 Konfiguracja serwera FreeRadius WPE Czas na działanie — konfigurowanie punktu dostępowego wykorzystującego serwer FreeRadius WPE Ataki na protokół PEAP Czas na działanie — łamanie zabezpieczeń protokołu PEAP Ataki na protokół EAP-TTLS Dobre praktyki zabezpieczania korporacyjnych sieci bezprzewodowych Podsumowanie
Rozdział 9. Metodologia testów penetracyjnych sieci bezprzewodowych
168 169 171 172 175 176 177
179
Testy penetracyjne sieci bezprzewodowych Planowanie Rozpoznanie Atak Tworzenie raportów Podsumowanie
Rozdział 10. Szyfrowanie WPS i sondowanie sieci
179 180 181 182 183 184
185
Ataki na szyfrowanie WPS Nasłuchiwanie prób sondowania sieci Podsumowanie
185 189 194
Dodatek A. Szybki quiz — odpowiedzi na pytania
195
Skorowidz
198
5
Spis treści
Zespół wydania oryginalnego Authors Vivek Ramachandran Cameron Buchanan
Project Coordinator Harshal Ved
Reviewer Marco Alamanni
Proofreaders Simran Bhogal Stephen Copestake
Commissioning Editor Erol Staveley
Indexer Monica Ajmera Mehta
Acquisition Editor Sam Wood
Production Coordinator Komal Ramchandani
Content Development Editor Shubhangi Dhamgaye
Cover Work Komal Ramchandani
Technical Editor Naveenkumar Jain Copy Editor Rashmi Sawant
6
O autorach Vivek Ramachandran zajmuje się bezpieczeństwem sieci bezprzewodowych od 2003 roku. Do jego osiągnięć należy między innymi wynalezienie ataku typu Caffe Latte, a także publiczne złamanie zabezpieczeń protokołu WEP Cloaking, które miało miejsce w 2007 roku na konferencji Defcon. W 2011 roku Vivek jako pierwszy na świecie zademonstrował, w jaki sposób twórcy złośliwego oprogramowania mogą wykorzystywać sieci bezprzewodowe do tworzenia tylnych wejść, złośliwych robali czy nawet botnetów. Wcześniej był jednym z programistów implementujących protokół 802.1x oraz inne zabezpieczenia w serii przełączników Cisco 6500 Catalyst, a także jednym ze zwycięzców przeprowadzonego w Indiach konkursu Microsoft Security Shootout, w którym wzięło udział ponad 65 tysięcy uczestników. W środowisku hakerów jest najbardziej znany jako założyciel portalu http://www.securitytube.net/, na którym bardzo często publikuje poradniki wideo na temat różnych zagadnień związanych z bezpieczeństwem sieci bezprzewodowych, językiem asembler, technikami wykorzystywania podatności systemów operacyjnych i sieci komputerowych i wielu innych. Portal SecurityTube.net jest co miesiąc odwiedzany przez ponad 100 tysięcy internautów. Prace Viveka dotyczące bezpieczeństwa bezprzewodowych sieci komputerowych były niejednokrotnie przywoływane na takich portalach, jak BBC Online, InfoWorld, MacWorld, The Register, IT World Canada i wielu innych. Prowadził już wiele wykładów i szkoleń na konferencjach Blackhat, Defcon, Hacktivity, 44con, HITB-ML, BruCON, Derbycon, Hashdays, SecurityZone, SecurityByte i innych. Chciałbym podziękować mojej kochanej żonie za jej pomoc i wsparcie, jakiego doświadczyłem podczas pisania tej książki; moim rodzicom, dziadkom i siostrze za niezachwianą wiarę i podtrzymywanie mnie na duchu przez te wszystkie lata. Na koniec chciałbym również podziękować wszystkim użytkownikom portalu SecurityTube.net, którzy zawsze byli po mojej stronie i wspierali całą moją pracę. Jesteście wspaniali!
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Cameron Buchanan to zawodowy pentester i autor publikacji związanych z bezpieczeństwem systemów komputerowych. Wykonywał testy penetracyjne na całym świecie, dla wielu klientów z różnych branż. Wcześniej odbywał służbę wojskową w Królewskich Siłach Powietrznych (RAF). Uwielbia się wygłupiać i robić niezbyt mądre rzeczy, takie jak zmuszanie różnych dziwnych przedmiotów do latania, ryzykowanie porażenia prądem podczas nietypowych eksperymentów czy spędzanie wolnego czasu na nurkowaniu w lodowato zimnej wodzie. Cameron mieszka ze swoją żoną w Londynie.
8
Rozdział XX. • ???
O recenzencie Marco Alamanni to profesjonalista, posiadający duże doświadczenie w pracy jako administrator systemów Linux oraz specjalista do spraw bezpieczeństwa systemów teleinformatycznych w bankach i innych instytucjach finansowych we Włoszech i w Peru. Posiada tytuł licencjata w dziedzinie informatyki oraz magistra inżyniera w dziedzinie bezpieczeństwa IT. Interesuje się przeprowadzaniem testów penetracyjnych, informatyką śledczą, analizą złośliwego oprogramowania, systemami linuksowymi, programowaniem i paroma innymi dziedzinami. Współpracuje również z kilkoma popularnymi magazynami z branży IT, dla których pisze artykuły dotyczące systemów Linux i różnych zagadnień z dziedziny bezpieczeństwa.
Chciałbym skorzystać z okazji i serdecznie podziękować mojej rodzinie oraz wydawnictwu Packt za to, że jako recenzent mogłem się przyczynić do powstania tej książki.
9
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Klauzula wyłączenia odpowiedzialności Zagadnienia omawiane w niniejszej książce zostały opracowane tylko i wyłącznie w celach edukacyjnych. Założeniem tej publikacji jest popularyzacja wiedzy na temat zagrożeń bezpieczeństwa bezprzewodowych sieci komputerowych oraz pomoc administratorom takich sieci w testowaniu i zabezpieczaniu infrastruktury swoich środowisk komputerowych przed atakami hakerów. Wydawnictwo Helion oraz autor tej książki nie ponoszą żadnej odpowiedzialności za możliwe konsekwencje jakichkolwiek działań związanych z niewłaściwym bądź nieprawomocnym użyciem materiałów i narzędzi omawianych w tej książce.
10
Wprowadzenie Sieci bezprzewodowe w dzisiejszym świecie są spotykane powszechnie. Miliony ludzi na całym świecie codziennie korzystają z takich sieci w swoich domach, biurach i miejscach publicznych, łącząc się z siecią Internet i wewnętrznymi sieciami swoich firm i organizacji. Jednak pomimo iż sieci bezprzewodowe znakomicie ułatwiają pracę i codzienne życie oraz zapewniają niesamowitą wręcz mobilność, korzystanie z nich nieodłącznie wiąże się z pewnym ryzykiem. W ostatnich latach źle zabezpieczone sieci bezprzewodowe były wykorzystywane do włamań do wielu firm, banków, a nawet organizacji rządowych. Natężenie takich ataków rośnie z roku na rok, ponieważ wielu administratorów nadal nie wie, jak powinni zabezpieczyć swoje sieci, aby były odporne na awarie i próby włamania. Celem książki Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego jest ułatwienie Czytelnikowi zrozumienia zagrożeń powiązanych z sieciami bezprzewodowymi oraz przedstawienie technik i metodologii przeprowadzania testów penetracyjnych takich sieci. Jest to niemal obowiązkowa pozycja dla wszystkich, którzy chcą zajmować się audytami bezpieczeństwa sieci bezprzewodowych i poszukują książki omawiającej taką tematykę krok po kroku, w przystępny, praktyczny sposób. Ponieważ każde zagadnienie i każda technika ataku opisywane w tej książce są od razu poparte ćwiczeniami, proces przyswajania przedstawianych zagadnień jest kompletny. Jako platformę do przeprowadzania ataków na sieci bezprzewodowe wybraliśmy dystrybucję Kali Linux. System Kali Linux, następca dobrze znanego i lubianego Backtrack, jest najpopularniejszą na świecie dystrybucją systemu operacyjnego dedykowanego do przeprowadzania testów penetracyjnych. W jego skład wchodzą setki różnych poleceń i narzędzi, z których wiele będziemy wykorzystywali podczas doświadczeń opisywanych w tej książce.
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Co znajdziesz w tej książce Rozdział 1., „Tworzymy laboratorium sieci bezprzewodowych”, stanowi wprowadzenie do ćwiczeń i doświadczeń, które będziemy wykonywać w kolejnych rozdziałach. W ramach przygotowań do ich przeprowadzania czytelnik będzie musiał utworzyć i odpowiednio skonfigurować swoje laboratorium sieci bezprzewodowych. Z tego rozdziału dowiesz się, jak utworzyć takie laboratorium przy użyciu sprzętu dostępnego niemal w każdym sklepie komputerowym oraz oprogramowania typu open source. Najpierw zajmiemy się wymaganiami sprzętowymi, które obejmują takie urządzenia, jak karty bezprzewodowe, anteny, punkty dostępowe i inne urządzenia z bezprzewodowymi interfejsami sieciowymi, a następnie skoncentrujemy się na wymaganiach oprogramowania, obejmujących zarówno systemy operacyjne, jak i sterowniki urządzeń Wi-Fi oraz różnego rodzaju narzędzia. Na zakończenie połączymy te wszystkie elementy w jedną całość i utworzymy z nich platformę do testowania różnych konfiguracji sieci bezprzewodowych. W rozdziale 2., „Sieci WLAN i związane z nimi zagrożenia”, skoncentrujemy się na lukach i słabościach stanowiących niejako „wrodzoną” cechę sieci bezprzewodowych, powodującą, że w bazowej konfiguracji są one bardzo podatne na ataki. Następnie przypomnimy podstawowe informacje o protokołach 802.11 WLAN, używając do tego celu programu Wireshark, co pozwoli Ci na praktyczne poznanie zasad działania tych protokołów. Co najważniejsze, poprzez analizę ramek zarządzających, ramek rozgłoszeniowych i ramek danych pokażemy, jak w praktyce odbywa się komunikacja na poziomie pakietów między klientem a punktem dostępowym. Następnie omówimy techniki wstrzykiwania i nasłuchiwania pakietów w sieciach bezprzewodowych i poznamy wybrane narzędzia pozwalające przeprowadzać takie operacje. Z rozdziału 3., „Omijanie uwierzytelniania sieci WLAN”, dowiesz się, w jaki sposób można złamać mechanizm uwierzytelniania w sieci WLAN. W ćwiczeniach krok po kroku pokażemy, jak ominąć mechanizmy uwierzytelniania z otwartym dostępem oraz ze współdzielonym kluczem. Przy okazji dowiesz się, jak można analizować pakiety przesyłane w sieciach bezprzewodowych oraz jak rozpoznać rodzaj mechanizmu uwierzytelniania wykorzystywanego w danej sieci. W dalszej części rozdziału pokażemy również, jak uzyskać dostęp do sieci, która nie rozgłasza swojego identyfikatora SSID oraz korzysta z mechanizmu filtrowania adresów MAC. Są to dwa bardzo popularne mechanizmy, stosowane przez administratorów bezprzewodowych sieci komputerowych do zabezpieczania sieci przed nieautoryzowanymi użytkownikami; w praktyce okazuje się jednak, że są one bardzo łatwe do obejścia. Rozdział 4., „Słabe strony protokołów szyfrowania w sieciach WLAN”, omawia jeden z najbardziej podatnych na ataki elementów sieci WLAN — protokoły WEP, WPA i WPA2. W ostatniej dekadzie hakerzy znaleźli i podali do publicznej wiadomości wiele luk w zabezpieczeniach tych protokołów. W sieci pojawiło się również wiele rodzajów gotowego oprogramowania, które pozwala na złamanie kluczy protokołów i odszyfrowanie przesyłanych danych. Nawet protokoły WPA/WPA2, które z założenia są uważane za bezpieczne, w przypadku nieprawidłowej konfiguracji czy użycia słabego hasła są podatne na ataki. W tym rozdziale omówimy słabe strony poszczególnych protokołów i pokażemy, jak w praktyce wykorzystać je do przeprowadzenia skutecznego ataku.
12
Wprowadzenie
W rozdziale 5., „Ataki na infrastrukturę sieci WLAN”, przeniesiemy ciężar naszych zainteresowań na słabe strony infrastruktury sieci WLAN i pokażemy, co grozi w przypadku błędnej konfiguracji urządzeń czy niewłaściwego zaprojektowania sieci bezprzewodowej. W tym rozdziale zaprezentujemy praktyczne przykłady takich ataków, jak fałszowanie adresu MAC punktu dostępowego, ataki typu bit-flipping, ataki typu powtarzanie pakietów, podstawianie nieautoryzowanych punktów dostępowych czy ataki typu odmowa usługi (DoS). Po przeczytaniu tego rozdziału będziesz już dobrze wiedział, jak przeprowadzać testy penetracyjne obejmujące infrastrukturę sieci WLAN. Jeżeli do tej pory myślałeś, że odpowiednie zabezpieczenie klienta sieci bezprzewodowej to coś, czym nie należy się przejmować, to rozdział 6., „Ataki na klienta sieci WLAN”, będzie dla Ciebie prawdziwym zaskoczeniem. Większość użytkowników myślących o bezpieczeństwie sieci bezprzewodowej nie poświęca zbyt wiele czasu zabezpieczeniom samego klienta. W tym rozdziale udowodnimy ponad wszelką wątpliwość, że podczas przeprowadzania testów penetracyjnych odpowiednie zabezpieczenie klienta jest co najmniej tak samo ważne, jak bezpieczeństwo punktu dostępowego. W ćwiczeniach pokażemy, w jaki sposób możesz przełamać zabezpieczenia klienta, przeprowadzając takie ataki, jak wymuszenie skojarzenia, Caffe Latte, anulowanie skojarzenia, połączenia ad hoc, podstawione punkty dostępowe i wiele innych. W rozdziale 7., „Zaawansowane ataki na sieci WLAN”, będziemy omawiać znacznie bardziej zaawansowane i skomplikowane metody ataków na sieci bezprzewodowe niż te, którymi zajmowaliśmy się w poprzednich rozdziałach. Takie ataki zazwyczaj wymagają przeprowadzenia szeregu odpowiednio skoordynowanych, podstawowych ataków, tak aby wstępnie przełamać zabezpieczenia systemu i otworzyć drogę do bardziej wyrafinowanego ataku. W tym rozdziale będziemy omawiać między innymi metody identyfikacji urządzeń bezprzewodowych, ataki typu Man-in-the-Middle, omijanie bezprzewodowych systemów wykrywania włamań czy podstawianie nieautoryzowanych punktów dostępowych. Zagadnienia prezentowane w tym rozdziale to najnowsze osiągnięcia w zakresie ataków na sieci bezprzewodowe i technik przeprowadzania testów penetracyjnych. Rozdział 8., „Ataki na sieci WLAN z szyfrowaniem WPA-Enterprise i serwerami Radius”, przenosi czytelnika na kolejny poziom, przedstawiając zaawansowane ataki na sieci WPAEnterprise oraz metody konfiguracji serwera Radius. Znajomość takich metod ataków będzie bardzo przydatna podczas przeprowadzania testów penetracyjnych w dużych sieciach korporacyjnych, które wykorzystują protokół WPA-Enterprise z uwierzytelnianiem opartym na serwerach Radius. Metody ataków opisane w tym rozdziale należą do najbardziej zaawansowanych i złożonych, jakie możesz wykorzystać w praktyce. Rozdział 9., „Metodologia testów penetracyjnych sieci bezprzewodowych”, to rozdział, w którym zbierzemy wszystko, czego nauczyłeś się z poprzednich rozdziałów, i pokażemy, jak użyć tej wiedzy do przeprowadzenia testów penetracyjnych w systematyczny, zorganizowany sposób. W tym rozdziale omówimy poszczególne fazy metodologii przeprowadzania testów penetracyjnych — planowanie, rozpoznanie, atak i raportowanie — oraz powiemy, jak w praktyce zastosować ją do testów penetracyjnych. Na zakończenie powiemy również kilka słów na temat
13
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
tego, jak można rekomendować wprowadzenie aktualizacji i usunięcie luk w zabezpieczeniach, które zostały wykryte podczas testów oraz które wynikają z dobrych praktyk powszechnie stosowanych w tej branży. Rozdział 10., „Szyfrowanie WPS i sondowanie sieci”, opisuje dwa nowe rodzaje ataków, które pojawiły się na rynku już po ukazaniu się pierwszego wydania naszej książki. W tym rozdziale omówimy ataki na sieci wykorzystujące szyfrowanie WPS oraz przechwytywanie pakietów sondujących.
Co będzie potrzebne do pracy z książką Aby wykonać ćwiczenia i doświadczenia opisywane w tej książce, będziesz potrzebował dwóch laptopów z wbudowanymi bezprzewodowymi kartami sieciowymi, zewnętrznej, podłączanej przez USB karty bezprzewodowej, systemu Kali Linux i kilku innych urządzeń. Wszystkie wymagania i lista urządzeń niezbędnych do zbudowania laboratorium sieci bezprzewodowych zostały szczegółowo opisane w rozdziale 1., zatytułowanym „Tworzymy laboratorium sieci bezprzewodowych”. Rozwiązaniem alternatywnym do konfiguracji z dwoma laptopami może być utworzenie maszyny wirtualnej z systemem Kali Linux i podłączenie do niej zewnętrznej karty bezprzewodowej za pomocą portu USB. Dzięki takiemu rozwiązaniu będziesz mógł szybciej rozpocząć pracę z książką. Nie zmienia to jednak faktu, że do pracy w terenie zdecydowanie polecanym rozwiązaniem jest laboratorium oparte na rozwiązaniach sprzętowych. Zanim przystąpisz do czytania tej książki, powinieneś poznać podstawy funkcjonowania bezprzewodowych sieci komputerowych, włączając w to takie zagadnienia, jak przynajmniej podstawowa znajomość protokołu 802.11 i przebiegu komunikacji między klientem a punktem dostępowym. W poszczególnych rozdziałach będziemy się starali pokrótce wyjaśniać poszczególne zagadnienia, jednak znajomość chociaż podstawowych pojęć zdecydowanie ułatwi Ci pracę z książką.
Dla kogo przeznaczona jest ta książka Choć ta książka pojawia się w serii dla początkujących, to tak naprawdę jest przeznaczona dla użytkowników na każdym poziomie zaawansowania, od niemal zupełnych amatorów do użytkowników zajmujących się testami penetracyjnymi na co dzień. Z pewnością każdy znajdzie tutaj coś dla siebie. Książka rozpoczyna się od omówienia prostych, podstawowych metod ataków na sieci bezprzewodowe i w kolejnych rozdziałach przechodzi do coraz bardziej zaawansowanych i złożonych tematów, aby wreszcie skończyć na przedstawieniu zagadnień, które reprezentują najnowsze osiągnięcia w dziedzinie ataków na sieci bezprzewodowe i testów
14
Wprowadzenie
penetracyjnych. Ponieważ wszystkie przedstawione w tej książce metody ataków są szczegółowo, krok po kroku opisane w ćwiczeniach, każdy Czytelnik, niezależnie od umiejętności i stopnia zaawansowania, może szybko samodzielnie sprawdzić nowo nabytą wiedzę w praktyce. Warto zauważyć, że pomimo iż w książce opisaliśmy mniej lub bardziej zaawansowane metody ataków na sieci bezprzewodowe, to jednak robimy to wyłącznie z myślą o przygotowaniu użytkownika do pracy jako specjalista zajmujący się przeprowadzaniem testów penetracyjnych sieci bezprzewodowych. Specjalista w tej dziedzinie musi doskonale znać i rozumieć metody przeprowadzania ataków, aby być w stanie wykryć słabe strony zabezpieczeń badanej sieci i w razie potrzeby mieć możliwość zademonstrowania ich klientowi zlecającemu takie badanie.
Konwencje użyte w tej książce W tekście książki do oznaczania różnych informacji będziemy używali kilku wybranych krojów czcionki. Poniżej znajdziesz kilka przykładów takich rozwiązań oraz wyjaśnienie ich znaczenia. Słowa kluczowe i nazwy poleceń pojawiających się w tekście są oznaczane tak: „Interfejs sieciowy został aktywowany przy użyciu polecenia ifconfig”. Nazwy plików i folderów, rozszerzenia plików, nazwy opcji i menu programu, adresy URL oraz ścieżki dostępu przedstawione są tak: https://www.kali.org/. Polecenia i inne ciągi znaków, które powinieneś samodzielnie wpisać w oknie terminala czy w innych oknach dialogowych różnych programów, będą oznaczane tak: airodump-ng -bssid 00:21:91:D2:8E:25 --channel 11 --write WEPCrackingDemo mon0
Nowe i ważne terminy zapisywane są pogrubioną czcionką. Wskazówki, sugestie i ważne informacje pojawiać się będą w takich ramkach.
Errata Choć dołożyliśmy wszelkich starań, aby zawartość naszej książki była pozbawiona błędów, zawsze może się zdarzyć, że złośliwy chochlik spłatał nam jakiegoś psikusa. Jeżeli znajdziesz błąd w jednej z naszych książek — czy jest to literówka w tekście, czy też błąd w zamieszczonym kodzie programu — będziemy wdzięczni, jeśli nas o tym poinformujesz. Wysyłając do nas taką informację, pomożesz innym czytelnikom uniknąć niepotrzebnej frustracji, a nam pomożesz poprawić kolejne wersje tej książki. Jeżeli znajdziesz jakiś błąd, wejdź na stronę http://helion.pl/user/erraty/, wypełnij krótki formularz z opisem błędu i wyślij go do redakcji. Po pomyślnym zweryfikowaniu takiej informacji zgłoszony przez Ciebie błąd zostanie 15
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
opublikowany na naszej stronie internetowej i uwzględniony w kolejnych wydaniach książki. Listę zgłoszonych do tej pory poprawek do naszych książek możesz zobaczyć na stronie http://helion.pl/erraty.htm.
Nielegalne kopiowanie Nielegalne kopiowanie w sieci Internet materiałów objętych prawami autorskimi stanowi w dzisiejszym świecie poważny problem. W wydawnictwie Helion bardzo poważnie podchodzimy do wszelkich zagadnień związanych z ochroną praw autorskich i licencji. Jeżeli znajdziesz w sieci Internet nielegalne kopie naszych książek, prosimy o przekazanie nam takiej informacji z adresem odpowiedniej strony, dzięki czemu będziemy mogli podjąć właściwe kroki w celu ochrony praw autorskich. Aby przesłać nam takie zgłoszenie, wejdź na stronę http://helion.pl/piracy.phtml i wypełnij krótki formularz. Z góry dziękujemy za pomoc w ochronie praw autorskich!
16
1 Tworzymy laboratorium sieci bezprzewodowych „Jeżeli miałbym osiem godzin na ścięcie drzewa, to pierwszych sześć godzin spędziłbym na ostrzeniu mojego topora”. Abraham Lincoln, szesnasty prezydent Stanów Zjednoczonych Za każdym pomyślnie wykonanym zadaniem kryją się godziny czy nawet dni żmudnych przygotowań — a testy penetracyjne sieci bezprzewodowych nie są tutaj żadnym wyjątkiem. W tym rozdziale utworzymy proste laboratorium sieci bezprzewodowych, z którego będziemy następnie korzystać w kolejnych rozdziałach tej książki. Zbudowane laboratorium powinieneś potraktować jako poligon doświadczalny przed wyprawą w świat testów penetracyjnych rzeczywistych sieci bezprzewodowych. Testy penetracyjne sieci bezprzewodowych to zagadnienie czysto praktyczne, stąd niezmiernie istotne staje się zbudowanie odpowiedniego laboratorium sieci bezprzewodowych, które pozwoli Ci na samodzielne przeprowadzenie wszystkich eksperymentów opisywanych w tej książce w bezpiecznym i w pełni kontrolowanym środowisku. Pamiętaj, że takie laboratorium powinieneś utworzyć, zanim przejdziesz do kolejnych rozdziałów.
W tym rozdziale będziemy zajmować się następującymi zagadnieniami: Wymagania sprzętowe i programowe. Instalacja systemu Kali Linux. Instalowanie i konfigurowanie bezprzewodowych punktów dostępowych. Instalowanie bezprzewodowej karty sieciowej. Testowanie połączenia między laptopem a bezprzewodowym punktem dostępowym.
A zatem do dzieła!
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Wymagania sprzętowe Do zbudowania naszego laboratorium sieci bezprzewodowych będą nam potrzebne następujące urządzenia: Dwa laptopy z wbudowanymi bezprzewodowymi kartami sieciowymi — jeden
z laptopów będzie odgrywał rolę naszej laboratoryjnej „ofiary”, a drugi będzie laptopem użytkownika przeprowadzającego testy penetracyjne. Do naszych celów możemy użyć niemal każdego laptopa, aczkolwiek zdecydowanie zalecanym wyposażeniem takich komputerów będzie co najmniej 3 GB pamięci RAM. Takie wymaganie jest podyktowane tym, że w naszych eksperymentach będziemy wykorzystywać oprogramowanie, które do poprawnego działania potrzebuje dużych ilości pamięci operacyjnej. Jedna bezprzewodowa karta sieciowa — do naszych doświadczeń będzie nam
potrzebna bezprzewodowa karta sieciowa, która obsługuje mechanizmy wstrzykiwania pakietów (ang. packet injection) oraz nasłuchiwania i przechwytywania pakietów (ang. packet sniffing) i która jest obsługiwana przez system Kali Linux. Najlepszym rozwiązaniem wydaje się użycie popularnej karty Alfa AWUS036H1 produkowanej przez firmę Alfa Networks, ponieważ system Kali Linux pozwala na użycie takiej karty od razu po zainstalowaniu. W chwili powstawania polskiego tłumaczenia tej książki taka karta kosztowała ok. 160 – 200 zł. Alternatywnym rozwiązaniem może być zastosowanie karty Edimax EW-7711UAN, która jest nieco mniejsza i tańsza. Jeden bezprzewodowy punkt dostępowy — możesz użyć dowolnego
bezprzewodowego punktu dostępowego lub routera z obsługą szyfrowania WEP/WPA/WPA2. Wszystkie przykłady w tej książce zostały wykonane przy użyciu bezprzewodowego routera TP-LINK TL-WR841N Wireless. W chwili powstawania polskiego tłumaczenia tej książki taki router można było kupić za ok. 80 – 100 zł. Połączenie z siecią Internet — takie połączenie będzie bardzo przydatne
do wyszukiwania w sieci Internet informacji na temat sieci bezprzewodowych, pobierania oprogramowania i przeprowadzania różnych eksperymentów.
1
Uwaga: zgodnie z dokumentacją producenta maksymalna moc nadawania karty Alfa AWUS036H wynosi 1000 mW (30 dBm). W Polsce maksymalna dozwolona prawem moc wypromieniowywana z anteny (EIRP) urządzeń pracujących w paśmie 2,4 GHz nie może być wyższa niż 100 mW (20 dBm), więc korzystanie z urządzeń i instalacji o wyższych mocach EIRP wymaga posiadania specjalnego zezwolenia — konieczne może się okazać programowe wyregulowanie mocy wyjściowej lub zastosowanie kabla o odpowiedniej długości, tak aby całkowita moc wypromieniowywana z anteny nie przekraczała 100 mW (20 dBm) — przyp. tłum.
18
Rozdział 1. • Tworzymy laboratorium sieci bezprzewodowych
Niezbędne oprogramowanie Do utworzenia naszego laboratorium sieci bezprzewodowych będzie nam potrzebne następujące oprogramowanie: Kali Linux — obrazy ISO systemu Kali Linux możesz pobrać z oficjalnej strony
internetowej tego projektu, http://www.kali.org/. System Kali Linux jest oprogramowaniem typu open source. Na stronie projektu znajdziesz również gotowe do pobrania pliki maszyn wirtualnych VMware i VirtualBox z zainstalowanym systemem Kali Linux. Windows XP/Vista/7 — na jednym z laptopów laboratoryjnych będziesz musiał
zainstalować system Windows XP, Vista lub Windows 7. Laptop z zainstalowanym systemem Windows będzie odgrywał w naszym laboratorium rolę „ofiary” ataku. Pamiętaj, że choć do naszych testów będziemy używać komputera z zainstalowanym systemem Windows, opisywane techniki mogą być zastosowane do dowolnych urządzeń korzystających z sieci Wi-Fi, takich jak smartfony, tablety i inne.
Instalowanie systemu Kali Linux W tym podrozdziale pokażemy, w jaki sposób szybko zainstalować i uruchomić system Kali Linux. System Kali Linux zainstalujemy na laptopie odgrywającym w naszym laboratorium rolę komputera, za pomocą którego będziemy przeprowadzali testy penetracyjne.
Czas na działanie — instalujemy system Kali Linux Instalacja systemu Kali Linux nie jest skomplikowana. Aby rozpocząć korzystanie z niego, najpierw uruchom go z dysku Live DVD, a następnie zainstaluj na dysku twardym. Aby to zrobić, wykonaj polecenia opisane poniżej: 1. Użyj pobranego obrazu ISO do nagrania dysku startowego DVD systemu Kali Linux (w przykładach z naszej książki używamy 32-bitowej wersji tego systemu). 2. Uruchom laptopa z dysku DVD i z menu uruchomieniowego (ang. Boot menu) wybierz opcję Install.
19
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
3. Jeżeli system zostanie pomyślnie uruchomiony, na monitorze powinieneś zobaczyć imponujący ekran w stylu retro, podobny do przedstawionego poniżej.
4. Instalator systemu Kali Linux jest podobny do wyposażonych w GUI instalatorów wielu innych dystrybucji systemu Linux, dlatego z jego obsługą nie powinieneś mieć najmniejszych problemów. Na kolejnych ekranach wybieraj żądane opcje i odpowiadaj
20
Rozdział 1. • Tworzymy laboratorium sieci bezprzewodowych
na pytania zadawane przez program instalacyjny. Po zakończeniu całego procesu program instalacyjny poprosi o usunięcie dysku Live DVD z napędu i wykonanie restartu całego systemu. 5. Po ponownym uruchomieniu systemu na monitorze pojawi się ekran logowania systemu Kali Linux. Jako nazwę użytkownika wpisz root, a jako hasło dostępu wpisz frazę, którą wybrałeś podczas procesu instalacji. Od tego momentu powinieneś być już zalogowany do systemu Kali Linux, zainstalowanego na dysku twardym Twojego komputera. Gratulacje! Na potrzeby książki dokonaliśmy pewnych zmian wyglądu i ustawień systemu. Oczywiście, w razie potrzeby możesz wprowadzić swoje zmiany i dostosować wygląd systemu do własnych preferencji!
Co się stało? Właśnie zainstalowałeś system Kali Linux na dysku twardym laptopa, którego będziemy używali do przeprowadzania testów penetracyjnych w doświadczeniach opisywanych w tej książce.
Zrób to sam — instalowanie systemu Kali Linux w maszynie wirtualnej VirtualBox System Kali Linux możesz również zainstalować w maszynie wirtualnej utworzonej przy użyciu oprogramowania VirtualBox. Dla czytelników, którzy nie chcą lub nie mogą zainstalować systemu Kali Linux na osobnym, dedykowanym laptopie, użycie maszyny wirtualnej jest zdecydowanie najlepszym rozwiązaniem. Proces instalacji systemu Kali Linux na maszynie wirtualnej jest dokładnie taki sam jak na komputerze. Jedyna różnica polega na tym, że w przypadku wirtualizacji musisz przed rozpoczęciem instalacji systemu utworzyć samą maszynę wirtualną. Zrób to sam! Pakiet oprogramowania VirtualBox możesz pobrać ze strony http://www. virtualbox.org/. Innym rozwiązaniem może być zainstalowanie systemu Kali Linux na przenośnym, zewnętrznym dysku USB. Jest to szczególnie użyteczne, kiedy nie chcesz instalować systemu na dysku twardym swojego komputera, ale nadal chcesz mieć możliwość zachowania oprogramowania danych przetwarzanych w systemie Kali Linux, takich jak nowe skrypty, narzędzia czy pakiety danych. Zdecydowanie zachęcamy Cię do wypróbowania również takiego rozwiązania!
Instalacja i konfiguracja bezprzewodowego punktu dostępowego Teraz zajmiemy się instalacją i konfiguracją punktu dostępowego. Jak już wspominaliśmy wcześniej, w doświadczeniach opisywanych w naszej książce będziemy używali bezprzewodowego routera TP-LINK TL-WR841N Wireless, choć możesz oczywiście użyć do tego celu dowolnego innego bezprzewodowego punktu dostępowego. Podstawowe zasady działania i użytkowania pozostają takie same.
21
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Czas na działanie — konfiguracja bezprzewodowego punktu dostępowego A zatem zaczynamy! Nasze zadanie rozpoczniemy od skonfigurowania bezprzewodowego punktu dostępowego tak, aby oferował otwarty dostęp do sieci bezprzewodowej, której nadamy identyfikator SSID Wireless Lab. Aby to zrobić, wykonaj polecenia opisane niżej: 1. Włącz bezprzewodowy punkt dostępowy i użyj kabla sieciowego Ethernet do połączenia laptopa z jednym z kablowych portów Ethernet punktu dostępowego. 2. Uruchom przeglądarkę sieciową i w polu adresu wpisz adres IP terminala konfiguracyjnego punktu dostępowego. Dla naszego routera TP-Link będzie to 192.168.0.1 (adres IP terminala konfiguracyjnego możesz znaleźć w podręczniku użytkownika bezprzewodowego punktu dostępowego). Jeżeli nie posiadasz odpowiedniego podręcznika użytkownika, możesz odnaleźć adres IP terminala konfiguracyjnego poprzez wykonanie z poziomu wiersza poleceń komendy route -n. Adres IP bramy sieciowej jest w takiej sytuacji zazwyczaj adresem IP punktu dostępowego. Po uzyskaniu połączenia z punktem dostępowym w oknie przeglądarki powinien pojawić się ekran logowania terminala konfiguracyjnego punktu dostępowego, który w naszym przypadku wygląda tak, jak na rysunku poniżej.
3. Po zalogowaniu się zapoznaj się z oferowanymi opcjami i ustawieniami, a następnie przejdź do sekcji pozwalającej na ustawienie nowego identyfikatora SSID sieci. 4. Zmień domyślną wartość identyfikatora SSID na Wireless Lab. W przypadku niektórych modeli punktów dostępowych po dokonaniu takiej zmiany może być wymagane zrestartowanie całego urządzenia — zobacz pierwszy rysunek na kolejnej stronie. 5. Teraz przejdź do sekcji pozwalającej na zmianę ustawień zabezpieczeń sieci bezprzewodowej (ang. Wireless Security) i wybierz otwarty dostęp do sieci (ang. Open Authentication). W naszym przypadku możemy to zrobić, wybierając opcję Disable Security (wyłącz zabezpieczenia).
22
Rozdział 1. • Tworzymy laboratorium sieci bezprzewodowych
6. Zapisz zmiany wprowadzone w ustawieniach konfiguracyjnych punktu dostępowego i jeżeli będzie to konieczne, zrestartuj całe urządzenie. Od tego momentu punkt dostępowy powinien działać poprawnie i udostępniać sieć z identyfikatorem SSID Wireless Lab. Łatwym sposobem sprawdzenia poprawności konfiguracji punktu dostępowego jest uruchomienie kreatora tworzenia sieci bezprzewodowej na drugim laptopie laboratoryjnym, działającym pod kontrolą systemu Windows, a następnie wyświetlenie na ekranie listy dostępnych sieci bezprzewodowych. Jeżeli wszystko działa tak, jak powinno, jedną z dostępnych sieci będzie sieć o nazwie Wireless Lab.
23
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Co się stało? Właśnie pomyślnie zakończyłeś proces konfiguracji bezprzewodowego punktu dostępowego, który od tej chwili udostępnia otwartą sieć bezprzewodową o nazwie (SSID) Wireless Lab. Punkt dostępowy rozgłasza obecność sieci, a jego komunikaty są odbierane przez drugiego laptopa laboratoryjnego, działającego w systemie Windows, oraz wszystkie inne komputery wyposażone w bezprzewodowe karty sieciowe, które znajdują się w zasięgu nadawania punktu dostępowego. Powinieneś zwrócić szczególną uwagę na fakt, że punkt dostępowy został skonfigurowany do pracy w trybie otwartego dostępu (ang. open mode), który jest najmniej bezpiecznym trybem pracy punktu dostępowego. Z tego powodu nie powinieneś na razie podłączać tego punktu dostępowego do sieci Internet, ponieważ inni, niekoniecznie uprawnieni do tego użytkownicy, którzy znajdą się w zasięgu sygnału punktu dostępowego, będą mogli się do niego bez problemu podłączyć i używać go do korzystania z sieci Internet.
Zrób to sam — konfigurowanie punktu dostępowego do korzystania z szyfrowania WEP i WPA Zapoznaj się z opcjami konfiguracyjnymi Twojego bezprzewodowego punktu dostępowego. Sprawdź, czy możesz skonfigurować go tak, aby korzystał z takich standardów szyfrowania, jak WEP czy WPA/WPA2. W dalszej części tej książki będziemy używać tych ustawień w doświadczeniach ilustrujących metody ataku na sieci bezprzewodowe zabezpieczone w taki sposób.
Konfiguracja bezprzewodowej karty sieciowej Konfiguracja bezprzewodowej karty sieciowej jest znacznie łatwiejsza niż konfiguracja punktu dostępowego. Wielką zaletą systemu Kali Linux jest to, że posiada wbudowaną obsługę karty Alfa oraz jest od razu wyposażony we wszystkie sterowniki niezbędne do włączenia mechanizmów wstrzykiwania pakietów (ang. packet injection) oraz nasłuchiwania pakietów (ang. packet sniffing).
Czas na działanie — konfigurowanie bezprzewodowej karty sieciowej Na nasze potrzeby będziemy używać bezprzewodowej karty sieciowej, podłączonej do laptopa „penetracyjnego” (czyli, inaczej mówiąc, do laptopa, którego będziemy używać do przeprowadzania testów penetracyjnych).
24
Rozdział 1. • Tworzymy laboratorium sieci bezprzewodowych
Aby skonfigurować bezprzewodową kartę Alfa, powinieneś wykonać polecenia opisane niżej: 1. Podłącz bezprzewodową kartę sieciową do jednego z portów USB laptopa „penetracyjnego”, działającego pod kontrolą systemu Kali Linux. Po zalogowaniu się do systemu otwórz konsolę terminala i wpisz polecenie iwconfig. Odpowiedź systemu w oknie terminala powinna wyglądać mniej więcej tak, jak przedstawiono na rysunku poniżej.
Jak widać na rysunku, interfejs sieciowy naszej bezprzewodowej karty sieciowej nosi nazwę wlan0. Aby uaktywnić ten interfejs, powinieneś w wierszu poleceń okna terminala wpisać komendę ifconfig wlan0 up. Następnie, aby sprawdzić bieżący stan interfejsu, powinieneś wpisać komendę ifconfig wlan0, tak jak to zostało przedstawione na rysunku poniżej.
2. Adres MAC karty sieciowej powinien odpowiadać adresowi MAC Twojej karty Alfa (zazwyczaj znajdziesz go na naklejce znajdującej się na spodzie obudowy karty). W moim laboratorium używam karty Edimax, której adres MAC widać na poprzednim rysunku (80:1f:02:8f:34:d5). W taki sposób możesz szybko upewnić się, że włączyłeś właściwy interfejs sieciowy.
Co się stało? System Kali Linux jest wyposażony we wszystkie niezbędne sterowniki dla bezprzewodowych kart sieciowych Alfa i Edimax. Dzięki temu nasza karta sieciowa została automatycznie rozpoznana i zainstalowana od razu po uruchomieniu systemu. Dodatkowo automatycznie został jej przydzielony interfejs sieciowy o nazwie wlan0. Od tego momentu karta działa poprawnie i możesz jej używać do swoich celów.
25
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Podłączanie się do bezprzewodowego punktu dostępowego Z kolejnego podrozdziału dowiesz się, jak podłączyć się do punktu dostępowego przy użyciu bezprzewodowej karty sieciowej. Jak pamiętasz, SSID naszej sieci bezprzewodowej to Wireless Lab, a sama sieć pracuje w trybie otwartego dostępu (nie wykorzystuje żadnego mechanizmu uwierzytelniania dostępu).
Czas na działanie — konfigurowanie bezprzewodowej karty sieciowej A zatem do dzieła! Aby skonfigurować bezprzewodową kartę sieciową, powinieneś wykonać następujące polecenia: 1. Najpierw sprawdź, jakie sieci bezprzewodowe aktualnie wykrywa nasza karta Alfa. Otwórz okno terminala, z poziomu wiersza poleceń wpisz komendę iwlist wlan0 scanning i naciśnij klawisz Enter. Na ekranie powinna pojawić się lista dostępnych sieci bezprzewodowych, znajdujących się w zasięgu Twojej karty.
Przewiń listę tak, aby odszukać sieć o nazwie Wireless Lab. W naszym przypadku sieć Wireless Lab została wykryta jako Cell 05, ale oczywiście w Twojej konfiguracji może być inaczej. Pole o nazwie ESSID zawiera nazwę sieci. 2. Ze względu na fakt, że różne punkty dostępowe mogą oferować sieć bezprzewodową o takim samym identyfikatorze SSID, powinieneś zawsze sprawdzić, czy adres MAC podawany w polu Address (adres) zgadza się z adresem MAC Twojego punktu
26
Rozdział 1. • Tworzymy laboratorium sieci bezprzewodowych
dostępowego. Szybkim i prostym sposobem odszukania adresu MAC punktu dostępowego jest zajrzenie na nalepkę znajdującą się na spodzie obudowy lub użycie przeglądarki do połączenia się z terminalem konfiguracyjnym punktu dostępowego. 3. Teraz z poziomu wiersza poleceń wykonaj komendę iwconfig wlan0 essid "Wireless Lab", a następnie sprawdź status interfejsu, wpisując komendę iwconfig wlan0. Jeżeli prawidłowo połączyłeś się z punktem dostępowym, w polu Access Point (punkt dostępu) wyników działania polecenia iwconfig powinieneś zobaczyć adres MAC Twojego punktu dostępowego. 4. Z dokumentacji punktu dostępowego wiemy, że adres IP interfejsu zarządzania punktu dostępowego to 192.168.0.1. Jest to taki sam adres IP, jak adres IP domyślnego routera, wyświetlany po wykonaniu komendy route -n. Ustaw teraz adres IP w tej samej podsieci. Aby to zrobić, powinieneś z poziomu wiersza poleceń wykonać komendę ifconfig wlan0 192.168.0.2 netmask 255.255.255.0 up. Sprawdź, czy polecenie zostało poprawnie wykonane, wpisując komendę ifconfig wlan0 i przeglądając wyniki działania tego polecenia. 5. Teraz użyj polecenia ping do sprawdzenia połączenia z punktem dostępowym. Aby to zrobić, wykonaj z poziomu wiersza poleceń komendę ping 192.168.0.1. Jeżeli połączenie sieciowe zostało zestawione prawidłowo, powinieneś zobaczyć odpowiedź z punktu dostępowego. Dodatkowo do sprawdzenia, czy odpowiedzi nadchodzą z punktu dostępowego, możesz użyć komendy arp -a. Jeżeli wszystko jest tak, jak być powinno, powinieneś zobaczyć, że adres MAC hosta o adresie IP 192.168.0.1 odpowiada adresowi MAC Twojego punktu dostępowego, który zapewne zanotowałeś sobie już wcześniej. Pamiętaj jednak, że niektóre punkty dostępowe (zwłaszcza te nowsze) mogą mieć domyślnie wyłączoną funkcję odpowiedzi na pakiety ICMP Echo Request. Takie rozwiązanie jest stosowane w celu zapewnienia bezpieczeństwa punktu dostępowego od momentu pierwszego włączenia po rozpakowaniu pudełka, przy zachowaniu minimalnej liczby niezbędnych czynności konfiguracyjnych. W takiej sytuacji, aby sprawdzić, czy połączenie działa poprawnie, powinieneś po prostu uruchomić przeglądarkę sieciową i spróbować połączyć się z terminalem konfiguracyjnym punktu dostępowego.
Po uzyskaniu połączenia z terminalem konfiguracyjnym punktu dostępowego możesz sprawdzić działanie połączenia w dzienniku połączeń punktu dostępowego. Jak widać na rysunku zamieszczonym poniżej, żądanie DHCP, wysłane przez bezprzewodową kartę sieciową o adresie MAC 4C:0F:6E:70:BD:CB, zostało zarejestrowane w dzienniku połączeń.
27
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Co się stało? Korzystając z systemu Kali Linux oraz bezprzewodowej karty sieciowej Alfa, udało nam się zestawić poprawne połączenie bezprzewodowe z punktem dostępowym. Dowiedziałeś się również, w jaki sposób można sprawdzić, czy połączenie zostało poprawnie zestawione po stronie zarówno punktu dostępowego, jak i klienta bezprzewodowego.
Zrób to sam — tworzenie połączenia w konfiguracji z szyfrowaniem WEP A teraz czas na małe wyzwanie — spróbuj samodzielnie skonfigurować punkt dostępowy do pracy z szyfrowaniem WEP, a następnie spróbuj połączyć się z tym punktem dostępowym przy użyciu naszej karty bezprzewodowej. Wskazówka: aby dowiedzieć się, jak możesz skonfigurować bezprzewodową kartę sieciową do pracy z szyfrowaniem WEP, zajrzyj do podręcznika polecenia iwconfig, wykonując komendę man iwconfig.
Szybki quiz — podstawy 1. Z poziomu wiersza poleceń wykonałeś komendę ifconfig wlan0 up. Jak sprawdzisz, czy bezprzewodowa karta sieciowa jest aktywna i działa poprawnie? 2. Czy wszystkie eksperymenty opisane w tym rozdziale można wykonać z poziomu sesji Kali Linux Live CD bez instalowania systemu Kali Linux na dysku twardym komputera? 3. Co zobaczysz po wykonaniu z poziomu wiersza poleceń komendy arp -a? 4. Jakiego narzędzia systemu Kali Linux powinieneś użyć do połączenia się z sieciami bezprzewodowymi wykorzystującymi szyfrowanie WPA/WPA2?
28
Rozdział 1. • Tworzymy laboratorium sieci bezprzewodowych
Podsumowanie W tym rozdziale szczegółowo opisaliśmy proces tworzenia prostego laboratorium sieci bezprzewodowych. W trakcie tego procesu dowiedziałeś się: Jak zainstalować system Kali Linux na dysku twardym komputera, w maszynie wirtualnej (np. VirtualBox czy VMware) lub na dysku USB. Jak skonfigurować bezprzewodowy punkt dostępowy przy użyciu interfejsu sieciowego. Jak używać wybranych poleceń systemu Kali Linux do konfigurowania bezprzewodowej karty sieciowej. Jak sprawdzić stan połączenia między bezprzewodowym punktem dostępowym a klientem. Niezmiernie istotną sprawą jest nabranie odpowiedniego doświadczenia w konfigurowaniu połączeń bezprzewodowych. Jeżeli nie czujesz się zbyt pewnie w tych zagadnieniach, powinieneś kilka razy powtórzyć ćwiczenia opisane w tym rozdziale. W kolejnych rozdziałach będziemy zajmować się znacznie bardziej złożonymi scenariuszami. W następnym rozdziale skupimy się na zagadnieniach związanych z zagrożeniami bezpieczeństwa, które niejako wynikają z samej definicji sieci bezprzewodowych WLAN (ang. Wireless Local Area Network) i są z nimi nierozerwalnie złączone. Aby zrozumieć praktyczną istotę tych zagadnień, będziemy używać analizatora sieci Wireshark do monitorowania i analizowania pakietów przesyłanych w sieciach bezprzewodowych.
29
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
30
2 Sieci WLAN i związane z nimi zagrożenia „Im bardziej wyniosły budynek, tym głębsze musi mieć fundamenty”. Tomasz z Kempis, niemiecki zakonnik, teolog i mistyk Nie można zbudować wielkiego dzieła na słabych fundamentach, czyli inaczej mówiąc, nie można zbudować czegoś bezpiecznego na podstawie czegoś, co z samej swojej natury nie jest bezpieczne. Sieci WLAN ze względu na swoją naturę mają pewne słabe strony i są podatne na takie zagrożenia jak fałszowanie pakietów, wstrzykiwanie pakietów czy nasłuchiwanie i przechwytywanie pakietów, niebezpieczne nawet z dosyć znacznej odległości od bezprzewodowego punktu dostępowego. W tym rozdziale będziemy zajmować się analizą i wykorzystywaniem właśnie takich słabych stron sieci bezprzewodowych.
W tym rozdziale będziemy omawiali następujące zagadnienia: Budowa ramek w sieciach WLAN. Różne typy i podtypy ramek. Zastosowanie pakietu Wireshark do przechwytywania ramek zarządzających
(ang. management frames), ramek sterujących (ang. control frames) oraz ramek danych (ang. data frames). Przechwytywanie pakietów danych z wybranej sieci bezprzewodowej. Wstrzykiwanie pakietów do wybranej sieci bezprzewodowej. No to zaczynamy!
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Budowa ramek w sieciach WLAN Ponieważ w naszej książce zajmujemy się głównie zagadnieniami bezpieczeństwa bezprzewodowych sieci komputerowych, zakładamy, że masz podstawową wiedzę o protokołach komunikacyjnych i budowie nagłówków pakietów. Jeżeli jednak tak nie jest lub po prostu tematyką sieci bezprzewodowych zajmowałeś się już dosyć dawno temu, to właśnie teraz nadarza się znakomita okazja, aby takie wiadomości sobie odświeżyć. Aby nie tracić czasu na zbędne rozważania, omówimy teraz pokrótce podstawowe zagadnienia związane z budową i funkcjonowaniem bezprzewodowych sieci WLAN (większość tych tematów na pewno nie jest Ci obca). W sieciach WLAN cała komunikacja opiera się na przesyłanych ramkach. Przykładowa ramka może mieć następującą strukturę nagłówka:
Pole sterujące ramki (ang. Frame control) ma nieco bardziej złożoną strukturę:
Pole Typ określa rodzaj ramki WLAN, wskazując na jeden z trzech typów: 1. Ramki zarządzające — są odpowiedzialne za utrzymywanie komunikacji między punktami dostępowymi a klientami bezprzewodowymi. Ramki zarządzające dzielą się na podtypy:
32
Authentication (uwierzytelnianie).
De-authentication (anulowanie uwierzytelniania).
Association Request (żądanie skojarzenia).
Association Response (odpowiedź na żądanie skojarzenia).
Reassociation Request (żądanie ponownego skojarzenia).
Reassociation Response (odpowiedź na żądanie ponownego skojarzenia).
Rozdział 2. • Sieci WLAN i związane z nimi zagrożenia
Disassociation (anulowanie skojarzenia).
Beacon (rozgłoszenie).
Probe Request (sondowanie).
Probe Response (odpowiedź na sondowanie).
2. Ramki sterujące — są odpowiedzialne za poprawną wymianę danych między punktem dostępowym a klientem bezprzewodowym. Ramki sterujące dzielą się na następujące podtypy:
Request to Send (RTS) (zgłoszenie zamiaru transmisji danych).
Clear to Send (CTS) (odpowiedź na ramkę RTS).
Acknowledgement (ACK) (potwierdzenie poprawnego odbioru ramki danych).
3. Ramki danych — przenoszą właściwe dane przesyłane w sieci bezprzewodowej. Ramki danych nie mają podtypów. W kolejnych rozdziałach, przy okazji analizowania różnego typu ataków na sieci bezprzewodowe, będziemy szczegółowo omawiać konsekwencje dla bezpieczeństwa, wynikające z używania poszczególnych rodzajów ramek. Teraz pokażemy, w jaki sposób może odbywać się nasłuchiwanie i przechwytywanie opisanych powyżej ramek przy użyciu pakietu Wireshark. Oczywiście, oprócz Wiresharka możesz do tego celu użyć jednego z wielu innych narzędzi, jak na przykład Airodump-NG, Tcpdump czy Tshark. Co prawda, w tej książce w zdecydowanej większości przypadków będziemy używać pakietu Wireshark, ale nie zmienia to faktu, że gorąco namawiamy do wypróbowania również innych narzędzi. Zanim będziesz mógł rozpocząć nasłuchiwanie ramek w sieciach bezprzewodowych, będziesz musiał utworzyć interfejs sieciowy pracujący w trybie monitora. Utworzenie takiego interfejsu dla naszej karty sieciowej pozwoli na nasłuchiwanie i przechwytywanie wszystkich ramek przesyłanych w sieci bezprzewodowej, niezależnie od tego, czy dana ramka jest przeznaczona dla naszej karty, czy też nie. W świecie sieci kablowych mówimy, że taki interfejs sieciowy pracuje w trybie nasłuchiwania (ang. promiscous mode).
Czas na działanie — tworzenie interfejsu pracującego w trybie monitora Spróbuj teraz przełączyć swoją bezprzewodową kartę sieciową w tryb monitora. Aby to zrobić, powinieneś wykonać polecenia opisane niżej: 1. Podłącz bezprzewodową kartę sieciową do laptopa i uruchom system Kali Linux. Po zalogowaniu się uruchom konsolę i wpisz polecenie iwconfig, aby upewnić się, że system poprawnie wykrył Twoją kartę i załadował odpowiednie sterowniki:
33
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
2. Uaktywnij interfejs sieciowy karty, wykonując polecenie ifconfig wlan1 up (gdzie wlan1 to nazwa Twojej karty sieciowej). Sprawdź, czy karta działa poprawnie, wpisując polecenie ifconfig wlan1. Jeżeli wszystko działa tak, jak powinno, w drugim wierszu wyników dla tego polecenia powinieneś zobaczyć słowo UP, jak przedstawiono w poniższym przykładzie:
3. Aby przełączyć bezprzewodową kartę sieciową w tryb monitora, użyj polecenia airmon-ng, które jest domyślnie dostępne w systemie Kali Linux. Najpierw z poziomu wiersza poleceń wpisz komendę airmon-ng, by upewnić się, że narzędzie to poprawnie wykrywa wszystkie podłączone karty sieciowe. Jeżeli wszystko działa poprawnie, w wynikach działania tego polecenia powinieneś zobaczyć interfejs sieciowy wlan1.
34
Rozdział 2. • Sieci WLAN i związane z nimi zagrożenia
4. Teraz wykonaj polecenie airmon-ng start wlan1, które spowoduje utworzenie interfejsu sieciowego pracującego w trybie monitora i powiązanego z urządzeniem wlan1. Utworzony interfejs sieciowy będzie nosił nazwę mon0. (Aby sprawdzić, czy nowy interfejs sieciowy został utworzony poprawnie, powinieneś ponownie wykonać polecenie airmon-ng, tym razem jednak nie podając żadnych argumentów).
5. Jeżeli teraz wykonasz polecenie ifconfig mon0, na ekranie powinien zostać wyświetlony nowy interfejs sieciowy mon0.
35
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Co się stało? Właśnie utworzyłeś nowy interfejs sieciowy, mon0, pracujący w trybie monitora. Interfejsu tego będziesz używać do nasłuchiwania i przechwytywania pakietów przesyłanych w sieci bezprzewodowej. Interfejs mon0 został utworzony dla Twojej bezprzewodowej karty sieciowej.
Zrób to sam — tworzenie wielu interfejsów pracujących w trybie monitora Istnieje możliwość utworzenia wielu interfejsów pracujących w trybie monitora i wykorzystujących tę samą fizyczną kartę sieciową. Aby to zrobić, powinieneś użyć polecenia airmon-ng. Świetnie! Nasz bezprzewodowy interfejs sieciowy pracujący w trybie monitora już czeka, aby rozpocząć przechwytywanie pakietów. A zatem do dzieła! W kolejnym ćwiczeniu użyjemy pakietu Wireshark oraz utworzonego przed chwilą interfejsu mon0 do przechwytywania pakietów przesyłanych w sieci bezprzewodowej.
Czas na działanie — przechwytywanie pakietów przesyłanych w sieci bezprzewodowej Aby rozpocząć przechwytywanie pakietów w sieci bezprzewodowej, wykonaj polecenia opisane poniżej: 1. Włącz punkt dostępowy obsługujący sieć Wireless Lab, który skonfigurowaliśmy wcześniej w rozdziale 1., zatytułowanym „Tworzymy laboratorium sieci bezprzewodowych”. 2. Uruchom pakiet Wireshark, wpisując z poziomu konsoli polecenie Wireshark &. Po pojawieniu się na ekranie głównego okna programu wybierz z menu polecenie Capture/Interfaces (przechwyć interfejsy) — zobacz pierwszy rysunek na kolejnej stronie. 3. Wybierz przechwytywanie pakietów z interfejsu sieciowego mon0, klikając przycisk Start znajdujący się po prawej stronie nazwy interfejsu (patrz poprzedni rysunek). Wireshark rozpocznie przechwytywanie pakietów z interfejsu mon0; przechwycone pakiety są wyświetlane w głównym oknie programu Wireshark — zobacz drugi rysunek na kolejnej stronie.
36
Rozdział 2. • Sieci WLAN i związane z nimi zagrożenia
4. W oknie programu możesz zobaczyć pakiety przesyłane w sieci bezprzewodowej, które zostały przechwycone przez Twoją bezprzewodową kartę sieciową. Aby wyświetlić wybrany pakiet danych, zaznacz go na liście w górnym oknie programu, a jego zawartość zostanie pokazana w środkowym oknie programu Wireshark:
37
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
5. Aby wyświetlić dodatkowe, poszerzone informacje o pakiecie, kliknij ikonę trójkąta, znajdującą się z lewej strony ramki IEEE 802.11 wireless LAN management frame. 6. Przyjrzyj się strukturom poszczególnych pól nagłówka pakietu i porównaj ich budowę z informacjami o typach i podtypach ramek, o których mówiliśmy nieco wcześniej.
Co się stało? Właśnie udało Ci się przechwycić pierwszy zestaw pakietów przesyłanych w sieci bezprzewodowej. Uruchomiliśmy program Wireshark, którego użyliśmy do monitorowania utworzonego wcześniej interfejsu mon0. Na pasku statusu w dolnej części okna programu Wireshark znajdziesz informacje o szybkości przechwytywania pakietów oraz liczbie pakietów przechwyconych od momentu rozpoczęcia całej operacji aż do chwili obecnej.
Zrób to sam — wyszukiwanie różnych urządzeń Rozmiary plików zawierających pakiety przechwytywane przez program Wireshark mogą być nieco przerażające, ponieważ nawet w niezbyt rozbudowanej sieci przesyłane (a co za tym idzie — przechwytywane) pakiety można liczyć w tysiącach. Z tego względu niezmiernie ważna staje się możliwość odrzucania niepotrzebnych pakietów, tak aby przechwytywane były tylko te, które są dla nas interesujące. W programie Wireshark można tego dokonać przy użyciu filtrów. Zapoznaj się z dokumentacją programu i spróbuj się dowiedzieć, jak w tym morzu przesyłanych pakietów identyfikować pakiety pochodzące z poszczególnych urządzeń bezprzewodowych — zarówno punktów dostępowych, jak i klientów bezprzewodowych. Jeżeli nie potrafisz sobie poradzić z tym zadaniem, nie przejmuj się — właśnie tym będziemy się zajmować już za chwilę.
38
Rozdział 2. • Sieci WLAN i związane z nimi zagrożenia
Czas na działanie — przeglądanie ramek zarządzających, ramek sterujących i ramek danych Teraz pokażemy, w jaki sposób możesz używać filtrów programu Wireshark do wyszukiwania i przeglądania ramek zarządzających, ramek sterujących i ramek danych. Aby to zrobić, wykonaj polecenia opisane poniżej: 1. Aby wyświetlić wszystkie ramki zarządzające, pojawiające się w przechwytywanym zbiorze ramek, powinieneś w polu Filter wpisać wyrażenie wlan.fc.type == 0, a następnie nacisnąć przycisk Apply. Jeżeli nie chcesz, aby pakiety na liście zbyt szybko przesuwały się w dół, możesz zatrzymać proces przechwytywania.
2. Aby wyświetlić ramki sterujące, zmodyfikuj definicję filtra do postaci wlan.fc.type == 1 — zobacz pierwszy rysunek na kolejnej stronie. 3. Aby wyświetlić ramki danych, w polu Filter wpisz wyrażenie wlan.fc.type == 2 — zobacz drugi rysunek na kolejnej stronie.
39
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
4. Aby dodatkowo wybrać podtyp wyświetlanych ramek, użyj filtra z wyrażeniem wlan.fc.subtype. Na przykład, jeżeli chcesz spośród ramek zarządzających wyświetlić tylko ramki podtypu Beacon, powinieneś użyć filtra (wlan.fc.type == 0) && (wlan.fc.subtype == 8).
40
Rozdział 2. • Sieci WLAN i związane z nimi zagrożenia
5. Zamiast ręcznie wpisywać definicje filtrów, możesz kliknąć prawym klawiszem dowolne pole nagłówka ramki wyświetlanej w środkowym oknie programu i z menu podręcznego wybrać polecenie Apply as Filter/Selected (użyj jako filtra/wartość zaznaczonego pola).
6. Wykonanie takiej operacji spowoduje automatyczne utworzenie właściwego wyrażenia i umieszczenie go w polu Filter.
41
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Co się stało? Dowiedziałeś się, jak w programie Wireshark można filtrować pakiety przy użyciu odpowiednich wyrażeń. Zastosowanie filtrów pozwala na łatwe monitorowanie pakietów pochodzących od interesujących nas urządzeń i uniknięcie mozolnego analizowania wszystkich pakietów przesyłanych w sieci bezprzewodowej. Mogłeś się również przekonać, że nagłówki pakietów ramek zarządzających, ramek sterujących i ramek danych są przesyłane w postaci czystego tekstu i nie są w żaden sposób szyfrowane. Dzięki temu każdy, kto przechwytuje pakiety przesyłane w takiej sieci, może również odczytywać ich zawartość. Należy też zauważyć, że potencjalny złośliwy użytkownik może modyfikować przechwycone pakiety i retransmitować je do sieci. Ze względu na fakt, że protokół komunikacyjny nie ma możliwości wykrywania ataków na spójność przesyłanych danych (ang. integrity attack) czy też ataków metodą powtarzania pakietów (ang. reply attack), realizacja takiego przedsięwzięcia nie jest wcale trudna. W następnych rozdziałach bardziej szczegółowo omówimy niektóre z takich ataków.
Zrób to sam — zabawy z filtrami Jeżeli chcesz się dowiedzieć czegoś więcej na temat wyrażeń definiujących filtry oraz sposobów ich użycia, powinieneś zajrzeć do dokumentacji pakietu Wireshark. Aby swobodnie posługiwać się takim narzędziem jak Wireshark, ćwicz dopóty, dopóki nie będziesz pewien, że za pomocą filtrów będziesz w stanie odszukać interesujące Cię informacje nawet w bardzo dużych zbiorach przechwyconych pakietów. W kolejnym ćwiczeniu pokażemy, w jaki sposób możesz przechwytywać pakiety przesyłane między punktem dostępowym a klientem bezprzewodowym.
Czas na działanie — nasłuchiwanie i przechwytywanie pakietów w sieci bezprzewodowej W tym ćwiczeniu pokażemy, jak przechwytywać pakiety danych przesyłanych w wybranej sieci bezprzewodowej. Dla uproszczenia całego ćwiczenia skoncentrujemy się na przechwytywaniu pakietów przesyłanych bez szyfrowania. Aby to zrobić, wykonaj polecenia opisane poniżej: 1. Włącz punkt dostępowy obsługujący sieć Wireless Lab i upewnij się, że nie używa żadnych mechanizmów szyfrowania. 2. W pierwszej kolejności musisz ustalić numer kanału, na którym pracuje punkt dostępowy sieci Wireless Lab. Aby to zrobić, uruchom konsolę i wpisz polecenie airodump-ng --bssid mon0, gdzie to adres MAC naszego
42
Rozdział 2. • Sieci WLAN i związane z nimi zagrożenia
bezprzewodowego punktu dostępowego. Pozwól programowi działać. Po chwili na ekranie powinien się pojawić szereg informacji o punkcie dostępowym, łącznie z numerem wykorzystywanego kanału. 3. W naszym środowisku testowym bezprzewodowy punkt dostępowy, obsługujący sieć Wireless Lab, pracuje na kanale 11. Pamiętaj, że w Twoim przypadku numer kanału może być inny. Aby możliwe było nasłuchiwanie i przechwytywanie pakietów danych przesyłanych do punktu dostępowego i z niego, musisz ustawić bezprzewodową kartę sieciową do pracy na tym samym kanale (11.). W tym celu wpisz polecenie iwconfig mon0 channel 11, a następnie wprowadź polecenie iwconfig mon0, aby upewnić się, że karta pracuje na właściwym kanale. W wynikach działania powinieneś zobaczyć, że karta została ustawiona do pracy na częstotliwości 2,462 GHz (wpis Frequency: 2.462 GHz), co odpowiada kanałowi numer 11.
4. Jeżeli karta została poprawnie skonfigurowana, możesz uruchomić program Wireshark i rozpocząć nasłuchiwanie pakietów na interfejsie mon0. Kiedy Wireshark rozpocznie przechwytywanie pakietów, włącz filtr przepuszczający wyłącznie pakiety o identyfikatorze BSSID, odpowiadającym punktowi dostępowemu. Aby to zrobić, w polu Filter wpisz wyrażenie wlan.bssid == , tak jak zostało to przedstawione na rysunku poniżej. Pamiętaj o wpisaniu poprawnego adresu MAC Twojego urządzenia!
43
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
5. Aby zobaczyć pakiety danych przesyłane przez punkt dostępowy, musisz użyć następującego filtra: (wlan.bssid == ) && (wlan.fc.type_subtype == 0x20), gdzie to adres MAC Twojego punktu dostępowego. Teraz na laptopie z systemem Windows uruchom przeglądarkę sieciową i w polu adresu wpisz adres URL sieciowego interfejsu zarządzania punktem dostępowym. Jak zapewne pamiętasz z rozdziału 1., w naszym przypadku adres tego interfejsu to http://192.168.0.1. Taka operacja spowoduje wygenerowanie i przesłanie odpowiednich pakietów danych, które zostaną przechwycone przez program Wireshark. 6. Jak mogłeś się sam przekonać, przechwytywanie pakietów pozwala na łatwą i szybką analizę danych, które nie są szyfrowane. Z tego właśnie powodu przesyłanie danych w sieciach bezprzewodowych należy zabezpieczyć za pomocą odpowiedniego mechanizmu szyfrowania.
Co się stało? Właśnie rozpocząłeś przechwytywanie (przy użyciu programu Wireshark i zestawu odpowiednich filtrów) pakietów danych przesyłanych w sieci bezprzewodowej. Ponieważ punkt dostępowy nie wykorzystuje żadnego mechanizmu szyfrowania, przesyłane dane możesz zobaczyć w postaci „czystego” tekstu. Oczywiście, jest to poważne zagrożenie dla bezpieczeństwa danych, gdyż każdy użytkownik znajdujący się w zasięgu nadawania punktu dostępowego może przy użyciu programów takich jak Wireshark przechwytywać i odczytywać wszystkie pakiety przesyłane w takiej niezabezpieczonej sieci bezprzewodowej.
Zrób to sam — analizowanie pakietów danych Spróbujemy teraz uruchomić Wiresharka i użyć go do bardziej dogłębnej analizy pakietów. Z pewnością zauważysz, że żądania DHCP są wysyłane przez klienta i jeżeli serwer DHCP jest dostępny, odpowiada na takie żądania, przydzielając odpowiedni adres IP. Analizując ruch w sieci bezprzewodowej, znajdziesz również pakiety ARP oraz pakiety innych protokołów. Przeprowadzenie takiej analizy jest prostym i skutecznym sposobem na pasywne wykrywanie hostów pracujących w danej sieci bezprzewodowej. Dzięki możliwości przechwycenia i analizy pakietów przesyłanych w sieci możesz zrekonstruować to, jak poszczególne hosty komunikują się z resztą urządzeń w sieci. Jedną z bardzo interesujących opcji programu Wireshark jest Follow a stream („podążaj za strumieniem”), która pozwala na automatyczne filtrowanie i przeglądanie pakietów przesyłanych w trakcie wybranej sesji między dwoma hostami. W ramach eksperymentu możesz również spróbować zalogować się na swój serwer poczty elektronicznej (na przykład www.gmail.com) i zobaczyć, jaki ruch sieciowy generuje taka sesja. W kolejnym podrozdziale pokażemy, w jaki sposób możesz wstrzykiwać pakiety do ruchu w sieci bezprzewodowej.
44
Rozdział 2. • Sieci WLAN i związane z nimi zagrożenia
Czas na działanie — wstrzykiwanie pakietów W tym ćwiczeniu będziemy używać programu aireplay-ng, który jest dostępny w systemie Kali Linux. Wykonaj polecenia opisane poniżej: 1. Aby przeprowadzić test wstrzykiwania pakietów, najpierw powinieneś uruchomić program Wireshark i utworzyć filtr pakietów za pomocą następującego wyrażenia: (wlan.bssid == ) && !(wlan.fc.type_subtype == 0x08). Tak zdefiniowany filtr powoduje, że wyświetlane są wszystkie pakiety przesyłane w sieci oprócz pakietów typu Beacon (pakiety rozgłoszeniowe). 2. Otwórz okno terminala i wykonaj następujące polecenie: aireplay-ng -9 -e Wireless Lab -a mon0. 3. Powróć do programu Wireshark. W jego oknie powinieneś zobaczyć cały szereg przechwyconych pakietów. Niektóre z nich zostały wysłane (wstrzyknięte) przez narzędzie aireplay-ng, którego użyłeś przed chwilą, a pozostałe wysłał punkt dostępowy sieci Wireless Lab w odpowiedzi na wstrzyknięte pakiety.
Co się stało? Przy użyciu narzędzia aireplay-ng właśnie udało Ci się pomyślnie wstrzyknąć pakiety do sieci laboratoryjnej Wireless Lab. Zwróć uwagę, że karta sieciowa wstrzyknęła wybrane przez nas pakiety do sieci, chociaż nie była podłączona do punktu dostępowego sieci Wireless Lab.
Zrób to sam — samodzielne wstrzykiwanie pakietów Zagadnienia związane ze wstrzykiwaniem pakietów omówimy bardziej szczegółowo w kolejnych rozdziałach, aczkolwiek nic nie stoi na przeszkodzie, abyś poeksperymentował ze wstrzykiwaniem pakietów przy użyciu innych opcji polecenia aireplay-ng. Aby sprawdzić, czy wstrzykiwanie pakietów zakończyło się pomyślnie, możesz użyć programu Wireshark.
Ważne uwagi dotyczące przechwytywania i wstrzykiwania pakietów w sieciach WLAN Bezprzewodowe sieci WLAN zazwyczaj wykorzystują trzy podstawowe zakresy częstotliwości: 2,4 GHz; 3,6 GHz oraz 4,9/5,0 GHz. Niestety, nie wszystkie karty Wi-Fi obsługują wszystkie podane zakresy częstotliwości i powiązane z nimi pasma. Na przykład karta Alfa, której używamy w naszym laboratorium, obsługuje tylko standardy IEEE 802.11 b/g. Oznacza to, że taka karta nie będzie działała w standardzie 802.11 a/n. Wynika stąd prosty i oczywisty wniosek, że jeżeli chcesz przechwytywać lub wstrzykiwać pakiety w sieci bezprzewodowej działającej w określonym paśmie, Twoja karta sieciowa musi takie pasmo obsługiwać.
45
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Innym interesującym aspektem sieci bezprzewodowych Wi-Fi jest to, że poszczególne pasma są podzielone na szereg kanałów. Bezprzewodowa karta sieciowa nie może podłączyć się jednocześnie do wielu kanałów. Dobrą analogią z życia codziennego jest odbiornik radiowy w Twoim samochodzie — możesz słuchać tylko jednej stacji radiowej naraz. Jeżeli chcesz posłuchać innej stacji, musisz przestroić radio na inny kanał. Taka sama zasada obowiązuje podczas nasłuchiwania i przechwytywania pakietów w sieciach bezprzewodowych WLAN. Nasuwa się tutaj bardzo ważna konkluzja: nie możemy nasłuchiwać ruchu w sieci na wszystkich dostępnych kanałach naraz, a zatem musimy najpierw przełączyć się na kanał, który nas interesuje. Oznacza to, że jeżeli interesujący Cię punkt dostępowy działa na kanale numer 1, to musisz przełączyć swoją kartę sieciową również na kanał numer 1. Zasady nasłuchiwania i przechwytywania pakietów w sieciach WLAN omawialiśmy już w poprzednich podrozdziałach, dlatego wystarczy tylko powiedzieć, że takie same reguły obowiązują podczas wstrzykiwania pakietów. Aby wstrzyknąć pakiety do sieci bezprzewodowej działającej na określonym kanale, musisz najpierw przełączyć swoją kartę sieciową na ten kanał. Przeprowadzimy teraz kilka ćwiczeń, w których będziemy przełączać kartę sieciową na wybrany kanał, włączać tryb skakania po kanałach (ang. channel hopping mode), zmieniać ustawienia karty sieciowej zgodnie z wymogami prawnymi danego kraju, zmieniać moc nadawania karty itd.
Czas na działanie — eksperymentujemy z bezprzewodową kartą sieciową Uważnie wykonaj polecenia opisane poniżej: 1. Aby sprawdzić możliwości swojej bezprzewodowej karty sieciowej, otwórz okno terminala i wykonaj polecenie iwconfig mon0. Jak widać na rysunku zamieszczonym poniżej, nasza przykładowa karta sieciowa może działać w pasmach b, g i n.
2. Aby przełączyć kartę na wybrany kanał, powinieneś wykonać polecenie iwconfig mon0 channel X, gdzie X to żądany numer kanału.
46
Rozdział 2. • Sieci WLAN i związane z nimi zagrożenia
3. Polecenie iwconfig nie ma opcji pozwalającej na włączenie trybu channel hopping. Aby go włączyć, można napisać prosty skrypt powłoki, aczkolwiek znacznie łatwiejsze będzie użycie polecenia airodump-ng, które udostępnia tę opcję — pozwala na skakanie po wszystkich kanałach, po zestawie wybranych kanałów czy tylko po kanałach w wybranych pasmach. Wszystkie dostępne opcje możesz wyświetlić po wykonaniu polecenia airodump-ng --help, tak jak zostało to przedstawione na rysunku poniżej.
Co się stało? Jak widać, możliwości nasłuchiwania, przechwytywania oraz wstrzykiwania pakietów zależą od właściwości sprzętowych Twojej bezprzewodowej karty sieciowej. W praktyce oznacza to, że możesz działać tylko na tych pasmach i kanałach, które ona obsługuje. Co więcej, bezprzewodowa karta sieciowa może pracować tylko na jednym kanale naraz, a to z kolei oznacza, że pakiety możesz przechwytywać lub wstrzykiwać tylko na jednym kanale w tym samym czasie.
Zrób to sam — nasłuchiwanie i przechwytywanie pakietów na wielu kanałach jednocześnie Jeżeli chciałbyś prowadzić nasłuchiwanie i przechwytywanie pakietów na wielu kanałach jednocześnie, rozwiązanie jest proste — będziesz musiał użyć wielu bezprzewodowych kart sieciowych. Jeżeli możesz sobie pozwolić na zakup dodatkowych kart, to nic nie stoi na przeszkodzie, aby spróbować nasłuchu na dwóch kanałach, czterech czy nawet większej ich liczbie w tym samym czasie.
47
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Rola organów regulacyjnych w sieciach bezprzewodowych Skomplikowane zagadnienia związane z połączeniami bezprzewodowymi wcale nie kończą się na sprzęcie, częstotliwościach, pasmach i kanałach. Niemal każdy kraj na świecie posiada swoje własne przepisy dotyczące komunikacji w powszechnie dostępnych pasmach częstotliwości, niewymagających osobnych zezwoleń i licencji na nadawanie. Na przykład w Polsce takim organem regulującym wszystkie przepisy prawne związane z komunikacją bezprzewodową (i nie tylko) jest Urząd Komunikacji Elektronicznej (UKE) i jeżeli korzystasz z sieci WLAN, musisz przestrzegać obowiązujących wymogów prawnych narzuconych przez UKE. W wielu krajach złamanie takich przepisów jest bardzo poważnie traktowanym wykroczeniem (a w niektórych nawet przestępstwem) i jest karane z całą surowością prawa. Za chwilę pokażemy, jak możesz znaleźć domyślne ustawienia wymogów prawnych (ang. default regulatory settings) bezprzewodowej karty sieciowej i jak w razie potrzeby je zmienić.
Czas na działanie — eksperymentujemy z bezprzewodową kartą sieciową Wykonaj polecenia opisane poniżej: 1. Wyłącz komputer, odłącz od niego bezprzewodową kartę sieciową i ponownie go uruchom. 2. Po zalogowaniu się otwórz okno terminala i włącz monitorowanie komunikatów jądra systemu. Aby to zrobić, wykonaj polecenie tail przedstawione niżej.
Teraz podłącz bezprzewodową kartę sieciową. Na ekranie powinieneś zobaczyć szereg komunikatów podobnych do tych widocznych na pierwszym rysunku na kolejnej stronie, które opisują domyślne ustawienia wymogów prawnych nadane Twojej karcie sieciowej (inaczej mówiąc, domyślne ustawienia regionu). 3. Załóżmy, że znajdujesz się w Stanach Zjednoczonych. Aby zmienić domyślne ustawienia wymogów prawnych karty sieciowej dla tego kraju, powinieneś otworzyć okno terminala i wykonać polecenie1 iw reg set US — zobacz drugi rysunek na kolejnej stronie. 1
Aby włączyć ustawienia dla Polski, powinieneś wykonać polecenie iw reg set PL. Szczegółowe listy ustawień dla poszczególnych krajów możesz znaleźć na stronie http://linuxwireless.org/en/developers/ Regulatory/Database — przyp. tłum.
48
Rozdział 2. • Sieci WLAN i związane z nimi zagrożenia
Jeżeli wykonanie polecenia zakończy się powodzeniem, w oknie terminala, w którym monitorowane są komunikaty jądra systemu (/var/log/messages), powinny się pojawić takie komunikaty, jak na rysunku zamieszczonym poniżej.
49
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
4. Teraz spróbuj przełączyć kartę sieciową do pracy na kanale 11. — wykonanie takiej operacji powinno się zakończyć sukcesem. Jeżeli jednak spróbujesz przełączyć kartę na kanał 12., próba wykonania takiego polecenia zakończy się wyświetleniem komunikatu o błędzie. Dzieje się tak, ponieważ w Stanach Zjednoczonych korzystanie z kanału 12. nie jest dozwolone.
5. Sytuacja wygląda bardzo podobnie w przypadku zmian mocy nadawania karty. W Stanach Zjednoczonych maksymalna moc nadawania bezprzewodowej karty sieciowej jest ograniczona do 27 dBm (500 mW)2, zatem nawet jeżeli Twoja bezprzewodowa karta sieciowa może nadawać z mocą 1 W (30 dBm), to ze względów prawnych nie możesz jej skonfigurować do pracy z pełną mocą.
2
W Polsce i innych krajach Unii Europejskiej przepisy są jeszcze bardziej restrykcyjne — maksymalna dozwolona prawem moc wypromieniowywana izotropowo z anteny (ang. EIRP — Effective Isotropical Radiated Power) urządzeń pracujących w paśmie 2,4 GHz nie może być wyższa niż 20 dBm (100 mW) — przyp. tłum.
50
Rozdział 2. • Sieci WLAN i związane z nimi zagrożenia
6. Jeżeli jednak wybrałbyś się do Boliwii, mógłbyś korzystać z pełnej mocy karty, ponieważ wymogi prawne dotyczące komunikacji bezprzewodowej w tym kraju są znacznie łagodniejsze i moc nadawania rzędu 1 W (1000 mW) jest całkowicie dozwolona. Jak widać na rysunku załączonym poniżej, po ustawieniu regionu na Boliwię poleceniem iw reg set BO moc nadawania karty rośnie do 30 dBm (czyli inaczej 1000 mW). Co więcej, będąc w Boliwii, możesz również przełączyć kartę na kanał numer 12, co nie jest dozwolone w Stanach Zjednoczonych i wielu innych krajach.
Co się stało? Niemal każdy kraj na świecie posiada swoje własne przepisy dotyczące komunikacji w powszechnie dostępnych pasmach częstotliwości, niewymagających osobnych zezwoleń i licencji na nadawanie. Kiedy zmienisz ustawienia regionu karty na wybrany kraj, Twoja karta automatycznie dostosuje się do odpowiedniego zestawu częstotliwości, pasm, kanałów i mocy nadawania. Nie zmienia to jednak faktu, że można łatwo zmienić ustawienia regionu karty na inny kraj i w ten sposób „zmusić” ją do pracy w nielegalnym paśmie częstotliwości czy do nadawania z niedozwoloną mocą (co jednak jest złamaniem prawa i może skutkować wyciągnięciem poważnych konsekwencji).
Zrób to sam — przeglądanie ustawień regionu bezprzewodowej karty sieciowej Spróbuj samodzielnie poeksperymentować z ustawieniami karty sieciowej i zmieniać takie elementy, jak kanały, moc nadawania, ustawienia regionu itd. W systemie Kali Linux możesz tego dokonać przy użyciu różnych opcji polecenia iw. Dzięki takiemu ćwiczeniu nabierzesz doświadczenia w konfigurowaniu karty sieciowej i będziesz wiedział, w jaki sposób zmienić jej ustawienia, kiedy znajdziesz się w innym kraju.
Szybki quiz — nasłuchiwanie, przechwytywanie i wstrzykiwanie pakietów w sieciach WLAN 1. Jakiego typu ramki są odpowiedzialne za uwierzytelnianie w sieciach WLAN? a) Control (ramki sterujące) b) Management (ramki zarządzające) 51
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
c) Data (ramki danych) d) QoS (ramki QoS) 2. Jaką nazwę nosi drugi interfejs sieciowy, pracujący w trybie monitora, który może zostać utworzony na interfejsie wlan0 przy użyciu polecenia airmon-ng? a) Mon0 b) Mon1 c) 1Mon d) Monb 3. Jakie wyrażenie pozwoli na utworzenie w programie Wireshark filtra, który umożliwi wyświetlanie wszystkich ramek z wyjątkiem ramek typu Beacon (ramek rozgłoszeniowych)? a) !(wlan.fc.type_subtype == 0x08) b) wlan.fc.type_subtype == 0x08 c) (no beacon) d) Wlan.fc.type == 0x08
Podsumowanie W tym rozdziale poczyniliśmy kilka kluczowych obserwacji dotyczących protokołów wykorzystywanych w bezprzewodowych sieciach WLAN: Ramki zarządzające (ang. management frames), ramki sterujące (ang. control
frames) i ramki danych (ang. data frames) nie są szyfrowane i z tego powodu mogą być łatwo przechwytywane i odczytywane przez osoby trzecie, które monitorują pakiety przesyłane w sieci bezprzewodowej. Należy tutaj zwrócić uwagę, że zawartość pakietów danych może być chroniona przed dostępem osób niepowołanych poprzez zastosowanie odpowiedniego sposobu szyfrowania. Bardziej szczegółowo będziemy się zajmować tym zagadnieniem w kolejnym rozdziale. Po przełączeniu karty sieciowej w tryb monitora możemy prowadzić nasłuchiwanie i przechwytywanie ramek przesyłanych we wszystkich sieciach bezprzewodowych, w których zasięgu znajduje się nasza karta sieciowa. Ponieważ ramki zarządzające i sterujące nie posiadają żadnego mechanizmu zapewniającego spójność przesyłanych danych, dzięki narzędziom typu aireplay-ng możemy takie pakiety z łatwością modyfikować i wstrzykiwać do sieci bezprzewodowych. Nieszyfrowane pakiety danych również mogą być modyfikowane i ponownie
przesyłane do sieci bezprzewodowej. Nawet jeżeli pakiet jest zaszyfrowany, nadal możemy ponownie przesłać go do sieci w takim stanie, w jakim się znajduje, ponieważ sieci WLAN z definicji nie posiadają żadnego mechanizmu zapobiegającego takim działaniom. 52
Rozdział 2. • Sieci WLAN i związane z nimi zagrożenia
W kolejnym rozdziale przyjrzymy się bliżej różnym mechanizmom uwierzytelniania w sieciach WLAN, takim jak filtrowanie adresów MAC (ang. MAC filtering), uwierzytelnianie ze współdzielonym kluczem (ang. Shared Key Authentication) i inne, a także na przykładach pokażemy i szczegółowo omówimy luki i słabe strony takich metod.
53
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
54
3 Omijanie uwierzytelniania sieci WLAN „Fałszywe poczucie bezpieczeństwa jest znacznie gorsze niż niepewność”. Anonim Fałszywe poczucie bezpieczeństwa jest znacznie gorsze niż niepewność, ponieważ czując się bezpiecznie, możesz nie być przygotowany na to, że zabezpieczenia Twojej sieci mogą zostać złamane. Sieci bezprzewodowe (sieci WLAN) często wykorzystują słabe mechanizmy uwierzytelniania, które mogą być dosyć łatwo złamane i pominięte. W tym rozdziale przyjrzymy się różnym sposobom uwierzytelniania wykorzystywanym w sieciach WLAN i pokażemy, jak można je złamać.
W tym rozdziale będziemy zajmować się następującymi zagadnieniami:
Ujawnianie ukrytych identyfikatorów SSID (ang. Service Set IDentifier) sieci.
Omijanie filtrowania adresów MAC.
Pokonywanie zabezpieczeń sieci z otwartym dostępem (ang. Open Authentication). Pokonywanie zabezpieczeń sieci wykorzystujących uwierzytelnianie ze współdzielonym kluczem (ang. Shared Key Authentication).
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Ukryte identyfikatory SSID sieci bezprzewodowych W konfiguracji domyślnej wszystkie punkty dostępowe wysyłają swoje identyfikatory SSID w ramkach rozgłoszeniowych (ramki typu Beacon). Takie rozwiązanie pozwala klientom znajdującym się w zasięgu na łatwe wykrywanie i rozpoznawanie sieci. Ukrywanie identyfikatora SSID polega na tym, że tak skonfigurowany punkt dostępowy po prostu nie wysyła swojego identyfikatora sieci w ramkach rozgłoszeniowych, więc do takiego punktu dostępowego mogą się podłączyć tylko klienty, które znają odpowiedni identyfikator SSID sieci. Takie rozwiązanie zdecydowanie nie jest wystarczającym zabezpieczeniem, lecz wielu administratorom sieci niestety wydaje się, że jest inaczej. Ukrywanie identyfikatorów SSID w żadnej sytuacji nie powinno być traktowane jako mechanizm zabezpieczający sieci bezprzewodowej. W dalszej części tego podrozdziału pokażemy, w jaki sposób możesz odszukać ukryty identyfikator SSID.
Czas na działanie — ujawnianie ukrytych identyfikatorów SSID sieci Aby to zrobić, powinieneś wykonać opisane niżej polecenia: 1. Jeżeli za pomocą programu Wireshark będziesz monitorować ramki rozgłoszeniowe sieci Wireless Lab, to zobaczysz, że identyfikator SSID jest przesyłany w postaci otwartego tekstu. Ramki rozgłoszeniowe (ramki typu Beacon) powinny wyglądać tak jak na rysunku poniżej:
56
Rozdział 3. • Omijanie uwierzytelniania sieci WLAN
2. Teraz zmień konfigurację punktu dostępowego sieci Wireless Lab tak, aby wyłączyć rozsyłanie identyfikatora SSID. W zależności od modelu wykorzystywanego punktu dostępowego nazwy odpowiednich opcji mogą być różne. W przypadku naszego routera musimy na karcie Wireless Settings wyłączyć opcję Enable SSID Broadcast, tak jak pokazano na kolejnym rysunku.
3. Jeżeli teraz przyjrzysz się ramkom przechwytywanym przez program Wireshark, to z pewnością zauważysz, że identyfikator SSID Wireless Lab zniknął z ramek rozgłoszeniowych — i właśnie o to chodzi w ukrywaniu identyfikatorów SSID.
57
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
4. Aby ominąć takie „zabezpieczenie”, najpierw użyjemy pasywnej techniki polegającej na oczekiwaniu, aż jakiś uprawniony klient podłączy się do punktu dostępowego. Takie zdarzenie spowoduje wygenerowanie pakietów Probe Request (sondowanie) i Probe Response (odpowiedź na sondowanie), które zawierają identyfikator SSID sieci i w ten sposób ujawniają jego obecność.
5. Alternatywnym rozwiązaniem może być użycie polecenia aireplay-ng do wysłania w imieniu punktu dostępowego do wszystkich stacji pakietów Deauthentication (anulowanie uwierzytelnienia). Aby to zrobić, powinieneś otworzyć okno terminala i wpisać polecenie aireplay-ng -0 5 -a mon0, gdzie to adres MAC naszego routera. Opcja -0 powoduje wybranie ataku polegającego na anulowaniu uwierzytelnienia (ang. deauthentication attack), a 5 to liczba pakietów, które mają zostać wysłane. Ostatnia opcja, -a, pozwala na podanie adresu MAC punktu dostępowego, który jest naszym celem.
58
Rozdział 3. • Omijanie uwierzytelniania sieci WLAN
6. Wysłanie pakietów Deauthentication wymusza na wszystkich uprawnionych klientach rozłączenie i ponowne przyłączenie się do punktu dostępowego. Aby łatwiej zaobserwować, co się dzieje, możesz w programie Wireshark utworzyć filtr, który będzie przepuszczał tylko pakiety Deauthentication.
7. Pakiety Probe Response (odpowiedź na sondowanie), przesyłane przez punkt dostępowy do podłączających się klientów, ujawniają identyfikator SSID sieci. Przykładowy przebieg takiej sesji możemy zobaczyć w programie Wireshark, co przedstawiono na pierwszym rysunku na kolejnej stronie. Kiedy uprawniony klient ponownie łączy się z punktem dostępowym, możemy zobaczyć identyfikator SSID przesyłany w ramkach Probe Request (sondowanie) oraz Probe Response (odpowiedź na sondowanie). Aby zobaczyć wszystkie ramki przesyłane do i z punktu dostępowego (z wyjątkiem ramek rozgłoszeniowych), możesz użyć filtra (wlan.bssid == 00:21:91:D2:8E:25) && !(wlan.fc.type_subtype == 0x08). Operator && reprezentuje iloczyn logiczny (logiczne AND), a operator ! oznacza negację (logiczne NOT).
59
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Co się stało? Niezależnie od tego, że identyfikator SSID sieci jest ukryty i nie jest rozgłaszany, za każdym razem, kiedy uprawniony klient podłącza się do punktu dostępowego, wymienia z nim pakiety Probe Request (sondowanie) i Probe Response (odpowiedź na sondowanie), które zawierają identyfikator SSID sieci obsługiwanej przez ten punkt dostępowy. Ponieważ pakiety takie nie są szyfrowane, można je łatwo przechwycić i odczytać identyfikator SSID sieci. W kolejnych rozdziałach omówimy zastosowanie pakietów Probe Request do innych celów, takich jak monitorowanie połączeń w sieciach bezprzewodowych. Bardzo często zdarza się sytuacja, że wszystkie uprawnione klienty są już podłączone do punktu dostępowego i pakiety Probe Request oraz Probe Response nie są wymieniane. W takiej sytuacji, zamiast oczekiwać przez długi czas, aż któryś z klientów rozłączy się i następnie połączy ponownie, możesz wymusić rozłączenie klientów poprzez wysłanie sfałszowanych pakietów Deauthentication (anulowanie uwierzytelnienia). Odebranie takiego pakietu zmusza klienta do odłączenia się od punktu dostępowego i ponownego podłączenia, co w efekcie powoduje wymianę pakietów Probe Request oraz Probe Response, a tym samym ujawnienie identyfikatora SSID sieci.
Zrób to sam — selektywne anulowanie uwierzytelnienia W poprzednim ćwiczeniu wysyłaliśmy pakiety Deauthentication (anulowanie uwierzytelnienia), aby zmusić wszystkie klienty do rozłączenia i ponownego połączenia z punktem dostępowym. W ramach samodzielnych ćwiczeń spróbuj się przekonać, w jaki sposób przy użyciu polecenia aireplay-ng można selektywnie kierować pakiety Deauthentication do wybranych klientów. Warto zauważyć, że choć do ilustrowania większości przykładów w tej książce używamy programu Wireshark, to opisywane ataki można przeprowadzać za pomocą wielu różnych narzędzi,
60
Rozdział 3. • Omijanie uwierzytelniania sieci WLAN
takich jak na przykład pakiet aircrack-ng. Więcej informacji na temat poszczególnych narzędzi tego pakietu oraz pełną dokumentację znajdziesz na stronie http://www.aircrack-ng.org/.
Filtrowanie adresów MAC Filtrowanie adresów MAC jest starą, wypróbowaną techniką autoryzacji i uwierzytelniania, która wywodzi się jeszcze ze świata sieci kablowych. O ile jednak tam radziła sobie całkiem dobrze, o tyle w świecie połączeń bezprzewodowych ponosi sromotną klęskę. Cała idea takiego rozwiązania opiera się na uwierzytelnianiu klientów na podstawie adresów MAC kart sieciowych. Adres MAC to swego rodzaju unikatowy kod identyfikacyjny interfejsu sieciowego, który jest odczytywany przez router i porównywany z listą adresów MAC uprawnionych do nawiązania połączenia. Lista uprawnionych adresów MAC jest zarządzana przez administratora sieci i zapisywana w konfiguracji punktu dostępowego. Jak się jednak za chwilę przekonamy, dzięki odrobinie wiedzy obejście takiego zabezpieczenia nie stanowi żadnego problemu.
Czas na działanie — omijanie filtrowania adresów MAC A zatem do dzieła: 1. Najpierw musimy zmienić konfigurację punktu dostępowego tak, aby włączyć filtrowanie adresów MAC. Następnie do listy uprawnionych adresów MAC trzeba dodać adres MAC laptopa, który będzie celem ataku. W przypadku naszego przykładowego routera cała procedura wygląda następująco:
61
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
2. Po włączeniu mechanizmu filtrowania adresów MAC do punktu dostępowego będą się mogły podłączyć tylko te klienty, których adresy znajdują się na liście uprawnionych adresów MAC. Jeżeli próbę podłączenia podejmie klient, którego adresu MAC nie ma na liście uprawnionych, taka operacja zakończy się niepowodzeniem. 3. Jeżeli adresu MAC klienta nie ma na liście uprawnionych, punkt dostępowy wysyła do klienta informację o braku uwierzytelnienia, która wygląda mniej więcej tak, jak to zostało przedstawione na rysunku poniżej.
4. Aby ominąć mechanizm filtrowania adresów MAC, najpierw użyjemy polecenia airodump-ng do odszukania adresów MAC klientów podłączonych już do punktu dostępowego. W tym celu powinieneś otworzyć okno terminala i wprowadzić polecenie airodump-ng -c 11 -a --bssid mon0. Dzięki użyciu opcji bssid będzie można monitorować tylko wybrany punkt dostępowy, którym jesteśmy zainteresowani. Opcja -c 11 powoduje przełączenie bezprzewodowej karty sieciowej na kanał 11., czyli kanał, na którym pracuje punkt dostępowy. Opcja -a sprawia, że w wynikach dla polecenia airodump-ng wyświetlane będą tylko informacje o klientach, które są przypisane do wybranego punktu dostępowego i połączone z nim. W rezultacie wykonania takiego polecenia otrzymasz listę adresów MAC klientów powiązanych z punktem dostępowym.
62
Rozdział 3. • Omijanie uwierzytelniania sieci WLAN
5. Kiedy znajdziesz adres MAC uprawnionego klienta, możesz się pod niego „podszyć”, używając polecenia macchanger do sfałszowania naszego adresu MAC (narzędzie macchanger jest częścią dystrybucji systemu Kali Linux). Aby to zrobić, powinieneś z poziomu okna terminala wykonać polecenie macchanger –m wlan0. Od tej chwili adres MAC, który podałeś jako argument opcji -m, będzie nowym, „sfałszowanym” adresem interfejsu wlan0:
6. Jak widać, od tej chwili, posługując się sfałszowanym adresem MAC uprawnionego klienta, można bez problemu podłączyć się do punktu dostępowego.
Co się stało? Najpierw przy użyciu polecenia airodump-ng monitorowaliśmy ruch w sieci bezprzewodowej w celu odszukania adresów MAC uprawnionych klientów podłączonych do punktu dostępowego. Następnie użyliśmy polecenia macchanger do zmiany adresu MAC naszej karty sieciowej, tak aby udawała kartę sieciową wybranego, uprawnionego klienta. Taka operacja pozwoliła na „oszukanie” punktu dostępowego, który po dokonaniu pomyślnego uwierzytelnienia na podstawie sfałszowanego adresu MAC pozwolił nam na połączenie z siecią. Jeżeli chcesz dowiedzieć się czegoś więcej na temat innych opcji polecenia airodump-ng, zajrzyj do jego dokumentacji, którą znajdziesz na stronie http://www.aircrack-ng.org/doku.php?id= airodump-ng.
63
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Uwierzytelnianie w sieciach z otwartym dostępem Samo określenie „uwierzytelnianie w sieciach z otwartym dostępem” (ang. Open Authentication) jest nieco mylące, ponieważ tak naprawdę w takim rozwiązaniu nie jest wykorzystywana żadna forma uwierzytelniania. Jeżeli punkt dostępowy zostanie skonfigurowany tak, że zapewnia otwarty dostęp do sieci, to po prostu pomyślnie „uwierzytelni” każdego bez wyjątku klienta, który będzie próbował się z nim połączyć. W kolejnym ćwiczeniu pokażemy, w jaki sposób możesz się połączyć z punktem dostępowym, który pracuje w trybie uwierzytelniania z otwartym dostępem do sieci.
Czas na działanie — podłączanie się do punktu dostępowego z otwartym dostępem Aby podłączyć się do punktu dostępowego pracującego w trybie uwierzytelniania z otwartym dostępem, powinieneś wykonać polecenia opisane niżej: 1. Najpierw musisz skonfigurować punkt dostępowy sieci Wireless Lab tak, aby pracował w trybie uwierzytelniania z otwartym dostępem. W naszym przypadku cała operacja sprowadza się do włączenia w sekcji Wireless Security (bezpieczeństwo sieci bezprzewodowej) opcji Disable Security (wyłącz zabezpieczenia).
64
Rozdział 3. • Omijanie uwierzytelniania sieci WLAN
2. Teraz podłącz się do punktu dostępowego, wykonując polecenie iwconfig wlan0 essid "Wireless Lab", a następnie sprawdź, czy działanie tego polecenia zakończyło się powodzeniem i czy uzyskałeś połączenie. 3. Zwróć uwagę, że aby podłączyć się do punktu dostępowego pracującego w trybie otwartego dostępu, nie musieliśmy podawać żadnej nazwy użytkownika czy hasła dostępu.
Co się stało? Procedura opisana powyżej to chyba najprostszy sposób „włamania się” do bezprzewodowej sieci Wi-Fi. Jak widać, podłączenie się do punktu dostępowego pracującego w trybie uwierzytelniania z otwartym dostępem do sieci jest zadaniem dosyć trywialnym.
Uwierzytelnianie ze współdzielonym kluczem Metoda uwierzytelniania ze współdzielonym kluczem (ang. Shared Key Authentication) wykorzystuje do uwierzytelniania klienta znany obu stronom, poufny element, taki jak na przykład klucz WEP (ang. Wired Equivalent Privacy). Dokładny przebieg wymiany informacji pomiędzy punktem dostępowym a klientem został przedstawiony na rysunku poniżej (oryginał znajdziesz na stronie http://www.netgear.com/):
Klient wysyła do punktu dostępowego żądanie uwierzytelnienia. Punkt dostępowy odpowiada na żądanie, przesyłając tekst wezwania. Klient szyfruje otrzymany tekst przy użyciu znanego obu stronom, współdzielonego klucza i odsyła odpowiedź do punktu dostępowego, który odszyfrowuje otrzymaną odpowiedź i sprawdza, czy jest zgodna z oryginalnym tekstem wezwania. Jeżeli tak, klient zostaje pomyślnie uwierzytelniony i może się połączyć z punktem dostępowym. Jeżeli odpowiedź klienta jest niepoprawna, punkt dostępowy przesyła do klienta komunikat informujący, że próba uwierzytelnienia zakończyła się niepowodzeniem.
65
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Problem z bezpieczeństwem takiego rozwiązania polega na tym, że napastnik pasywnie nasłuchujący wymiany komunikatów pomiędzy klientem i punktem dostępowym i przechwytujący ją ma do dyspozycji zarówno przesyłany otwarcie tekst wezwania, jak i zaszyfrowaną odpowiedź klienta i może użyć operacji XOR do wyodrębnienia strumienia klucza (ang. keystream). Uzyskany w ten sposób strumień klucza może następnie zostać użyty do szyfrowania każdego kolejnego tekstu wezwania przesyłanego przez punkt dostępowy bez konieczności posiadania samego klucza. Jedną z powszechnie używanych do niedawna form uwierzytelniania był protokół WEP (ang. Wired Equivalent Protocol). Niestety, wykorzystywany w nim algorytm szyfrowania jest bardzo łatwy do złamania i w sieci Internet możesz znaleźć wiele różnych narzędzi pozwalających na przełamywanie zabezpieczeń w sieciach bezprzewodowych z szyfrowaniem WEP. W kolejnym ćwiczeniu pokażemy, w jaki sposób, nasłuchując pakietów przesyłanych w sieci WLAN, możesz przechwycić tekst wezwania i zaszyfrowaną odpowiedź, jak odzyskać strumień klucza i jak użyć go do uwierzytelnienia swojego klienta bez konieczności poznania współdzielonego klucza.
Czas na działanie — omijanie uwierzytelniania ze współdzielonym kluczem Omijanie uwierzytelniania ze współdzielonym kluczem (ang. Shared Authentication) stanowi nieco większe wyzwanie, niż miało to miejsce w poprzednich ćwiczeniach. Aby się o tym przekonać, uważnie wykonaj polecenia opisane poniżej: 1. Najpierw musimy skonfigurować punkt dostępowy sieci Wireless Lab tak, aby pracował w trybie uwierzytelniania ze współdzielonym kluczem. W naszym przypadku cała operacja sprowadza się do zaznaczenia w sekcji Wireless Security opcji WEP oraz uwierzytelniania za pomocą współdzielonego klucza Shared Key, — zobacz pierwszy rysunek na kolejnej stronie. 2. Teraz podłącz uprawnionego klienta do punktu dostępowego, używając współdzielonego klucza wybranego w punkcie 1. 3. Aby ominąć uwierzytelnianie ze współdzielonym kluczem, musisz rozpocząć nasłuchiwanie i przechwytywanie pakietów przesyłanych między punktem dostępowym a jego klientami. Oprócz tego powinieneś również zachować w pliku na dysku zrzut wszystkich pakietów biorących udział w procesie uwierzytelniania. W tym celu otwórz okno terminala i wykonaj polecenie airodump-ng mon0 -c 11 --bssid -w keystream. Opcja -w, której do tej pory jeszcze nie używałeś, powoduje, że polecenie airodump-ng zapisuje przechwycone pakiety w pliku o nazwie poprzedzonej słowem keystream. Warto zauważyć, że dobrym rozwiązaniem będzie przechowywanie poszczególnych sesji przechwytywania pakietów w osobnych plikach, dzięki czemu będziesz mógł na spokojnie analizować poszczególne sesje na długo po ich zakończeniu — zobacz drugi rysunek na kolejnej stronie.
66
Rozdział 3. • Omijanie uwierzytelniania sieci WLAN
4. Po zakończeniu przygotowań możesz cierpliwie czekać, aż uprawniony klient podłączy się do punktu dostępowego, lub wymusić rozłączenie i ponowne połączenie klientów przy użyciu techniki selektywnego lub globalnego anulowania uwierzytelnienia, opisywanej w jednym z poprzednich podrozdziałów. Kiedy uprawniony klient podłączy się do punktu dostępowego i proces jego uwierzytelniania zakończy się powodzeniem, polecenie airodump-ng przechwyci całą sesję przesyłania pakietów i zapisze ją w pliku na dysku. Dowodem na to, że przechwytywanie sesji zakończyło się powodzeniem, będzie pojawienie się w kolumnie AUTH wartości SKA (ang. Shared Key Authentication).
67
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
5. Przechwycony strumień klucza (ang. keystream) zostaje zapisany na dysku w bieżącym katalogu roboczym, w pliku o nazwie poprzedzonej słowem keystream. W naszym przypadku strumień klucza został zapisany w pliku o nazwie keystream-01-00-21-91-D2-8E-25.xor. 6. Aby teraz posłużyć się uzyskanym strumieniem klucza do „sfałszowania” uwierzytelnienia, powinieneś użyć polecenia aireplay-ng. Aby to zrobić, w oknie terminala wpisz następujące polecenie: aireplay-ng -1 0 -e "Wireless Lab" -y keystream-01-00-21-91-D2-8E-25.xor -a -h aa:aa:aa:aa:aa:aa mon0 . Polecenie aireplay-ng pobierze strumień klucza, który uzyskałeś w punkcie 5., i dokona próby uwierzytelnienia połączenia z punktem dostępowym o adresie MAC 00:21:91:D2:8E:25 (czyli naszej sieci Wireless Lab). Jako adresu MAC klienta polecenie aireplay-ng użyje arbitralnie wybranego adresu aa:aa:aa:aa:aa:aa. Aby się o tym przekonać, uruchom program Wireshark i rozpocznij przechwytywanie pakietów przy użyciu filtra wlan.addr == aa:aa:aa:aa:aa:aa, tak jak to zostało przedstawione na kolejnym rysunku.
7. Pierwszy pakiet to żądanie uwierzytelnienia przesłane przez polecenie aireplay-ng do punktu dostępowego.
68
Rozdział 3. • Omijanie uwierzytelniania sieci WLAN
8. Drugi pakiet zawiera tekst wezwania, jakie punkt dostępowy odsyła do klienta, co zostało pokazane na rysunku poniżej.
69
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
9. W trzecim pakiecie polecenie aireplay-ng przesyła zaszyfrowaną odpowiedź do punktu dostępowego.
10. Ze względu na to, że polecenie aireplay-ng wykorzystało strumień klucza pozyskany wcześniej z nasłuchu pasywnego, proces uwierzytelniania kończy się powodzeniem i w czwartym pakiecie punkt dostępowy wysyła do klienta komunikat o pomyślnym zakończeniu całego procesu.
70
Rozdział 3. • Omijanie uwierzytelniania sieci WLAN
11. Po otrzymaniu potwierdzenia, że proces uwierzytelniania zakończył się powodzeniem, polecenie aireplay-ng wysyła do punktu dostępowego sfałszowane żądanie skojarzenia (ang. Association Request), które również kończy się powodzeniem.
12. Jeżeli teraz sprawdzisz zawartość logów swojego punktu dostępowego, powinieneś zobaczyć, że klient o adresie MAC AA:AA:AA:AA:AA:AA jest podłączony.
Co się stało? W tym ćwiczeniu udało Ci się pozyskać strumień klucza z wymiany pakietów, która miała miejsce pomiędzy uprawnionym klientem a punktem dostępowym pracującym w trybie uwierzytelniania ze współdzielonym kluczem, a następnie użyłeś tego strumienia do sfałszowania uwierzytelniania i uzyskania połączenia z punktem dostępowym.
Zrób to sam — wypełnianie tablic połączeń punktu dostępowego Punkty dostępowe posiadają limit jednocześnie podłączonych klientów, po osiągnięciu którego po prostu odrzucają wszystkie kolejne żądania podłączenia. Poprzez napisanie prostego skryptu wykorzystującego polecenie aireplay-ng możesz zautomatyzować cały proces fałszowania uwierzytelniania i rozpocząć wysyłanie do punktu dostępowego setek żądań połączenia z różnymi, losowo dobranymi adresami MAC, co szybko spowoduje zapełnienie wewnętrznych tablic
71
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
połączeń punktu dostępowego, a tym samym osiągnięcie maksymalnej liczby klientów i wstrzymanie przyjmowania kolejnych połączeń. Taka operacja jest typowym przykładem ataku DoS (ang. Denial of Service), który może spowodować niedostępność punktu dostępowego, a wtedy konieczne będzie jego zrestartowanie, co z kolei wymusi rozłączenie wszystkich uprawnionych klientów i uniemożliwi im korzystanie z połączenia sieciowego. Sprawdź, czy potrafisz zrealizować taki scenariusz w swoim laboratorium.
Szybki quiz — uwierzytelnianie w sieciach WLAN 1. Aby wymusić rozłączenie klienta z punktem dostępowym i ponowne podłączenie, powinieneś: a) Wysłać pakiet anulowania uwierzytelnienia. b) Zrestartować klienta. c) Zrestartować punkt dostępowy. d) Wykonać wszystkie operacje wymienione powyżej. 2. Uwierzytelnianie z otwartym dostępem: a) Zapewnia odpowiedni poziom bezpieczeństwa sieci. b) Nie zapewnia sieci żadnego bezpieczeństwa. c) Wymaga użycia szyfrowania. d) Żadna z powyższych odpowiedzi nie jest poprawna. 3. Złamanie uwierzytelniania ze współdzielonym kluczem polega na: a) Pozyskaniu strumienia klucza z pakietów przesyłanych między uprawnionym klientem a punktem dostępowym. b) Pozyskaniu współdzielonego klucza szyfrującego. c) Wysyłaniu pakietów anulowania uwierzytelnienia do punktu dostępowego. d) Zrestartowaniu punktu dostępowego.
Podsumowanie W tym rozdziale omawialiśmy szereg zagadnień związanych z uwierzytelnianiem w sieciach bezprzewodowych. Dowiedziałeś się tutaj, że ukrywanie identyfikatorów SSID sieci to typowy przykład stosowania metody zabezpieczenia przez utajnienie (ang. security by obscurity), która w praktyce jest łatwa do przełamania i nie zapewnia sieci praktycznie żadnego bezpieczeństwa. Nie zapewnia go również filtrowanie adresów MAC, ponieważ w sieciach bezprzewodowych adresy MAC uprawnionych klientów mogą być łatwo przechwycone poprzez pasywne nasłuchiwanie ruchu sieciowego. Dzieje się tak dlatego, że adresy MAC w przesyłanych pakietach nie są szyfrowane. Uwierzytelnianie z otwartym dostępem w rzeczywistości nie zapewnia żadnego uwierzytelniania. Uwierzytelnianie ze współdzielonym kluczem jest znacznie
72
Rozdział 3. • Omijanie uwierzytelniania sieci WLAN
trudniejsze do ominięcia, ale przy użyciu odpowiednich narzędzi możliwe jest pozyskanie z przechwyconych pakietów strumienia klucza i wykorzystanie go do generowania odpowiedzi na kolejne wezwania przesyłane przez punkt dostępowy. Dzięki takiemu rozwiązaniu można pomyślnie przejść proces uwierzytelniania i połączyć się z punktem dostępowym bez znajomości samego współdzielonego klucza. W kolejnym rozdziale przyjrzymy się innym mechanizmom szyfrowania wykorzystywanym w sieciach WLAN, takim jak WEP, WPA i WPA2, omówimy też słabe strony każdego z nich i udowodnimy ich podatność na atak.
73
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
74
4 Słabe strony protokołów szyfrowania w sieciach WLAN „640 kB pamięci operacyjnej to więcej, niż ktokolwiek kiedykolwiek będzie potrzebować”. Bill Gates, założyciel firmy Microsoft Nawet mając najlepsze chęci, nie jesteśmy w stanie przewidzieć przyszłości. Organizacje zajmujące się standaryzacją połączeń bezprzewodowych jeszcze nie tak dawno temu uznały, że standardy WEP i nieco później również WPA zapewniają odporne na błędy i ataki mechanizmy szyfrowania. Niestety, po upływie pewnego czasu okazało się, że obie metody posiadają poważne luki w zabezpieczeniach. Szczegóły dowodzące ich podatności na ataki zostały upublicznione i były wykorzystywane do zaatakowania wielu sieci bezprzewodowych na całym świecie. Mechanizmy szyfrowania wykorzystywane w bezprzewodowych sieciach WLAN mają długą i niezbyt chlubną historię podatności na mniej lub bardziej zaawansowane ataki kryptograficzne. Wszystko zaczęło się w roku 2001, kiedy po raz pierwszy udało się całkowicie złamać zabezpieczenia szyfrowania metodą WEP, a obecnie coraz częściej słyszy się o potencjalnie udanych atakach na sieci wykorzystujące szyfrowanie WPA. Co prawda, nadal nie znaleziono metody pozwalającej na przełamywanie standardu WPA w każdym przypadku, ale znane są przykłady ataków zakończonych powodzeniem w pewnych określonych okolicznościach.
W tym rozdziale będziemy omawiali następujące zagadnienia: Różne standardy szyfrowania wykorzystywane w sieciach WLAN. Sposoby ataków i łamania zabezpieczeń sieci z szyfrowaniem WEP. Sposoby ataków i łamania zabezpieczeń sieci z szyfrowaniem WPA.
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Szyfrowanie w sieciach WLAN W sieciach WLAN pakiety danych przesyłane są bezprzewodowo, dlatego odpowiednie zabezpieczenie transmisji stało się sprawą priorytetową. Najlepszym sposobem zabezpieczenia przesyłanych danych jest ich szyfrowanie. Zgodnie ze standardem IEEE 802.11 w sieciach WLAN wykorzystywane są następujące protokoły szyfrowania przesyłanych danych: WEP (ang. Wired Equivalent Privacy). WPA (ang. WiFi Protected Access). WPA2 (ang. WiFi Protected Access v2).
W dalszej części tego rozdziału omówimy poszczególne protokoły szyfrowania oraz przedstawimy metody ataków na każdy z nich.
Szyfrowanie WEP Co prawda, pierwsze luki w zabezpieczeniach protokołu WEP zostały odkryte już w 2000 roku, ale mimo to nadal jest on dosyć powszechnie wykorzystywany i produkowane obecnie punkty dostępowe wciąż mają wbudowaną obsługę tego protokołu. Protokół WEP jest bardzo podatny na różnego rodzaju ataki kryptograficzne, które opisywali między innymi J. Walker, W. Arbaugh, S. Fluhrer, I. Martin, A. Shamir czy użytkownik kryjący się pod pseudonimem KoreK. Opisywanie szczegółów podatności kryptograficznej protokołu WEP wykracza oczywiście daleko poza ramy tej książki i wymaga dobrej znajomości złożonego aparatu matematycznego. W naszej książce skoncentrujemy się zatem na praktycznych aspektach ataku na zabezpieczenia protokołu WEP, czyli inaczej mówiąc, powiemy, jak złamać zabezpieczenia protokołu WEP przy użyciu narzędzi dostępnych na platformie Kali Linux, takich jak pakiet aircrack-ng, w którego skład wchodzą polecenia airmon-ng, aireplay-ng, airodump-ng, aircrack-ng i inne. Podstawową słabością protokołu WEP jest to, że wykorzystuje algorytm RC4 i niewielki rozmiar wektora inicjalizującego (ang. IV — initialization vector), który jest powtarzany co 224 pakiety. Choć wielkości liczbowe mogą się wydawać przekonujące, w praktyce oznacza to, że istnieje pięćdziesięcioprocentowa szansa na to, że w każdym zbiorze składającym się z pięciu tysięcy pakietów wystąpią co najmniej cztery powtórzenia klucza szyfrującego. Aby wykorzystać ten fakt do przeprowadzenia ataku na szyfrowanie WEP, możemy zmusić punkt dostępowy do wygenerowania dużego ruchu sieciowego, dzięki czemu znacząco wzrośnie nasza szansa na przechwycenie powtarzających się już wcześniej wektorów inicjalizujących IV i wykorzystanie ich do porównania różnych danych zaszyfrowanych przy użyciu takich samych wektorów IV i klucza WEP. A zatem do dzieła — w naszym laboratorium przygotujemy sieć z protokołem WEP i pokażemy, jak można się do niej włamać.
76
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
Czas na działanie — przełamywanie zabezpieczeń protokołu WEP Uważnie wykonaj polecenia opisane poniżej: 1. Najpierw musisz przy użyciu przeglądarki sieciowej podłączyć się do interfejsu zarządzającego punktu dostępowego sieci Wireless Lab i przejść do sekcji ustawień, w której można wybierać metody szyfrowania połączeń sieci bezprzewodowej.
2. W przypadku naszego przykładowego punktu dostępowego możemy tego dokonać poprzez ustawienie w sekcji Wireless Security opcji WEP. Oprócz tego musimy również wybrać długość klucza WEP. Jak widać na rysunku zamieszczonym poniżej, wybraliśmy klucz WEP o długości 128 bitów. Opcja Key Type została ustawiona na wartość 128bit, a jako klucza WEP użyliśmy następującego ciągu wartości szesnastkowych: abcdefabcdefabcdefabcdef12. Oczywiście, w swoim laboratorium możesz wybrać zupełnie inne ustawienia.
77
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
3. Po zakończeniu konfiguracji punkt dostępowy powinien udostępniać sieć Wireless Lab zabezpieczoną protokołem WEP. Teraz możesz przystąpić do odpowiedniego skonfigurowania komputera, za pomocą którego przeprowadzisz atak. 4. Otwórz okno terminala i włącz interfejs sieciowy wlan0. Aby to zrobić, powinieneś wykonać następujące polecenie: ifconfig wlan0 up
5. Następnie wykonaj kolejne polecenie przedstawione poniżej: airmon-ng start wlan0
6. Wykonanie podanych poleceń spowoduje utworzenie interfejsu mon0, pracującego w trybie monitora, tak jak to zostało zilustrowane na rysunku na kolejnej stronie. Aby sprawdzić, czy interfejs mon0 został poprawnie utworzony, powinieneś użyć polecenia iwconfig. 7. Do zlokalizowania punktu dostępowego, który będzie celem ataku, użyjemy teraz polecenia airodump-ng. Aby to zrobić, z poziomu okna terminala wykonaj polecenie przedstawione poniżej: airodump-ng mon0
78
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
8. Jeżeli wszystko funkcjonuje poprawnie, wyniki działania tego polecenia powinny ujawnić obecność punktu dostępowego sieci Wireless Lab, pracującego z protokołem WEP, co przedstawiono na następnym rysunku.
79
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
9. W tym przypadku interesuje nas tylko sieć Wireless Lab, dlatego powinieneś wykonać polecenie przedstawione poniżej, dzięki któremu wyświetlane będą tylko pakiety pochodzące z tej sieci. airodump-ng -bssid 00:21:91:D2:8E:25 --channel 11 --write WEPCrackingDemo mon0
Sposób wywołania tego polecenia został przedstawiony na rysunku poniżej.
10. Użycie dyrektywy --write powoduje, że polecenie airodump-ng będzie zapisywało przechwytywane pakiety w pliku pcap o nazwie WEPCrackingDemo. 11. Teraz możemy użyć znanego nam klucza WEP abcdefabcdefabcdefabcdef12 i podłączyć klienta bezprzewodowego do punktu dostępowego. Jeżeli połączenie zakończy się pomyślnie, powinieneś zobaczyć to na ekranie w wynikach działania polecenia airodump-ng — zobacz pierwszy rysunek na kolejnej stronie. 12. Jeżeli wykonasz teraz polecenie ls, w bieżącym katalogu roboczym powinieneś zobaczyć pliki o nazwach rozpoczynających się od prefiksu WEPCrackingDemo-*, tak jak to zostało przedstawione na rysunku poniżej. Są to pliki utworzone przez polecenie airodump, zawierające pakiety przechwycone z sieci bezprzewodowej Wireless Lab — zobacz drugi rysunek na kolejnej stronie.
80
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
81
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
13. Jeżeli przyjrzysz się wynikom działania polecenia airodump-ng, to z pewnością zauważysz, że liczba przechwyconych pakietów, wyświetlona w kolumnie #Data, jest bardzo mała (tylko 68 pakietów). Do wykorzystania słabości protokołu WEP i przeprowadzenia pomyślnego ataku potrzebna będzie znacznie większa liczba przechwyconych pakietów, zaszyfrowanych przy użyciu tego samego klucza. Z tego powodu trzeba jakoś zmusić sieć do „wyprodukowania” większej liczby pakietów danych. Aby to zrobić, należy użyć polecenia aireplay-ng.
14. Dzięki użyciu polecenia aireplay-ng możesz przechwytywać pakiety ARP i następnie z powrotem wstrzykiwać je do sieci, symulując odpowiedzi na żądania ARP. Polecenie aireplay-ng powinieneś uruchomić w osobnym oknie terminala, tak jak to zostało przedstawione na rysunku poniżej. Powtarzając wysyłanie tych pakietów kilka tysięcy razy, wygenerujesz w sieci całkiem spory ruch. Chociaż polecenie aireplay-ng nie zna klucza WEP używanego w atakowanej sieci, nadal jest w stanie zidentyfikować pakiety ARP, bazując na sprawdzaniu rozmiarów przesyłanych pakietów. ARP jest protokołem o stałej długości nagłówka, dzięki czemu rozmiar pakietów ARP przesyłanych w sieci może być łatwo ustalony i użyty do ich wyszukania wśród pozostałych pakietów, nawet wówczas, gdy przesyłane pakiety są zaszyfrowane.
82
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
Do wykonania takiej operacji użyj polecenia aireplay-ng z następującymi opcjami: -3 powoduje powtarzanie pakietów ARP, -b pozwala na określenie identyfikatora BSSID sieci, a -h umożliwia zdefiniowanie adresu MAC klienta, pod którego się podszywamy. Trzeba tak zrobić, ponieważ atak polegający na powtarzaniu pakietów jest skuteczny tylko wtedy, gdy pakiety są wysyłane przez klienta, który został pomyślnie „uwierzytelniony” i przypisany do punktu dostępowego.
15. Niemal od razu po uruchomieniu polecenie aireplay-ng rozpocznie przechwytywanie pierwszych pakietów ARP i wstrzykiwanie ich ponownie do sieci. Jeżeli po uruchomieniu tego polecenia na ekranie zaczną pojawiać się błędy, spróbuj ponownie uruchomić polecenie aireplay-ng, tym razem dodając jednak w wierszu wywołania opcję --ignore-negative-one — zobacz pierwszy rysunek na kolejnej stronie. 16. Po uruchomieniu polecenie airodump-ng rozpocznie przechwytywanie dużej liczby pakietów danych. Wszystkie przechwycone pakiety zostają zapisane na dysku w plikach WEPCrackingDemo-*, które widziałeś już przed chwilą — zobacz drugi rysunek na kolejnej stronie.
83
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
84
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
17. Teraz wreszcie możesz przystąpić do właściwego procesu „łamania” zabezpieczeń protokołu WEP. Aby to zrobić, otwórz nowe okno terminala i uruchom polecenie aircrack-ng, podając jako argument wywołania nazwę pliku WEPCrackingDemo-01.cap. Polecenie aircrack-ng rozpocznie analizę i próbę złamania klucza WEP na podstawie pakietów danych zapisanych w pliku. Zwróć uwagę, że dobrym rozwiązaniem jest jednoczesne uruchomienie polecenia airodump-ng przechwytującego i zapisującego pakiety WEP, polecenia aireplay-ng przeprowadzającego atak metodą powtarzania pakietów oraz polecenia aircrack-ng próbującego złamać klucz WEP z wykorzystaniem przechwyconych do tej pory pakietów. W tym doświadczeniu każde z tych poleceń zostało uruchomione w osobnym oknie terminala. 18. Po uruchomieniu polecenia aircrack-ng pracującego nad złamaniem klucza WEP okno terminala powinno wyglądać mniej więcej tak:
19. Liczby pakietów danych niezbędnych do przeprowadzenia pomyślnego ataku na klucz WEP nie można wyznaczyć w prosty i powtarzalny sposób, ale z doświadczeń wynika, że powinno to być mniej więcej sto tysięcy lub więcej pakietów. W przypadku szybkich sieci o dużym natężeniu ruchu (lub w przypadku użycia polecenia aireplay-ng) czas niezbędny do zebrania takiej liczby pakietów to od 5 do 10 minut.
85
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Jeżeli liczba pakietów danych zapisanych w danej chwili w pliku jest niewystarczająca, polecenie aircrack-ng zawiesi pracę do czasu zebrania większej liczby pakietów, tak jak to zostało zaprezentowane na rysunku poniżej. Po przechwyceniu odpowiedniej liczby nowych pakietów polecenie automatycznie wznowi działanie.
20. Po przechwyceniu i zapisaniu odpowiedniej liczby pakietów polecenie aircrack-ng zazwyczaj będzie w stanie bez trudności złamać klucz WEP. Kiedy tak się stanie, na ekranie pojawi się odpowiedni komunikat zawierający odkryty klucz i polecenie zakończy działanie, jak przedstawiono na kolejnym rysunku. 21. Warto zauważyć, że protokół WEP jest całkowicie podatny na taki atak i dowolny klucz WEP (niezależnie od tego, jak bardzo złożony) prędzej czy później zostanie złamany przez polecenie aircrack-ng. Jedynym elementem potrzebnym do przeprowadzenia takiego ataku jest zebranie odpowiedniej liczby pakietów zaszyfrowanych przy użyciu tego klucza, zapisanie ich w pliku i podanie tego pliku jako argumentu wywołania polecenia aircrack-ng.
86
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
Co się stało? W tym ćwiczeniu skonfigurowałeś punkt dostępowy tak, aby pracował z szyfrowaniem WEP, a następnie przeprowadziłeś pomyślny atak pozwalający na złamanie klucza szyfrowania WEP. Aby tego dokonać, najpierw musiałeś poczekać, aż uprawniony klient podłączy się do punktu dostępowego. Później użyłeś polecenia aireplay-ng do przeprowadzenia ataku polegającego na powtarzaniu pakietów ARP, co spowodowało znaczące zwiększenie liczby pakietów danych przesyłanych w atakowanej sieci. Na koniec wykorzystałeś kryptologiczną podatność protokołu WEP na atak i użyłeś polecenia aircrack-ng do złamania klucza WEP. Warto zauważyć, że proces uwierzytelniania połączenia z punktem dostępowym można sfałszować przy użyciu techniki omijania uwierzytelniania ze współdzielonym kluczem, opisywanej w poprzednim rozdziale. Takie rozwiązanie może być bardzo wygodne, jeżeli uprawniony klient zakończy sesję i odłączy się od sieci. Użycie tej techniki powoduje, że w takiej sytuacji nadal będziesz w stanie naśladować uwierzytelnionego klienta i kontynuować atak metodą powtarzania pakietów wstrzykiwanych do sieci.
87
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Zrób to sam — fałszywe uwierzytelnianie podczas łamania klucza WEP W poprzednim ćwiczeniu, jeżeli uprawniony klient, którego adresu MAC użyłeś, nagle odłączyłby się od sieci, nie byłbyś w stanie kontynuować ataku metodą powtarzania pakietów, ponieważ punkt dostępowy nie przyjmuje pakietów nadchodzących od klientów, którzy nie są uwierzytelnieni. Twoim zadaniem będzie sfałszowanie uwierzytelnienia i przypisanie fałszywego klienta do punktu dostępowego przy użyciu w trakcie łamania klucza WEP techniki omijania uwierzytelniania ze współdzielonym kluczem, o której mówiliśmy w poprzednim rozdziale. Aby sprawdzić poprawność działania swojego rozwiązania, powinieneś odłączyć uprawnionego klienta od punktu dostępowego i zobaczyć, czy nadal jesteś w stanie wstrzykiwać pakiety do sieci oraz czy punkt dostępowy przyjmuje takie żądania i na nie odpowiada.
Szyfrowanie WPA/WPA2 Protokół WPA (ang. WiFi Protected Access), nazywany czasami również protokołem WPA1, głównie wykorzystuje algorytm szyfrowania o nazwie TKIP (ang. Temporal Key Integrity Protocol). Algorytm TKIP został opracowany przede wszystkim z myślą o ulepszeniu protokołu WEP tak, aby uzyskać zwiększenie jego odporności na ataki bez konieczności wprowadzania znaczących zmian sprzętowych w używanych do tej pory urządzeniach sieciowych. Dla porównania protokół WPA2 wykorzystuje do szyfrowania algorytm AES-CCMP (ang. Advanced Encryption Standard-Counter Mode with Cipher Block Chaining Message Authentication Code Protocol), który jest znacznie silniejszy i odporniejszy na ataki niż algorytm TKIP. Zarówno protokół WPA, jak i WPA2 pozwalają na uwierzytelnianie opierające się na EAP (ang. Extensible Authentication Protocol), z wykorzystaniem serwera Radius (ang. Remote Authentication Dial In User Service) w środowiskach korporacyjnych lub protokołu PSK (ang. Pre-Shared Key) do zastosowań osobistych. Szyfrowanie metodami WPA/WPA2 jest podatne na ataki słownikowe. Do przeprowadzenia ataku niezbędne jest wcześniejsze przechwycenie wymiany pakietów przesyłanych między klientem a punktem dostępowym podczas czteroetapowej negocjacji uwierzytelniania (ang. four-way handshake). Potrzebny jest też odpowiedni słownik zawierający listę najczęściej używanych haseł. Następnie, używając narzędzi takich jak aircrack-ng, można przystąpić do próby złamania klucza WPA/WPA2 PSK. Na kolejnym rysunku przedstawiono przebieg wymiany pakietów przesyłanych między klientem a punktem dostępowym podczas czteroetapowej negocjacji uwierzytelniania.
88
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
Działanie szyfrowania WPA/WPA2 PSK opiera się na wyliczeniu klucza sesji nazywanego PTK (ang. Pairwise Transient Key) przy użyciu znanego wcześniej klucza PSK (ang. Pre-Shared Key) oraz pięciu innych parametrów: identyfikatora SSID sieci, wartości losowej ANonce generowanej przez serwer (ang. Authenticator Nonce), wartości losowej SNonce generowanej przez klienta-suplikanta (ang. Supplicant Nonce), adresu MAC punktu dostępowego (czyli adresu MAC serwera uwierzytelniającego) oraz adresu MAC klienta bezprzewodowego (adres MAC suplikanta). Wyliczony klucz PTK jest następnie używany do szyfrowania wszystkich danych przesyłanych między klientem a punktem dostępowym. Potencjalny napastnik nasłuchujący takiej wymiany pakietów może bez trudu przechwycić wszystkie pięć parametrów opisanych w poprzednim akapicie, dlatego jedynym elementem układanki, którego nie posiada, jest klucz PSK. Nasuwa się zatem pytanie, jak tworzony jest klucz PSK? Otóż jest on generowany na podstawie hasła PSK (tekstu szyfrującego) znanego użytkownikowi oraz identyfikatora sieci SSID. Kombinacja tych dwóch elementów jest podawana jako argument wywołania funkcji PBKDF2 (ang. Password Based Key Derivation Function), której wynikiem działania jest 256-bitowy klucz współdzielony. W typowym ataku słownikowym na sieci wykorzystujące szyfrowanie WPA/WPA2 PSK napastnik będzie korzystał z rozbudowanego słownika zawierającego listę potencjalnych haseł i odpowiedniego narzędzia pozwalającego na szybkie ich sprawdzanie. Narzędzie wylicza 256-bitowy klucz PSK na podstawie każdego z haseł i wykorzystuje go (łącznie z pozostałymi parametrami opisanymi wcześniej) do utworzenia klucza PTK. Następnie klucz PTK jest używany do sprawdzenia kodu MIC (ang. Message Integrity Check), odpowiedzialnego za integralność danych w jednym z pakietów przesyłanych podczas czteroetapowej negocjacji uwierzytelnienia. Jeżeli sprawdzenie zakończy się powodzeniem, oznacza to, że dane hasło ze słownika odpowiada tekstowi szyfrującemu PSK atakowanej sieci. Jeżeli nie, ze słownika pobierane jest kolejne hasło i cały proces powtarza się.
89
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Jak widać, jeśli tekst szyfrujący PSK (hasło) znajduje się w słowniku haseł napastnika, to wcześniej czy później zostanie odszukany i zidentyfikowany. Właśnie tak przebiega atak na sieci wykorzystujące szyfrowanie WPA/WPA2 PSK! Cały proces został zilustrowany na rysunku zamieszczonym poniżej:
W kolejnym ćwiczeniu pokażemy, jak w praktyce możesz przeprowadzić atak na sieci bezprzewodowe wykorzystujące szyfrowanie WPA-PSK. Warto zauważyć, że atak na sieć bezprzewodową korzystającą z szyfrowania WPA2 PSK z algorytmem CCMP(AES) będzie przebiegał dokładnie tak samo.
Czas na działanie — łamanie słabych haseł w sieciach z szyfrowaniem WPA-PSK Uważnie wykonaj polecenia opisane poniżej: 1. Najpierw przy użyciu przeglądarki sieciowej podłącz się do terminala konfiguracyjnego punktu dostępowego sieci laboratoryjnej Wireless Lab i skonfiguruj punkt dostępowy tak, aby korzystał z szyfrowania WPA-PSK. Jako hasła WPA-PSK użyj ciągu znaków abcdefgh, dzięki czemu będzie ono podatne na atak słownikowy — zobacz pierwszy rysunek na kolejnej stronie. 2. Otwórz okno terminala i wykonaj przedstawione poniżej polecenie, które rozpocznie przechwytywanie i zapisywanie na dysku pakietów przesyłanych w sieci Wireless Lab: airodump-ng -bssid 00:21:91:D2:8E:25 -channel 11 -write WPACrackingDemo mon0
Wyniki działania tego polecenia zostały przedstawione na drugim rysunku na kolejnej stronie.
90
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
3. Teraz musisz poczekać, aż jakiś uprawniony klient podłączy się do punktu dostępowego, dzięki czemu będziesz w stanie przechwycić pakiety czteroetapowej negocjacji uwierzytelniania. Zamiast tego możesz oczywiście wstrzyknąć do sieci pakiet anulowania uwierzytelnienia, który wymusi rozłączenie i ponowne przyłączenie
91
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
się klientów. Aby nie czekać na nowego klienta sieci i przyspieszyć cały atak, skorzystaj z tego drugiego rozwiązania. Podobnie jak w poprzednim ćwiczeniu, w przypadku napotkania problemów powinieneś spróbować ponownie uruchomić polecenie, dodając w wierszu wywołania opcję --ignore-negative-one. Warto zauważyć, że w takiej sytuacji może okazać się konieczne wykonanie co najmniej kilku prób uruchomienia tego polecenia.
4. Po przechwyceniu przebiegu czteroetapowej negocjacji uwierzytelniania polecenie airodump-ng poinformuje Cię o tym, wyświetlając w prawym górnym rogu ekranu komunikat WPA Handshake, a następnie identyfikator BSSID punktu dostępowego. Jeżeli używałeś opcji --ignore-negative-one, komunikat ten może zostać zastąpiony innym. W takiej sytuacji powinieneś po prostu uważnie obserwować wyniki działania polecenia, aby zauważyć moment przechwycenia całego procesu uwierzytelniania. 5. Teraz możesz już zatrzymać polecenie airodump-ng. Następnie uruchom program Wireshark, otwórz w nim plik pcap zawierający przechwycone pakiety i przyjrzyj się przebiegowi czteroetapowej negocjacji uwierzytelniania. Pakiety w oknie programu Wireshark powinny wyglądać mniej więcej tak, jak na rysunku zamieszczonym
92
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
poniżej. Pierwszy pakiet negocjacji został zaznaczony. Pakiety biorące udział w negocjacjach uwierzytelniania w kolumnie Protocol mają wartość EAPOL, a w kolumnie Info — wartość Key.
6. W tym momencie możesz rozpocząć właściwy proces łamania klucza. Aby to zrobić, będzie Ci potrzebny słownik zawierający listę najczęściej wykorzystywanych haseł. W systemie Kali Linux znajdziesz wiele plików ze słownikami haseł, które znajdują się w katalogu metasploit, tak jak to zostało przedstawione na rysunku poniżej. Warto zauważyć, że szanse powodzenia ataku na sieci z szyfrowaniem WPA zależą głównie od tego, jak dobry słownik haseł posiadasz. Jak już wspominaliśmy, Kali Linux ma całkiem sporo gotowych do użycia słowników haseł, aczkolwiek w wielu sytuacjach będą one niewystarczające. Hasła wybierane przez administratorów sieci bezprzewodowych zależą od wielu różnych czynników, na przykład elementem hasła mogą być ulubione tematy administratora, nazwa kraju, w którym działa dana sieć, nazwy powszechnie występujące w danym regionie itp. Oprócz tego duży wpływ na siłę hasła ma również to, jaką znajomość zagadnień związanych z bezpieczeństwem sieci posiadają administratorzy i użytkownicy sieci. Przed przeprowadzeniem audytu bezpieczeństwa, w skład którego wchodzą testy penetracyjne sieci bezprzewodowych, warto przygotować sobie wcześniej obszerne słowniki uwzględniające lokalną specyfikę danej sieci.
93
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
7. Teraz uruchom polecenie aircrack-ng i jako argumenty wywołania podaj nazwę pliku pcap zawierającego przechwycone pakiety oraz ścieżkę do pliku słownika. W naszym przypadku użyliśmy pliku nmap.lst, tak jak to zostało przedstawione na rysunku poniżej.
94
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
8. Polecenie aircrack-ng będzie używało pliku słownika do sprawdzania kolejnych haseł i złamania klucza szyfrowania. Jeżeli hasło używane w sieci znajduje się w pliku słownika, po pewnym czasie zostanie odszukane i polecenie aircrack-ng powiadomi Cię o tym, wyświetlając na ekranie odpowiednie informacje, co zostało pokazane na kolejnym rysunku.
9. Warto w tym miejscu zwrócić uwagę, że ponieważ przeprowadzamy atak słownikowy, warunkiem jego powodzenia jest to, że właściwe hasło musi znajdować się w słowniku, który przekazujesz jako argument wywołania polecenia aircrack-ng. Jeżeli hasła nie ma w słowniku, atak zakończy się niepowodzeniem!
Co się stało? Najpierw skonfigurowałeś laboratoryjny punkt dostępowy tak, aby sieć bezprzewodowa korzystała z szyfrowania WPA-PSK, i jako hasło wybrałeś ciąg znaków abcdefgh. Następnie przeprowadziłeś udany atak polegający na anulowaniu uwierzytelnienia klientów (ang. deauthentication attack), który wymusił rozłączenie uprawnionych klientów i ich ponowne podłączenie do punktu dostępowego. Dzięki temu mogłeś przechwycić pakiety wymieniane między klientem a punktem dostępowym podczas czteroetapowego negocjowania uwierzytelnienia.
95
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Ponieważ protokół WPA-PSK jest podatny na atak słownikowy, jako parametrów wywołania polecenia aircrack-ng użyłeś pliku pcap z przechwyconymi pakietami oraz pliku słownika, zawierającego obszerną listę potencjalnych haseł. Hasło abcdefgh znajdowało się w słowniku użytym podczas ataku, dlatego polecenie aircrack-ng było w stanie je odszukać i złamać klucz szyfrowania WPA-PSK. Ponownie należy zauważyć, że ponieważ opisana metoda ataku na sieci WPA-PSK jest metodą słownikową, jest ona na tyle skuteczna, na ile obszerny jest słownik użyty podczas ataku. Z tego powodu bardzo istotnym elementem metodologii takiego ataku jest uprzednie przygotowanie właściwego słownika, obejmującego zarówno powszechnie używane słowa, jak i ciągi znaków oraz elementy związane ze specyfiką sieci będącej przedmiotem ataku. Choć system Kali Linux posiada wiele wbudowanych słowników haseł, to w większości przypadków mogą się one okazać niewystarczające i niezbędne będzie ich rozbudowanie o inne, wspomniane wcześniej elementy.
Zrób to sam — łamanie szyfrowania WPA-PSK przy użyciu pakietu Cowpatty Cowpatty to narzędzie, za pomocą którego również możesz przeprowadzić atak słownikowy na hasło WPA-PSK. Narzędzie to jest częścią dystrybucji systemu Kali Linux. W ramach ćwiczenia powinieneś spróbować użyć pakietu Cowpatty do przeprowadzenia ataku na hasło WPA-PSK. Kolejnym sposobem godnym wypróbowania jest użycie hasła, którego z pewnością nie ma w użytym słowniku, i ponowne przeprowadzenie ataku. Oczywiście, w takiej sytuacji zarówno w przypadku polecenia aircrack-ng, jak i cowpatty atak zakończy się niepowodzeniem. Warto zauważyć, że taki sam atak można przeprowadzić nawet na sieci korzystające z szyfrowania WPA2 PSK. Podejmij próbę zaatakowania takiej sieci.
Przyspieszanie procesu łamania szyfrowania WPA/WPA2 PSK Jak przekonałeś się w poprzednim podrozdziale, jeżeli hasło PSK znajduje się w użytym słowniku, to atak opisaną wcześniej metodą słownikową będzie się charakteryzował stuprocentową skutecznością. W takim razie dlaczego nie moglibyśmy po prostu utworzyć ogromnego słownika zawierającego miliony haseł i kombinacji znaków używanych powszechnie przez administratorów sieci i użytkowników? Takie rozwiązanie znacznie ułatwiłoby cały proces i pozwoliło przeprowadzić skuteczny atak w zdecydowanej większości przypadków. W teorii brzmi to znakomicie, ale niestety nie wzięliśmy pod uwagę jednego czynnika — czasu przetwarzania. Jedną z operacji, która angażuje największą ilość zasobów procesora i czasu, jest obliczanie klucza PSK przy użyciu funkcji PBKDF2, jako argumenty wywołania otrzymującej hasło PSK oraz identyfikator BSSID sieci. Obliczenie samego 256-bitowego klucza wymaga wykonania za każdym razem 4096 operacji mieszających, co angażuje znaczną moc obliczeniową. W kolejnym etapie obliczony klucz musi zostać użyty w procesie czteroetapowej negocjacji uwierzytel96
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
nienia i sprawdzony za pomocą kodu MIC, choć taka operacja nie jest już tak wymagająca z obliczeniowego punktu widzenia. Co więcej, parametry w czteroetapowej negocjacjach uwierzytelniania są za każdym razem inne, co uniemożliwia wcześniejsze przygotowanie predefiniowanych tablic z gotowymi wartościami. Jak widać, proces łamania można przyspieszyć jedynie przez jak najszybsze obliczanie wartości klucza PSK dla kolejnych haseł słownika. Aby przyspieszyć ten proces, można pokusić się o wcześniejsze obliczenie wartości kluczy PSK dla poszczególnych haseł słownika (w oficjalnej terminologii standardu 802.11 takie klucze noszą nazwę kluczy PMK (ang. Pairwise Master Key). Warto jednak zauważyć, że do obliczania wartości klucza PMK wykorzystywany jest również identyfikator SSID sieci, stąd dla tego samego hasła słownikowego, ale przy innej wartości SSID klucz PMK będzie miał zupełnie inną wartość — czyli inaczej mówiąc, wartość klucza PMK zależy zarówno od hasła, jak i od identyfikatora SSID sieci. W kolejnym ćwiczeniu pokażemy, jak można wcześniej obliczyć wartości kluczy PMK dla poszczególnych haseł słownika i jak użyć tego zestawienia do łamania szyfrowania WPA/WPA2 PSK.
Czas na działanie — przyspieszanie procesu łamania kluczy 1. Jeżeli chcesz wcześniej obliczyć wartości kluczy PMK dla danego słownika i danego identyfikatora SSID sieci, możesz użyć polecenia genpmk. Aby to zrobić, otwórz okno terminala i wpisz polecenie przedstawione poniżej: genpmk -f -d PMK-Wireless-Lab -s "Wireless Lab"
W wyniku działania polecenia zostanie utworzony plik o nazwie PMK-Wireless-Lab, zawierający obliczone wartości kluczy PMK — zobacz pierwszy rysunek na kolejnej stronie. 2. Teraz skonfigurujemy punkt dostępowy tak, aby sieć bezprzewodowa wykorzystywała szyfrowanie WPA-PSK z hasłem abcdefgh (obecne w naszym słowniku), a następnie przechwycimy wymianę pakietów, która będzie miała miejsce podczas czteroetapowej negocjacji uwierzytelniania uprawnionego klienta. Po zakończeniu przechwytywania użyjemy pakietu Cowpatty do złamania hasła WPA — zobacz drugi rysunek na kolejnej stronie. Złamanie naszego hasła przy użyciu pakietu Cowpatty oraz wcześniej obliczonych tablic wartości kluczy PMK zajęło nieco ponad 7 sekund. 3. Dla porównania użyj teraz polecenia aircrack-ng z tym samym plikiem słownika, ale bez wcześniejszego obliczania wartości kluczy PMK. W naszym przypadku tym razem cała operacja zajęła ponad 22 minuty, co doskonale obrazuje złożoność wykonywanych obliczeń oraz zysk, jaki daje wcześniejsze obliczenie wartości kluczy PMK.
97
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
98
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
4. Jeżeli chciałbyś użyć obliczonych wcześniej wartości kluczy PMK do łamania haseł przy użyciu polecenia aircrack-ng, będziesz musiał skorzystać z narzędzia o nazwie airolib-ng. Aby to zrobić, przejdź do okna terminala i wykonaj polecenie airolib-ng PMK-Aircrack --import cowpatty PMK-Wireless-Lab, gdzie PMK-Aircrack to nazwa bazy kluczy PMK w formacie akceptowanym przez polecenie aircrack-ng, która zostanie utworzona na podstawie danych z bazy cowpatty PMK-Wireless-Lab, zapisanej obecnie w formacie genpmk. 5. Po zakończeniu konwersji bazy kluczy PMK możesz użyć jej podczas łamania haseł przy użyciu polecenia aircrack-ng, co oczywiście znacząco przyspieszy cały proces. Aby się o tym przekonać, wykonaj polecenie przedstawione poniżej: aircrack-ng -r PMK-Aircrack WPACrackingDemo2-01.cap
6. W dystrybucji Kali Linux znajdziesz również inne narzędzia, takie jak na przykład Pyrit, które pozwolą Ci na użycie do łamania haseł systemów wyposażonych w wiele procesorów. Aby skorzystać z tego polecenia, powinieneś użyć opcji -r do podania nazwy pliku pcap, zawierającego przechwycone pakiety, oraz opcji -i do zdefiniowania bazy kluczy PMK zapisanej w formacie genpmk. W tym samym systemie, którego wcześniej używaliśmy do pracy z innymi narzędziami, złamanie klucza przy użyciu pakietu Pyrit zajęło około 3 sekund (oczywiście korzystając z tej samej bazy kluczy PMK, którą utworzyliśmy wcześniej poleceniem genpmk).
Co się stało? W tym podrozdziale omawialiśmy różne narzędzia i techniki pozwalające na przyspieszenie łamania haseł WPA/WPA2 PSK. Cała idea takich rozwiązań opiera się na wcześniejszym przygotowaniu bazy kluczy PMK obliczonych dla danego słownika oraz identyfikatora SSID sieci.
Odszyfrowywanie pakietów WEP i WPA We wszystkich dotychczasowych ćwiczeniach różnymi technikami łamałeś klucze WEP i WPA. Ale czego można dokonać przy użyciu tak zdobytych informacji? Pierwszym krokiem będzie deszyfrowanie za pomocą uzyskanych kluczy pakietów danych, które udało się do tej pory przechwycić. W kolejnym ćwiczeniu pokażemy, w jaki sposób możesz deszyfrować przechwycone już pakiety WEP i WPA przy użyciu kluczy, które udało Ci się złamać.
99
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Czas na działanie — deszyfrowanie pakietów WEP i WPA Uważnie wykonaj polecenia przedstawione poniżej: 1. Procesowi deszyfrowania zostaną teraz poddane pakiety zapisane w pliku WEPCrackingDemo-01.cap, z którego korzystałeś podczas procesu łamania klucza WEP. W ćwiczeniu użyjemy kolejnego narzędzia z pakietu Aircrack-ng, które nosi nazwę airdecap-ng. Aby to zrobić, otwórz okno terminala i wykonaj polecenie przedstawione poniżej, używając klucza WEP, który złamaliśmy w jednym z poprzednich ćwiczeń: airdecap-ng -w abcdefabcdefabcdefabcdef12 WEPCrackingDemo-02.cap
100
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
2. Odszyfrowane pakiety zostaną zapisane w pliku o nazwie WEPCrackingDemo-02-dec.cap. Do wyświetlenia pierwszych dziesięciu pakietów z tego pliku użyj narzędzia o nazwie tshark. Pamiętaj, że w Twoim przypadku zawartość przechwyconych pakietów może być zupełnie inna.
3. Deszyfrowanie pakietów WPA/WPA2 PSK przy użyciu złamanych wcześniej kluczy i polecenia airdecap-ng odbywa się dokładnie w taki sam sposób. Aby się o tym przekonać, przejdź do okna terminala i wykonaj polecenie przedstawione poniżej: airdecap-ng -p abdefgh WPACrackingDemo-02.cap -e "Wireless Lab"
Co się stało? Właśnie dowiedziałeś się, jak przy użyciu polecenia airdecap-ng możesz odszyfrować przechwycone wcześniej i zapisane w pliku pakiety szyfrowane przy użyciu protokołów WEP i WPA/WPA2 PSK. Co ciekawe, dokładnie taką samą operację możesz przeprowadzić, używając pakietu Wireshark. Aby dowiedzieć się, jak to zrobić, powinieneś zajrzeć do dokumentacji pakietu Wireshark.
101
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Podłączanie się do sieci WEP i WPA Po złamaniu klucza szyfrowania sieci bezprzewodowej możesz się do niej z łatwością podłączyć, co może być bardzo przydatne zwłaszcza podczas testów penetracyjnych. Zalogowanie się do testowanej sieci przy użyciu złamanego klucza (oczywiście o ile wcześniej otrzymałeś na to zgodę jej administratora) będzie stanowiło dla Twojego klienta ostateczne potwierdzenie, że jego sieć nie jest odpowiednio zabezpieczona.
Czas na działanie — podłączanie się do sieci wykorzystującej szyfrowanie WEP Wykonaj polecenia przedstawione poniżej: 1. Po złamaniu klucza WEP możesz się podłączyć do takiej sieci, wykonując polecenie iwconfig. Aby to zrobić, użyj klucza WEP, który uzyskałeś w jednym z poprzednich ćwiczeń — abcdefabcdefabcdefabcdef12:
102
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
Co się stało? Właśnie dowiedziałeś się, w jaki sposób przy użyciu złamanego wcześniej klucza możesz się podłączyć do sieci wykorzystującej szyfrowanie WEP.
Czas na działanie — podłączanie się do sieci wykorzystującej szyfrowanie WPA Wykonaj polecenia przedstawione poniżej: 1. W przypadku sieci wykorzystującej szyfrowanie WPA proces podłączania się jest nieco bardziej złożony. Polecenie iwconfig nie może być używane do podłączania się do prywatnych i korporacyjnych sieci WPA/WPA2, ponieważ po prostu nie obsługuje takich połączeń. Z tego powodu w tym ćwiczeniu należy skorzystać z nowego narzędzia, o nazwie WPA_supplicant. Aby użyć go do podłączenia się do wybranej sieci bezprzewodowej, najpierw musisz utworzyć odpowiedni plik konfiguracyjny, tak jak przedstawiono na rysunku poniżej. Plikowi nadaj nazwę wpa-supp.conf. 103
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
2. Po utworzeniu pliku konfiguracyjnego możesz podłączyć się do sieci WPA. Aby to zrobić, przejdź do okna terminala i wykonaj polecenie wpa_supplicant -D wext -i wlan0 -c wpa-supp.conf. Gdy uzyskasz poprawne połączenie, polecenie wpa_supplicant poinformuje Cię o tym, wyświetlając na ekranie komunikat: Connection to XXXX completed. 3. Po uzyskaniu połączenia, zarówno w przypadku sieci WEP, jak i WPA, powinieneś użyć polecenia dhcpclient3 do uzyskania odpowiedniego adresu IP z serwera DHCP. Aby to osiągnąć, powinieneś w oknie terminala wykonać polecenie dhcpclient3 wlan0.
Co się stało? Popularne i często wykorzystywane narzędzie iwconfig nie może być używane do łączenia się z sieciami WPA/WPA2. Jeżeli chcesz się podłączyć do takich sieci, powinieneś użyć narzędzia o nazwie wpa_supplicant. Z tego ćwiczenia dowiedziałeś się, w jaki sposób możesz użyć wspomnianego narzędzia do połączenia się z siecią wykorzystującą szyfrowanie WPA.
104
Rozdział 4. • Słabe strony protokołów szyfrowania w sieciach WLAN
Szybki quiz — słabe punkty protokołów szyfrowania w sieciach WLAN 1. Jakie pakiety są wykorzystywane podczas ataku metodą powtarzania pakietów? a) Pakiety De-authentication (anulowanie uwierzytelnienia). b) Pakiety Association (żądanie skojarzenia). c) Szyfrowane pakiety ARP. d) Żadne z powyższych. 2. Klucz szyfrowania WEP może być złamany: a) Zawsze. b) Tylko w przypadku używania słabego hasła/klucza. c) Tylko w przypadku zaistnienia specyficznych okoliczności. d) Tylko w przypadku, kiedy punkt dostępowy jest wyposażony w starą wersję oprogramowania. 3. Klucz szyfrowania WPA może być złamany: a) Zawsze. b) Tylko w przypadku używania słabego hasła/klucza. c) Jeżeli klient korzysta ze starej wersji oprogramowania firmware. d) Nawet w sytuacji, kiedy do sieci nie jest podłączony żaden klient.
Podsumowanie W tym rozdziale omawialiśmy kilka ciekawych zagadnień dotyczących szyfrowania połączeń w sieciach WLAN. Szyfrowanie WEP jest całkowicie podatne na ataki i nie gwarantuje bezpieczeństwa, nawet jeżeli używany klucz jest bardzo złożony — po przechwyceniu odpowiedniej liczby pakietów złamanie klucza WEP jest zawsze możliwe. Szyfrowania WPA/WPA2 nie można złamać istniejącymi metodami kryptograficznymi, aczkolwiek w sytuacji, kiedy sieć WPA/WPA2 PSK korzysta ze słabego, źle dobranego hasła, możliwe jest jego złamanie po przeprowadzeniu ataku metodą słownikową. W kolejnym rozdziale omówimy różne rodzaje ataków na infrastrukturę sieci WLAN, takie jak instalowanie nieautoryzowanych punktów dostępowych (ang. rogue access points), ataki typu evil twins (podstawianie punktów dostępowych udających legalne urządzenia), bit flipping (fałszowanie danych przesyłanych w ramkach) i inne.
105
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
106
5 Ataki na infrastrukturę sieci WLAN „Najwyższą formą realizacji sztuki wojennej jest udaremnianie [strategicznych] planów przeciwnika”. Sun Tzu, Sztuka wojny W tym rozdziale będziemy się zajmować atakami na samą infrastrukturę bezprzewodowych sieci WLAN. W naszych rozważaniach skoncentrujemy się na sposobach penetrowania sieci bezprzewodowych z wykorzystaniem różnych wektorów ataku oraz pokażemy, w jaki sposób można przekonać uprawnione klienty sieci do zalogowania się do naszego podstawionego punktu dostępowego.
Infrastruktura sieci WLAN to fundament rozwiązania, którego celem jest dostarczenie usług bezprzewodowych wszystkim uprawnionym klientom. W tym rozdziale będziemy zajmować się różnymi atakami na infrastrukturę sieci bezprzewodowych, jak: Wykorzystywanie domyślnych kont dostępu i haseł w punktach dostępowych. Ataki typu odmowa usługi (ang. DoS — Denial of Service). Podstawione punkty dostępowe udające legalne urządzenia (ataki typu evil twins)
oraz fałszowanie adresów MAC punktów dostępowych. Nieautoryzowane punkty dostępowe (ang. rogue access points).
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Domyślne konta i hasła punktów dostępowych Punkty dostępowe to jedne z najważniejszych elementów składowych infrastruktury sieci WLAN. Jednak pomimo iż pełnią one tak kluczową funkcję, pod względem zabezpieczeń są czasami jednym z najbardziej zaniedbywanych elementów tej infrastruktury. W tym ćwiczeniu sprawdzimy, czy domyślne, fabryczne hasła dostępu w naszym punkcie dostępowym zostały zmienione, czy też nie. Następnie spróbujemy sprawdzić, czy nawet jeżeli odpowiednie hasła zostały zmienione, nie są zbyt proste do odgadnięcia lub złamania przy użyciu ataku słownikowego. Pamiętaj, że w miarę przechodzenia do coraz bardziej złożonych zagadnień w kolejnych rozdziałach przyjmujemy założenie, że zapoznałeś się z materiałami opisywanymi w poprzednich rozdziałach, rozumiesz zasady przeprowadzania poszczególnych typów ataków i potrafisz posługiwać się opisywanymi w tych rozdziałach narzędziami. Dzięki temu będzie Ci znacznie łatwiej zrozumieć omawiane zagadnienia, co pozwoli Ci również na przeprowadzanie coraz bardziej złożonych i wyrafinowanych ataków.
Czas na działanie — łamanie domyślnych, fabrycznych haseł punktów dostępowych Uważnie wykonaj polecenia opisane poniżej: 1. Uruchom przeglądarkę sieciową i połącz się z interfejsem zarządzania punktem dostępowym sieci Wireless Lab. W naszym przypadku jest to router typu TP-Link WR841N, co możesz zobaczyć na rysunku zamieszczonym poniżej.
2. Ze strony internetowej producenta punktu dostępowego możesz dowiedzieć się, że domyślne poświadczenia logowania dla administratora naszego routera to admin/admin. Dzięki temu po zainstalowaniu i włączeniu nowego routera możesz od razu zalogować się do niego na prawach administratora. Jednakże doskonale
108
Rozdział 5. • Ataki na infrastrukturę sieci WLAN
pokazuje to, jak łatwo można się „włamać” do punktu dostępowego, którego administrator nie zmienił domyślnego, fabrycznego hasła. Przygotowując się do przeprowadzenia testów penetracyjnych, powinieneś zawsze pobrać ze strony producenta podręcznik użytkownika danego modelu punktu dostępowego. Dzięki temu zobaczysz, z jakim urządzeniem masz do czynienia, i być może będziesz w stanie znaleźć jego potencjalnie słabe strony, które później wykorzystasz podczas testowania.
Co się stało? Dowiedziałeś się, że czasami domyślne konta i hasła instalowane fabrycznie w punktach dostępowych przez niewiedzę lub niedopatrzenie administratorów nie są zmieniane, co można łatwo wykorzystać do szybkiego uzyskania pełnego dostępu do atakowanego systemu. Co więcej, nawet jeżeli domyślne hasło zostało zmienione, należy sprawdzić, czy nie jest ono łatwe do odgadnięcia lub złamania przy użyciu prostego ataku słownikowego.
Zrób to sam — łamanie haseł punktów dostępowych metodą ataku typu brute-force Bazując na poprzednim ćwiczeniu, spróbuj teraz zmienić domyślne hasło punktu dostępowego na coś trudnego do odgadnięcia (możesz również wybrać jakieś bardziej złożone hasło ze słownika), a następnie sprawdź, czy możesz je złamać metodą brutalnej siły (atak typu brute-force).
109
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Przystępując do testowania, powinieneś ograniczyć długość hasła i zakres używanych znaków, tak aby atak zakończył się powodzeniem w rozsądnym czasie. Jednym z najpopularniejszych narzędzi używanych do łamania uwierzytelniania HTTP jest pakiet Hydra, który znajdziesz w dystrybucji systemu Kali Linux.
Ataki typu odmowa usługi (DoS) Bezprzewodowe sieci WLAN są bardzo podatne na ataki typu odmowa usługi (ang. DoS — Denial of Service), przeprowadzane przy użyciu różnych technik, takich jak: Ataki typu anulowanie uwierzytelnienia (ang. Deauthentication attacks). Ataki typu anulowanie skojarzenia (ang. Disassociation attacks). Ataki typu CTS-RTS (ang. Clear-to-Send/Ready-to-Send). Zakłócanie lub zagłuszanie sygnału sieci bezprzewodowej. Ze względu na ograniczenia zakresu zagadnień omawianych w naszej książce w tym rozdziale będziemy się zajmować jedynie atakami typu anulowanie uwierzytelnienia, przeprowadzanymi na infrastrukturę sieci WLAN.
Czas na działanie — atak DoS typu anulowanie uwierzytelnienia Uważnie wykonaj polecenia opisane poniżej: 1. Używając przeglądarki sieciowej, połącz się z interfejsem zarządzania Twojego punktu dostępowego i skonfiguruj go tak, aby sieć korzystała z uwierzytelniania z otwartym dostępem, bez szyfrowania. Dzięki temu będziesz mógł bez problemu obserwować zawartość przesyłanych pakietów przy użyciu programu Wireshark.
2. Teraz podłącz uprawnionego klienta do punktu dostępowego. W oknie terminala, w którym działa polecenie airodump-ng, możesz zobaczyć, że połączenie jest aktywne — zobacz pierwszy rysunek na kolejnej stronie. 3. Przejdź do komputera, którego używasz do przeprowadzania ataków, i przy użyciu polecenia aireplay-ng wykonaj selektywny atak typu anulowanie uwierzytelnienia — zobacz drugi rysunek na kolejnej stronie. 110
Rozdział 5. • Ataki na infrastrukturę sieci WLAN
111
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
4. Zwróć uwagę, że wybrany klient całkowicie odłącza się od punktu dostępowego. W razie potrzeby możesz to łatwo zweryfikować w oknie terminala, w którym działa polecenie airodump-ng.
5. Jeżeli do przeglądania ruchu w sieci używasz programu Wireshark, powinieneś zauważyć dużą liczbę pakietów typu anulowanie uwierzytelnienia (ang. Deauthentication), które przed chwilą wysłałeś, co zostało pokazane na pierwszym rysunku na kolejnej stronie. 6. W razie potrzeby można dokonać podobnego ataku na wszystkie klienty danej sieci. Aby to zrobić, powinieneś, podszywając się pod punkt dostępowy, wysłać rozgłoszeniowy pakiet anulowania uwierzytelnienia (ang. broadcast deauthentication packet), co w efekcie spowoduje wymuszenie rozłączenia wszystkich klientów — zobacz drugi rysunek na kolejnej stronie.
112
Rozdział 5. • Ataki na infrastrukturę sieci WLAN
113
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Co się stało? W tym ćwiczeniu udało Ci się pomyślnie rozesłać pakiety anulowania uwierzytelnienia zarówno do punktu dostępowego, jak i do wybranego klienta sieci. Rezultatem takiej operacji są rozłączenie klienta i całkowita utrata przez niego komunikacji z punktem dostępowym. W dalszej części wysyłałeś rozgłoszeniowe pakiety anulowania uwierzytelnienia do wszystkich klientów sieci, co skutkowało tym, że wszystkie klienty zostały odłączone od punktu dostępowego i żaden z nich nie mógł ponownie nawiązać połączenia. Warto zauważyć, że w przypadku anulowania uwierzytelnienia klient usiłuje od razu ponownie połączyć się z punktem dostępowym, dlatego aby atak odmowy usługi (DoS) był skuteczny, pakiety anulowania uwierzytelnienia muszą być wysyłane przez cały czas. Opisany atak jest jednym z najprostszych do przeprowadzenia, ale jego skutki są dewastujące. Taki atak przeprowadzony na rzeczywistą, słabo zabezpieczoną sieć może bez trudu powalić ją na kolana.
Zrób to sam — ataki typu anulowanie skojarzenia W ramach ćwiczeń powinieneś teraz przy użyciu narzędzi dostępnych w dystrybucji Kali Linux przeprowadzić atak typu anulowanie skojarzenia na sieć Wireless Lab. Czy istnieje możliwość przeprowadzenia rozgłoszeniowego ataku typu anulowanie skojarzenia?
Złośliwy bliźniak i fałszowanie adresów MAC Jednym z najbardziej skutecznych i niebezpiecznych ataków na infrastrukturę sieci WLAN jest atak typu złośliwy bliźniak (ang. evil twin). Cała idea tego ataku polega na zainstalowaniu kontrolowanego przez napastnika punktu dostępowego w zasięgu atakowanej sieci WLAN, który będzie rozgłaszał sieć o takim samym identyfikatorze SSID, co atakowana sieć. W takiej sytuacji wielu klientów bezprzewodowych może w dobrej wierze podłączyć się do takiego „złośliwego bliźniaka” z pełnym przekonaniem, że stanowi on normalną część sieci bezprzewodowej ich organizacji czy przedsiębiorstwa. Po uzyskaniu połączenia z klientem atakowanej sieci napastnik może przystąpić do ataku typu Man-in-the-Middle (człowiek pośrodku) i w zupełnie przezroczysty dla klienta sposób przekazywać ruch z powrotem do atakowanej sieci, oczywiście przechwytując po drodze całą komunikację. Ataki typu Man-in-the-Middle omówimy bardziej szczegółowo w jednym z kolejnych rozdziałów. W rzeczywistym scenariuszu napastnik będzie starał się przeprowadzić taki atak w pobliżu i w zasięgu atakowanej sieci, dzięki czemu użytkownicy niezamierzenie i zupełnie nieświadomie będą się łączyć z kontrolowanym przez niego punktem dostępowym.
114
Rozdział 5. • Ataki na infrastrukturę sieci WLAN
Złośliwy bliźniak, posiadający taki sam (oczywiście sfałszowany!) adres MAC jak oryginalny, autoryzowany punkt dostępowy, staje się jeszcze trudniejszy do wykrycia i zneutralizowania. Właśnie przy takim ataku do gry wchodzą metody fałszowania adresów MAC. W kolejnym doświadczeniu pokażemy, w jaki sposób można utworzyć złośliwego bliźniaka, który będzie dodatkowo udawał swojego „legalnego brata” dzięki sfałszowanemu adresowi MAC.
Czas na działanie — złośliwy bliźniak ze sfałszowanym adresem MAC Aby to zrobić, powinieneś uważnie wykonać polecenia opisane niżej: 1. Użyj polecenia airodump-ng do odszukania identyfikatorów BSSID oraz ESSID punktu dostępowego, który będzie emulował nasz złośliwy bliźniak.
115
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
2. Podłącz uprawnionego klienta do punktu dostępowego.
3. Korzystając z uzyskanych informacji, utwórz teraz nowy punkt dostępowy, który będzie miał taki sam identyfikator ESSID, ale inny identyfikator BSSID oraz inny adres MAC. Aby to zrobić, użyj polecenia airbase-ng, tak jak przedstawiono — na pierwszym rysunku na kolejnej stronie (pamiętaj, że w nowszych wersjach tego polecenia mogą występować drobne różnice w sposobie użycia). 4. Nowy punkt dostępowy pojawi się również w oknie terminala, w którym będzie działać polecenie airodump-ng. Aby je uruchomić, otwórz nowe okno terminala i wpisz polecenie przedstawione poniżej: airodump-ng --channel 11 wlan0
Wyniki działania tego polecenia zostały przedstawione na drugim rysunku na kolejnej stronie.
116
Rozdział 5. • Ataki na infrastrukturę sieci WLAN
117
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
5. Teraz wyślij do klienta pakiet anulowania uwierzytelnienia, dzięki czemu odłączy się on od punktu dostępowego i natychmiast będzie próbował połączyć się jeszcze raz.
6. Jeżeli nowy punkt dostępowy (złośliwy bliźniak) znajduje się bliżej klienta niż oryginalny, sygnał naszego nowego punktu będzie silniejszy i klient podłączy się do złośliwego bliźniaka. 7. W razie potrzeby możesz również sfałszować identyfikator BSSID oraz adres MAC oryginalnego punktu dostępowego, co sprawi, że złośliwy bliźniak będzie jeszcze trudniejszy do wykrycia. Aby to zrobić, powinieneś wykonać polecenie przedstawione poniżej: airbase-ng -a --essid "Wireless Lab" -c 11 mon0
8. Jeżeli teraz spojrzysz na wyniki działania polecenia airodump-ng, przekonasz się, że naszego złośliwego bliźniaka praktycznie nie da się wykryć — zobacz pierwszy rysunek na kolejnej stronie. 9. Nawet używając polecenia airodump-ng, nie jesteś w stanie zauważyć, że na tym samym kanale działają dwa różne fizyczne punkty dostępowe. Jak widać, taka konfiguracja jest najbardziej efektywną i jednocześnie najbardziej niebezpieczną formą złośliwego bliźniaka. 118
Rozdział 5. • Ataki na infrastrukturę sieci WLAN
Co się stało? Właśnie utworzyłeś złośliwego bliźniaka, którego umieściłeś w autoryzowanej sieci Wireless Lab, a następnie pomyślnie przeprowadziłeś atak typu anulowanie uwierzytelnienia, dzięki czemu uprawniony klient w dobrej wierze podłączył się do kontrolowanego przez nas punktu dostępowego zamiast do rzeczywistego, oryginalnego punktu dostępowego swojej sieci. Należy jednak zauważyć, że jeżeli oryginalny punkt dostępowy korzysta z szyfrowania typu WEP czy WPA, przeprowadzenie takiego ataku, w którym dalej następuje podsłuchiwanie wszystkich przesyłanych pakietów, może być znacznie trudniejsze. W jednym z kolejnych rozdziałów pokażemy, w jaki sposób, wykorzystując tylko połączenie z klientem, można przeprowadzić atak typu Caffe Latte, pozwalający na złamanie klucza WEP.
Zrób to sam — złośliwy bliźniak i skakanie po kanałach Wróć do konfiguracji wykorzystywanej w poprzednim ćwiczeniu, uruchom złośliwego bliźniaka na innych kanałach i spróbuj zaobserwować, jak klient po rozłączeniu będzie przełączał się na inne kanały, aby w końcu połączyć się z punktem dostępowym. Co decyduje o tym, na jaki kanał przełączy się klient pragnący połączyć się z punktem dostępowym? Czy jest to siła sygnału? Spróbuj samodzielnie poeksperymentować i znajdź odpowiedź na to pytanie.
119
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Nieautoryzowany punkt dostępowy Nieautoryzowany punkt dostępowy (ang. rogue access point) to punkt dostępowy znajdujący się pod kontrolą napastnika, który jest podłączony do autoryzowanej sieci bezprzewodowej. Zazwyczaj taki punkt dostępowy jest wykorzystywany przez napastnika jako tylne wejście (ang. backdoor entry), pozwalające mu na ominięcie wszystkich zabezpieczeń atakowanej sieci. Oznacza to, że takie zabezpieczenia jak zapory sieciowe (ang. firewalls), systemy wykrywania włamań (ang. intrusion prevention systems) i inne, których zadaniem jest ochrona zewnętrznego perymetru sieci, nie będą w stanie zapobiec podłączeniu takiego napastnika do sieci. W praktyce takie nieautoryzowane punkty dostępowe najczęściej korzystają z uwierzytelniania z otwartym dostępem, bez szyfrowania. Nieautoryzowany punkt dostępowy może zostać utworzony na dwa sposoby: Nieautoryzowane zainstalowanie fizycznego punktu dostępowego w autoryzowanej sieci bezprzewodowej. Tutaj wszystko jest jasne i przeprowadzenie takiego eksperymentu pozostawiamy Tobie. Warto jednak zauważyć, że takie przedsięwzięcie jest związane z przełamaniem fizycznego bezpieczeństwa autoryzowanej atakowanej sieci. Utworzenie programowego nieautoryzowanego punktu dostępowego i utworzenie mostu sieciowego łączącego go z lokalną siecią Ethernet. Takie rozwiązanie pozwala w praktyce na przemianę dowolnego laptopa działającego w autoryzowanej sieci w nieautoryzowany punkt dostępowy. Właśnie takie rozwiązanie bardziej szczegółowo omówimy w kolejnym doświadczeniu.
Czas na działanie — nieautoryzowany punkt dostępowy Aby to zrobić, uważnie wykonaj polecenia opisane poniżej: 1. Najpierw przy użyciu polecenia airbase-ng uruchom nieautoryzowany punkt dostępowy i nadaj mu identyfikator ESSID Rogue — zobacz pierwszy rysunek na kolejnej stronie. 2. Teraz powinieneś utworzyć most sieciowy pomiędzy interfejsem sieci Ethernet (będącym częścią sieci autoryzowanej) i naszym nieautoryzowanym punktem dostępowym. W tym celu najpierw musimy zainstalować pakiet narzędziowy bridge-utils, a następnie utworzyć interfejs sieciowy pełniący funkcję mostu, któremu nadamy nazwę WiFi-Bridge. Aby to zrobić, powinieneś wykonać polecenia przedstawione poniżej: apt-get install bridge-utils brctl addbr Wifi-Bridge
Wyniki działania tych poleceń zostały pokazane na drugim rysunku na kolejnej stronie.
120
Rozdział 5. • Ataki na infrastrukturę sieci WLAN
121
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
3. Następnie dodaj do mostu zarówno interfejs Ethernet, jak i wirtualny interfejs at0 utworzony przez polecenie airbase-ng. Aby to zrobić, powinieneś wykonać polecenia przedstawione poniżej: brctl addif Wifi-Bridge eth0 brctl addif Wifi-Bridge at0
Wyniki działania tych poleceń zostały pokazane na kolejnym rysunku.
4. W kolejnym etapie musimy uaktywnić oba interfejsy, co spowoduje uaktywnienie naszego mostu sieciowego. Aby to zrobić, wykonaj polecenia przedstawione poniżej: ifconfig eth0 0.0.0.0 up ifconfig at0 0.0.0.0 up
Sposób wywołania obu poleceń został pokazany na kolejnym rysunku.
122
Rozdział 5. • Ataki na infrastrukturę sieci WLAN
5. Teraz pozostaje jeszcze tylko uaktywnić przekazywanie pakietów IP (ang. IP forwarding) w jądrze systemu, aby upewnić się, że pakiety są przesyłane tak, jak sobie tego życzysz. Aby to zrobić, powinieneś wykonać polecenie przedstawione poniżej: echo 1 > /proc/sys/net/ipv4/ip_forward
Sposób wywołania tego polecenia został pokazany na pierwszym rysunku na kolejnej stronie. 6. Świetnie! Gotowe! Od tej chwili każdy klient bezprzewodowy, który podłączy się do naszego nieautoryzowanego punktu dostępowego, będzie miał pełny dostęp do autoryzowanej sieci komputerowej za pośrednictwem mostu sieciowego WiFi-Bridge, łączącego sieć kablową z nieautoryzowanym połączeniem bezprzewodowym. Aby to zweryfikować, najpierw podłącz klienta do nieautoryzowanego punktu dostępowego Rogue. W systemie Vista takie połączenie może wyglądać tak jak na drugim rysunku na kolejnej stronie.
123
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
124
Rozdział 5. • Ataki na infrastrukturę sieci WLAN
7. Zwróć uwagę, że klient otrzymuje teraz adres IP z serwera DHCP działającego w autoryzowanej sieci LAN.
8. Od tej chwili możesz z poziomu nieautoryzowanego klienta bezprzewodowego uzyskać dostęp do dowolnego hosta znajdującego się w autoryzowanej sieci kablowej. W przykładzie przedstawionym poniżej używamy polecenia ping do sprawdzenia połączenia z domyślną bramą sieciową.
125
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Co się stało? W tym ćwiczeniu utworzyłeś nieautoryzowany punkt dostępowy i wykorzystałeś go do utworzenia mostu sieciowego między autoryzowaną siecią LAN i nieautoryzowanym połączeniem bezprzewodowym. Jak łatwo zauważyć, takie rozwiązanie stanowi bardzo poważne zagrożenie dla bezpieczeństwa sieci LAN, ponieważ pozwala każdemu potencjalnemu napastnikowi na uzyskanie dostępu do hostów w sieci LAN z pominięciem jej zabezpieczeń.
Zrób to sam — nieautoryzowany punkt dostępowy z szyfrowaniem WPA/WPA2 Przekonaj się, czy potrafisz utworzyć nieautoryzowany punkt dostępowy, wykorzystujący szyfrowanie WPA/WPA2, dzięki któremu będzie trudniejszy do wykrycia i będzie bardziej przypominał część autoryzowanej infrastruktury sieci.
Szybki quiz — ataki na infrastrukturę sieci WLAN 1. Jakiej metody szyfrowania najczęściej używają nieautoryzowane punkty dostępowe? a) Żadnej. b) WEP. c) WPA. d) WPA2. 2. Używanie w metodzie złośliwego bliźniaka takiego samego adresu MAC jak autoryzowany punkt dostępowy powoduje, że: a) Złośliwy bliźniak staje się jeszcze trudniejszy do wykrycia. b) Klienty są zmuszone do podłączenia się do złośliwego bliźniaka. c) Zwiększa się siła sygnału nadawanego przez punkt dostępowy. d) Żadna z powyższych odpowiedzi. 3. Ataki typu odmowa usługi (DoS): a) Powodują zmniejszenie ogólnej przepustowości sieci. b) Nie są wymierzone w klienty. c) Mogą być przeprowadzane wyłącznie w sytuacji, kiedy znamy klucz WEP/WPA/WPA2 atakowanej sieci. d) Wszystkie z powyższych odpowiedzi. 4. Nieautoryzowane punkty dostępowe: a) Pozwalają na utworzenie tylnego wejścia do autoryzowanej sieci komputerowej. b) Wykorzystują wyłącznie szyfrowanie WPA2. c) Mogą być utworzone programowo lub poprzez instalację urządzenia fizycznego. d) Odpowiedzi (a) i (c).
126
Rozdział 5. • Ataki na infrastrukturę sieci WLAN
Podsumowanie W tym rozdziale omawialiśmy następujące metody przełamywania zabezpieczeń infrastruktury bezprzewodowych sieci LAN:
Wykorzystywanie domyślnych kont dostępu i haseł w punktach dostępowych. Ataki typu odmowa usługi (DoS).
Podstawione punkty dostępowe udające legalne urządzenia (ataki typu evil twins) oraz fałszowanie adresów MAC punktów dostępowych. Nieautoryzowane punkty dostępowe w sieciach korporacyjnych.
W kolejnym rozdziale będziemy zajmować się różnymi sposobami ataków na klienty bezprzewodowej sieci LAN. Co ciekawe, większość administratorów uważa, że bezpieczeństwo klientów to nie jest problem, którym należałoby się przejmować. Jak się przekonamy, nic nie może być dalsze od prawdy.
127
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
128
6 Ataki na klienta sieci WLAN „System informatyczny jest tak bezpieczny, jak jego najsłabsze ogniwo”. Słynne motto specjalistów z zakresu bezpieczeństwa IT Wielu specjalistów zajmujących się testami penetracyjnymi koncentruje się na infrastrukturze sieci WLAN i nie zwraca uwagi na klienty sieci bezprzewodowej. Warto jednak zauważyć, że napastnik może również uzyskać dostęp do atakowanej sieci poprzez przełamanie zabezpieczeń samego klienta sieci bezprzewodowej. W tym rozdziale przeniesiemy ciężar naszych zainteresowań z infrastruktury sieci WLAN na klienty bezprzewodowe, które mogą być albo podłączone do sieci, albo odizolowane po anulowaniu skojarzenia. Przyjrzymy się różnym technikom ataków, których celem mogą być klienty sieci bezprzewodowych.
Omawiać będziemy między innymi następujące zagadnienia: Ataki typu Honeypot i Misassociation. Atak typu Caffe Latte. Ataki typu Deauthentication i Disassociation. Atak typu Hirte. Łamanie klucza WPA PSK przez atak na odizolowanego klienta
(bez punktu dostępowego).
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Ataki typu Honeypot i Misassociation W konfiguracji domyślnej klient sieci bezprzewodowej, taki jak na przykład laptop, automatycznie sonduje dostępne sieci bezprzewodowe w poszukiwaniu tej, do której był podłączony poprzednim razem. W przypadku komputerów pracujących w systemie Windows nazwy takich sieci przechowywane są na liście nazywanej PNL (ang. Preferred Network List; lista preferowanych sieci). Oczywiście, oprócz sieci preferowanych po przeprowadzeniu wyszukiwania klient zazwyczaj wyświetla na ekranie listę wszystkich dostępnych sieci bezprzewodowych znajdujących się w jego zasięgu. Potencjalny napastnik może w takiej sytuacji wybrać jedno z kilku rozwiązań: Pasywnie monitorować sondowanie przeprowadzane przez klienta i następnie uruchomić fałszywy punkt dostępowy z takim identyfikatorem ESSID, jakiego poszukuje klient. Taka operacja zazwyczaj powoduje, że klient w dobrej wierze podłącza się do takiego fałszywego, kontrolowanego przez napastnika punktu dostępowego, gdyż jest przekonany, że łączy się z prawdziwą, autoryzowaną siecią. Utworzyć fałszywy punkt dostępowy z takim samym identyfikatorem ESSID, jak sieci w najbliższym otoczeniu, co może wprowadzić klienta w błąd i spowodować, że zamiast do właściwej sieci klient podłączy się do podstawionego punktu dostępowego kontrolowanego przez napastnika. Takie ataki są bardzo łatwe do przeprowadzenia zwłaszcza w miejscach publicznych, takich jak kawiarnie czy lotniska, gdzie użytkownicy mogą poszukiwać sieci Wi-Fi, z której mogliby skorzystać na przykład w celu odebrania poczty elektronicznej. Wykorzystać pozyskane informacje do przeprowadzenia analizy zachowania i nawyków użytkownika będącego celem ataku, o czym opowiemy w dalszej części książki. Opisane powyżej scenariusze są nazywane atakami typu Honeypot (z ang. garniec miodu) i ogólnie rzecz biorąc, polegają na spowodowaniu czy wręcz wymuszeniu skojarzenia klienta z fałszywym punktem dostępowym, kontrolowanym przez napastnika (ang. Misassociation), przy jednoczesnym przekonaniu klienta, że korzysta z prawdziwej, autoryzowanej sieci. W kolejnym ćwiczeniu pokażemy, jak przeprowadzić oba rodzaje ataków w naszym laboratorium.
130
Rozdział 6. • Ataki na klienta sieci WLAN
Czas na działanie — przeprowadzanie ataków typu Misassociation Uważnie wykonaj polecenia opisane poniżej: 1. W poprzednich ćwiczeniach używałeś klienta, który łączył się z punktem dostępowym sieci Wireless Lab. W tym ćwiczeniu włącz samego klienta, bez włączania punktu dostępowego sieci Wireless Lab. Po uruchomieniu klienta otwórz okno terminala, wykonaj polecenie airodump-ng mon0 i sprawdź wyniki jego działania. Bardzo szybko przekonasz się, że klient nie jest skojarzony z żadnym punktem dostępowym (ang. not associated mode) i sonduje dostępne sieci w poszukiwaniu punktu dostępowego sieci Wireless Lab oraz innych sieci, których identyfikatory są przechowywane w zapisanym profilu.
2. Aby lepiej zrozumieć, co tutaj się dzieje, uruchom program Wireshark i rozpocznij nasłuchiwanie pakietów na interfejsie mon0. Jak można się było spodziewać, zapewne zobaczysz całą masę najróżniejszych pakietów, które nie mają żadnego związku z naszą analizą. Aby wyświetlić tylko to, co Cię interesuje, powinieneś w programie Wireshark utworzyć filtr pokazujący wyłącznie pakiety sondowania (ang. Probe Requests packets) nadchodzące z klienta o adresie MAC, którego właśnie używasz.
131
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
3. W naszym przypadku wspomniany filtr będzie wyglądał następująco: wlan.fc.type_subtype == 0x04 && wlan.sa == . Po jego uaktywnieniu w oknie programu Wireshark powinny się pojawiać wyłącznie pakiety z identyfikatorami SSID poprzednio używanych sieci. 4. Teraz spróbuj uruchomić fałszywy punkt dostępowy sieci Wireless Lab. Aby to zrobić, na komputerze wykorzystywanym do testów penetracyjnych otwórz okno terminala i wykonaj polecenie przedstawione poniżej: airbase-ng -c 3 -e "Wireless Lab" mon0
132
Rozdział 6. • Ataki na klienta sieci WLAN
5. W ciągu kilku najbliższych minut poszukujący sieci klient automatycznie podłączy się do naszego podstawionego punktu dostępowego. To doświadczenie pokazuje, jak łatwo można przechwycić takiego nieskojarzonego klienta.
6. Drugim scenariuszem, jaki wypróbujesz w tym ćwiczeniu, jest utworzenie fałszywego punktu dostępowego sieci Wireless Lab w obecności prawdziwego, autoryzowanego punktu dostępowego. W tym celu włącz punkt dostępowy i upewnij się, że sieć Wireless Lab jest dostępna dla klientów. Na potrzeby tego doświadczenia ustawimy punkt dostępowy do pracy na kanale 3. Pozwól teraz klientowi podłączyć się do punktu dostępowego. Aby sprawdzić, czy próba połączenia zakończyła się sukcesem, możesz użyć polecenia airodump-ng, tak jak to zostało zilustrowane na kolejnym rysunku.
7. Teraz włącz fałszywy punkt dostępowy sieci Wireless Lab.
8. Zwróć uwagę, że nasz klient jest nadal podłączony do prawdziwego punktu dostępowego sieci Wireless Lab.
133
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
9. Aby przeprowadzić atak, podszyj się teraz pod prawdziwy punkt dostępowy i wyślij do klienta komunikat o anulowaniu uwierzytelniania, co wymusi rozłączenie klienta.
10. Jeśli sygnał nadawany przez nasz punkt dostępowy jest silniejszy niż oryginalnego punktu dostępowego, klient podczas próby przywrócenia połączenia automatycznie podłączy się do fałszywego punktu dostępowego.
11. Aby zweryfikować połączenie, możesz uruchomić polecenie airodump-ng, a w wynikach jego działania zobaczysz, że atakowany klient jest teraz skojarzony z naszym fałszywym punktem dostępowym.
134
Rozdział 6. • Ataki na klienta sieci WLAN
Co się stało? W tym ćwiczeniu pomyślnie przeprowadziłeś atak typu Honeypot, najpierw korzystając z listy domyślnych sieci sondowanych przez klienta, a później używając takiego samego identyfikatora ESSID, jak punkt dostępowy z sieci znajdującej się w pobliżu. W tym drugim przypadku wykorzystałeś to, że fałszywy punkt dostępowy znajdował się bliżej klienta niż rzeczywisty, dlatego z punktu widzenia klienta jego sygnał był silniejszy od oryginału i po wymuszonej utracie połączenia z oryginalnym punktem dostępowym klient automatycznie podłączył się do fałszywego.
Zrób to sam — zmuszanie klienta do połączenia się z punktem dostępowym Honeypot Wróćmy na chwilę do scenariusza z poprzedniego ćwiczenia. Co możesz zrobić, jeżeli po wymuszonej utracie połączenia z oryginalnym punktem dostępowym klient nie podłączy się automatycznie do fałszywego punktu dostępowego? W takiej sytuacji można wysłać do klienta pakiet anulowania uwierzytelnienia, co wymusi przerwanie połączenia z punktem dostępowym. Jeżeli sygnał fałszywego punktu dostępowego będzie silniejszy niż oryginalnego, próba przywrócenia połączenia spowoduje podłączenie do fałszywego punktu dostępowego. Spróbuj samodzielnie przetestować taki scenariusz, podłączając klienta do oryginalnego punktu dostępowego, a następnie wymuszając przerwanie połączenia i skojarzenie klienta z fałszywym punktem dostępowym Honeypot.
Atak typu Caffe Latte Podczas ćwiczenia ataku typu Honeypot mogłeś zauważyć, że klient nieustannie sonduje dostępne sieci w poszukiwaniu takich, do których poprzednio był już podłączony. Jeżeli klient podłączył się wcześniej do punktu dostępowego sieci wykorzystującej protokół WEP, system Windows i wiele innych systemów operacyjnych buforują i przechowują klucz WEP. Kiedy następnym razem klient podłącza się do tej samej sieci bezprzewodowej, menedżer połączeń bezprzewodowych systemu Windows do nawiązania połączenia automatycznie używa zapisanego wcześniej klucza WEP. Atak typu Caffe Latte został opracowany przez autora tej książki i po raz pierwszy zaprezentowany publicznie na konferencji Toorcon 9 w San Diego (Stany Zjednoczone). Atak typu Caffe Latte jest atakiem na protokół WEP, który pozwala napastnikowi na uzyskanie klucza WEP atakowanej sieci poprzez analizę samego klienta. W czasie przeprowadzania ataku klient nie musi ani być podłączony, ani znajdować się w pobliżu atakowanej sieci — klucz WEP sieci jest uzyskiwany bezpośrednio dzięki odpowiedniemu wykorzystaniu odizolowanego klienta. W kolejnym ćwiczeniu pokażemy, jak w praktyce posłużyć się atakiem typu Caffe Latte do uzyskania klucza WEP atakowanej sieci.
135
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Czas na działanie — przeprowadzanie ataku typu Caffe Latte Aby to zrobić, uważnie wykonaj polecenia opisane poniżej: 1. Najpierw musisz skonfigurować punkt dostępowy sieci Wireless Lab tak, aby używał protokołu WEP z kluczem ABCDEFABCDEFABCDEF12 (hex).
2. Następnie podłącz naszego klienta do tej sieci i przy użyciu polecenia airodump-ng upewnij się, że próba połączenia zakończyła się sukcesem, tak jak pokazuje rysunek poniżej.
136
Rozdział 6. • Ataki na klienta sieci WLAN
3. Teraz odłącz punkt dostępowy i upewnij się, że klient nie jest skojarzony z żadnym punktem dostępowym i sonduje dostępne sieci w poszukiwaniu sieci Wireless Lab (wykorzystującej protokół WEP). 4. Poleceniem airbase-ng uaktywnij fałszywy punkt dostępowy z identyfikatorem SSID sieci Wireless Lab, używając argumentów wywołania przedstawionych na kolejnym rysunku.
5. Natychmiast po podłączeniu się klienta do punktu dostępowego polecenie airbase-ng rozpoczyna atak typu Caffe Latte, co ilustruje poniższy rysunek.
6. Teraz wykonaj polecenie airodump-ng i rozpocznij zbieranie pakietów z fałszywego punktu dostępowego, tak jak robiłeś wcześniej, w ćwiczeniu omawiającym metody łamania klucza WEP.
7. Uruchom również polecenie aircrack-ng, podobnie jak robiłeś wcześniej, aby rozpocząć proces łamania klucza WEP. Aby to zrobić, w oknie terminala wpisz polecenie aircrack-ng nazwa_pliku, gdzie nazwa_pliku to nazwa pliku utworzonego poleceniem airodump-ng.
137
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Co się stało? Właśnie udało Ci się pomyślnie uzyskać klucz WEP atakowanej sieci, wykorzystując do tego samego klienta, który w momencie ataku nie musi być podłączony do punktu dostępowego sieci ani nawet znajdować się w jej pobliżu, co doskonale ilustruje siłę ataku typu Caffe Latte. Ogólnie mówiąc, punkt dostępowy bezprzewodowej sieci z zabezpieczeniem WEP nie musi udowadniać klientowi, że zna klucz szyfrowania WEP, aby otrzymywać od niego zaszyfrowane pakiety danych. Po podłączeniu się do nowej sieci pierwszym elementem komunikacji wysyłanej przez klienta do routera będzie zawsze żądanie ARP o przydzielenie adresu IP. Atak typu Caffe Latte opiera się na wykorzystaniu metody bit-flipping oraz przechwytywaniu i ponownym przekazywaniu pakietów ARP wysyłanych przez klienta bezprzewodowego po udanym skojarzeniu z fałszywym, kontrolowanym przez napastnika punktem dostępowym. Takie „odwrócone” żądania ARP powodują odsyłanie przez klienta kolejnych pakietów ARP z odpowiedziami. Metoda bit-flipping polega na pobieraniu zaszyfrowanych wartości i odpowiednim modyfikowaniu ich w celu otrzymania innych zaszyfrowanych wartości. Dzięki takiemu rozwiązaniu potencjalny napastnik może być w stanie pobrać zaszyfrowane żądanie ARP i z dużą dozą prawdopodobieństwa utworzyć poprawnie zaszyfrowaną odpowiedź ARP. Po odesłaniu do klienta poprawnej odpowiedzi ARP możemy przez cały czas powtarzać wysyłanie takiego pakietu do klienta, wymuszając na nim generowanie dużego ruchu sieciowego, który będzie nam potrzebny do złamania klucza WEP. Zwróć uwagę, że wszystkie pakiety są zaszyfrowane przy użyciu klucza WEP przechowywanego przez klienta, jednak po przechwyceniu wystarczającej liczby pakietów danych polecenie aircrack-ng jest w stanie złamać i odtworzyć klucz WEP.
Zrób to sam — praktyka czyni mistrza! Spróbuj zmienić klucz WEP i powtórzyć atak. Atak typu Caffe Latte jest atakiem bardzo złożonym i jego pomyślne przeprowadzenie wymaga sporej praktyki. Dobrym rozwiązaniem będzie wykorzystanie programu Wireshark do monitorowania ruchu sieciowego generowanego podczas ataku.
Ataki typu Deauthentication i Disassociation W poprzednich rozdziałach omawialiśmy już atak typu anulowanie uwierzytelnienia (ang. Deauthentication) w kontekście punktu dostępowego. W tym rozdziale ponownie zajmiemy się tym atakiem, ale tym razem w kontekście klienta. W kolejnym ćwiczeniu będziesz wysyłać pakiety anulowania uwierzytelnienia do klienta w celu zerwania połączenia nawiązanego między nim a punktem dostępowym.
138
Rozdział 6. • Ataki na klienta sieci WLAN
Czas na działanie — anulowanie uwierzytelnienia klienta Aby to zrobić, uważnie wykonaj polecenia opisane poniżej: 1. Zanim rozpoczniesz ćwiczenie, musisz ponownie włączyć punkt dostępowy sieci Wireless Lab, który po poprzednim ćwiczeniu powinien być skonfigurowany do korzystania z protokołu WEP. Pozostaw taką konfigurację, aby udowodnić, że atak na połączenie między klientem a punktem dostępowym jest możliwy nawet w sytuacji, kiedy takie połączenie jest szyfrowane. Po włączeniu punktu dostępowego otwórz okno terminala i przy użyciu polecenia airodump-ng sprawdź, czy punkt dostępowy działa poprawnie.
2. Podłącz teraz klienta do punktu dostępowego i sprawdź połączenie przy użyciu polecenia airodump-ng.
3. Uruchom polecenie aireplay-ng, za pomocą którego przeprowadzisz atak na połączenie między klientem a punktem dostępowym.
4. Klient zostaje odłączony od punktu dostępowego i próbuje ponownie nawiązać połączenie, co można zweryfikować przy użyciu programu Wireshark, tak jak to robiłeś poprzednio.
139
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
5. Jak widać, nawet w przypadku szyfrowania WEP jest możliwe przeprowadzenie ataku polegającego na anulowaniu uwierzytelnienia klienta i odłączeniu go od punktu dostępowego. Co ciekawe, dokładnie w taki sam sposób możesz przeprowadzić ten atak na sieć wykorzystującą szyfrowanie WPA/WPA2. Aby się o tym przekonać, zmień teraz konfigurację punktu dostępowego tak, aby korzystał z szyfrowania WPA, i sprawdź, czy uda Ci się pomyślnie przeprowadzić atak.
6. Podłącz klienta do punktu dostępowego i upewnij się, że połączenie działa poprawnie.
140
Rozdział 6. • Ataki na klienta sieci WLAN
7. Następnie uruchom polecenie aireplay-ng, za pomocą którego ponownie przeprowadzisz atak na połączenie między klientem a punktem dostępowym.
Co się stało? Właśnie przekonałeś się, w jaki sposób możesz odłączyć wybranego klienta od punktu dostępowego za pomocą pakietów anulowania uwierzytelnienia (ang. deauthentication frames), nawet wtedy, gdy sieć działa z szyfrowaniem WEP/WPA/WPA2. Atak został przeprowadzony poprzez wysyłanie pakietów anulowania uwierzytelnienia bezpośrednio do wybranego klienta (zamiast rozgłaszania pakietów u wszystkich klientów w sieci).
Zrób to sam — przeprowadzanie ataku typu anulowanie skojarzenia W poprzednim ćwiczeniu przerywaliśmy połączenie między klientem a punktem dostępowym, przeprowadzając atak typu anulowanie uwierzytelnienia (ang. Deauthentication). Spróbuj teraz samodzielnie przerwać takie połączenie, przeprowadzając atak typu anulowanie skojarzenia (ang. Disassociation).
Atak typu Hirte Widziałeś już, w jaki sposób przeprowadzić atak typu Caffe Latte. Atak typu Hirte jest jego rozszerzoną wersją, wykorzystującą techniki fragmentacji pakietów i pozwalającą na użycie pakietów niemal dowolnego typu. Więcej szczegółowych informacji na temat ataku typu Hirte znajdziesz na stronie internetowej twórców pakietu aircrack-ng: http://www.aircrack-ng.org/doku.php?id=hirte. W następnym ćwiczeniu użyjemy polecenia aircrack-ng do przeprowadzenia ataku typu Hirte na samego klienta.
Czas na działanie — łamanie klucza WEP poprzez atak typu Hirte Wykonaj polecenia przedstawione poniżej: 1. Używając polecenia airbase-ng, utwórz punkt dostępowy wykorzystujący protokół WEP, dokładnie tak, jak to zrobiliśmy podczas omawiania ataku typu Caffe Latte.
141
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Jedyna zmiana polega na tym, że zamiast opcji -L należy użyć opcji -N, która powoduje uruchomienie ataku typu Hirte.
2. Otwórz osobne okno terminala i uruchom w nim polecenie airodump-ng, którego zadaniem będzie przechwytywanie pakietów sieci Wireless Lab punktu dostępowego (Honeypot).
3. Polecenie airodump-ng rozpocznie monitorowanie ruchu sieciowego i zapisywanie przechwytywanych pakietów w pliku Hirte-01.cap.
4. Kiedy klient podłączy się do podstawionego punktu dostępowego, polecenie airbase-ng automatycznie rozpocznie przeprowadzanie ataku typu Hirte.
5. Teraz uruchom polecenie aircrack-ng, tak jak podczas ataku typu Caffe Latte, które po przechwyceniu i przetworzeniu odpowiedniej liczby pakietów złamie klucz szyfrowania WEP.
Co się stało? Przeprowadziłeś pomyślny atak typu Hirte na klienta WEP, który był całkowicie odizolowany od punktu dostępowego (znajdował się całkowicie poza zasięgiem sieci). Samo łamanie klucza odbywało się dokładnie tak samo, jak w przypadku ataku typu Caffe Latte.
142
Rozdział 6. • Ataki na klienta sieci WLAN
Zrób to sam — praktyka, praktyka, praktyka Aby nabrać wprawy w przeprowadzaniu tego typu ataków, powinieneś teraz kilka razy zmieniać klucze WEP klienta i przeprowadzać ataki w celu ich złamania. Podczas ćwiczenia może się zdarzyć, że aby wszystko działało poprawnie, będziesz musiał kilkakrotnie podłączać klienta do punktu dostępowego.
Łamanie klucza WPA PSK bez obecności punktu dostępowego W poprzednim rozdziale pokazywaliśmy, w jaki sposób za pomocą polecenia aircrack-ng można złamać klucz WPA/WPA2 PSK. Podstawowa idea takich ataków polega na przechwytywaniu pakietów wymienianych między klientem a punktem dostępowym podczas procesu czteroetapowego negocjowania uwierzytelnienia WPA i przeprowadzaniu ataku słownikowego na klucz szyfrowania. Pytanie za milion dolarów brzmi: czy można złamać klucz WPA PSK, atakując samego klienta, odizolowanego od punktu dostępowego? Pamiętaj, klient nie jest podłączony do punktu dostępowego ani nie znajduje się w zasięgu sieci! Aby odświeżyć sobie pamięć, powrócimy na chwilę do tego, jak przebiega proces czteroetapowej negocjacji uwierzytelnienia WPA:
143
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Jak pamiętasz, do złamania klucza WPA potrzebne są cztery parametry procesu czteroetapowej negocjacji uwierzytelnienia: wartość losowa ANonce generowana przez serwer (ang. Authenticator Nonce), wartość losowa SNonce generowana przez klienta-suplikanta (ang. Supplicant Nonce), adres MAC punktu dostępowego (czyli adres MAC serwera uwierzytelniającego) oraz adres MAC klienta bezprzewodowego (adres MAC suplikanta). Co ciekawe, w praktyce okazuje się, że w celu uzyskania tych danych nie musimy przechwycić wszystkich czterech pakietów negocjacji — równie dobrze możemy je uzyskać, przechwytując tylko pakiet pierwszy i drugi lub drugi i trzeci. Aby złamać klucz WPA PSK, należy uruchomić podstawiony punkt dostępowy (Honeypot), skonfigurowany do korzystania z szyfrowania WPA PSK; kiedy klient się do niego podłączy, można przechwycić tylko pierwszy i drugi komunikat negocjacji. Ponieważ nie znamy hasła PSK (tekstu szyfrującego), nie możemy już wysłać trzeciego komunikatu. Nie zmienia to już jednak niczego, ponieważ komunikaty 1 i 2 zawierają wszystkie informacje, jakie są nam niezbędne do rozpoczęcia procesu łamania klucza.
Czas na działanie — łamanie klucza WPA bez obecności punktu dostępowego 1. Najpierw utwórz podstawiony punkt dostępowy (Honeypot) sieci Wireless Lab, wykorzystujący szyfrowanie WPA PSK. Opcja -z 2 powoduje utworzenie punktu dostępowego WPA PSK korzystającego z protokołu TKIP.
144
Rozdział 6. • Ataki na klienta sieci WLAN
2. Następnie uruchom w nowym oknie terminala polecenie airodump-ng, którego zadaniem będzie przechwytywanie pakietów przesyłanych w sieci.
3. Teraz, kiedy klient poszukujący połączenia podłączy się do punktu dostępowego, rozpocznie się proces czteroetapowej negocjacji uwierzytelnienia, który jednak zostanie przerwany po wysłaniu drugiego komunikatu negocjacji, tak jak to opisywaliśmy nieco wcześniej — jednak na tym etapie udało nam się już przechwycić wszystkie pakiety niezbędne do przeprowadzenia ataku. 4. Teraz uruchom polecenie aircrack-ng, używając do przeprowadzenia ataku tego samego pliku słownika, co poprzednio. Po pewnym czasie hasło PSK zostanie złamane (o ile znajdowało się w użytym słowniku).
Co się stało? Właśnie udało Ci się złamać hasło WPA przez zaatakowanie wyłącznie klienta. Przeprowadzenie pomyślnego ataku jest możliwe, ponieważ mając tylko dwa pierwsze pakiety przesyłane w ramach czteroetapowej negocjacji uwierzytelnienia, posiadamy wszystkie informacje niezbędne do rozpoczęcia ataku słownikowego na hasło WPA.
Zrób to sam — łamanie klucza WPA bez obecności punktu dostępowego Żeby nabrać wprawy w tego typu atakach, powinieneś teraz kilka razy zmieniać klucze WPA klienta i przeprowadzać ataki w celu ich złamania. Podczas ćwiczenia może się zdarzyć, że aby wszystko działało poprawnie, będziesz musiał kilkakrotnie podłączać klienta do punktu dostępowego.
Szybki quiz — ataki na klienta 1. Jaki klucz szyfrowania można złamać, przeprowadzając atak typu Caffe Latte? a) Żaden. b) WEP. c) WPA. d) WPA2. 2. Podstawiony punkt dostępowy (Honeypot) najczęściej posiada następującą konfigurację: a) Brak szyfrowania, uwierzytelnianie z otwartym dostępem. b) Brak szyfrowania, uwierzytelnianie ze współdzielonym kluczem. c) Szyfrowanie WEP, uwierzytelnianie z otwartym dostępem. d) Żadną z powyższych.
145
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
3. Które z ataków wymienionych poniżej są atakami typu odmowa usługi (DoS)? a) Atak typu wymuszenie podstawionego skojarzenia (ang. Misassociation). b) Atak typu anulowanie uwierzytelnienia (ang. Deauthentication). c) Atak typu anulowanie skojarzenia (ang. Disassociation). d) Zarówno (b), jak i (c). 4. Przeprowadzenie ataku typu Caffe Latte jest możliwe, kiedy: a) Klient znajduje się w zasięgu sieci (punktu dostępowego). b) Klient przechowuje klucz WEP atakowanej sieci. c) Klient wykorzystuje szyfrowanie WEP o długości klucza co najmniej 128 bitów. d) Zarówno (a), jak i (c).
Podsumowanie Z tego rozdziału dowiedziałeś się, że klienty bezprzewodowe są również bardzo podatne na ataki takie jak Honeypot oraz Misassociation (wymuszanie podstawionego skojarzenia), ataki typu Caffe Latte (pozwalające na pozyskanie klucza sieci bezpośrednio od klienta), ataki typu anulowanie uwierzytelnienia oraz anulowanie skojarzenia (odmowa usługi, atak DoS), ataki typu Hirte (alternatywny sposób pozyskania klucza WEP bezpośrednio od klienta poszukującego połączenia) i wreszcie ataki pozwalające na złamanie hasła WPA PSK bez obecności punktu dostępowego. W kolejnym rozdziale będziemy wykorzystywali całą zdobytą do tej pory wiedzę do przeprowadzania różnych złożonych ataków zarówno na klienty bezprzewodowe, jak i na infrastrukturę sieci. Aby zobaczyć, co się za tym kryje, szybko przejdź na kolejną stronę!
146
7 Zaawansowane ataki na sieci WLAN „Poznaj siebie i poznaj wroga, dopiero wtedy twoje zwycięstwo nie będzie zagrożone”. Sun Tzu, Sztuka wojny Bardzo istotnym elementem podczas przeprowadzania testów penetracyjnych jest dogłębna znajomość zaawansowanych technik ataków wykorzystywanych przez hakerów, nawet jeżeli nie masz zamiaru posłużyć się takimi atakami w czasie testów. Ten rozdział jest poświęcony właśnie temu, jak potencjalny napastnik może przeprowadzić zaawansowane ataki na sieci bezprzewodowe.
Z tego rozdziału dowiesz się, w jaki sposób przeprowadzać zaawansowane ataki na sieci WLAN przy użyciu narzędzi i technik omawianych w poprzednich rozdziałach. Najbardziej skupimy się tutaj na atakach typu Man-in-the-Middle, których przeprowadzenie wymaga posiadania sporej wiedzy i doświadczenia praktycznego. Po przećwiczeniu takiego ataku użyjemy go jako bazy do przeprowadzania jeszcze bardziej wyrafinowanych i złożonych ataków, takich jak nieautoryzowane podsłuchiwanie ruchu sieciowego czy przechwytywanie sesji. W kolejnych ćwiczeniach będziemy się zajmować następującymi rodzajami ataków: Ataki typu MITM. Ataki typu podsłuchiwanie ruchu sieciowego, bazujące na ataku MITM. Ataki typu przechwytywanie sesji, bazujące na ataku MITM.
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Ataki typu Man-in-the-Middle Ataki typu MITM są prawdopodobnie najbardziej skutecznymi atakami na sieci bezprzewodowe. Istnieje wiele odmian i konfiguracji takich ataków. My skoncentrujemy się na najczęściej spotykanym typie, kiedy napastnik jest podłączony do sieci Internet za pomocą kablowej sieci LAN i tworzy fałszywy punkt dostępowy przy użyciu bezprzewodowej karty sieciowej zamontowanej w komputerze. Taki punkt dostępowy rozgłasza sieć bezprzewodową, której identyfikator SSID jest taki sam, jak identyfikator atakowanej sieci znajdującej się w pobliżu. Autoryzowany użytkownik atakowanej sieci może przypadkowo podłączyć się do takiego fałszywego punktu dostępowego (lub takie połączenie może zostać „wymuszone” dzięki zastosowaniu teorii silniejszego sygnału, o której mówiliśmy w poprzednich rozdziałach) i kontynuować działanie, gdyż będzie przekonany, że jest podłączony do prawdziwego punktu dostępowego swojej sieci. Od tej chwili napastnik może w zupełnie przezroczysty dla klienta sposób przekazywać cały jego ruch do sieci Internet, wykorzystując do tego most sieciowy utworzony pomiędzy interfejsem sieci kablowej oraz interfejsem sieci bezprzewodowej. Oczywiście, „po drodze” cały ruch klienta jest przechwytywany i uważnie obserwowany. W kolejnym doświadczeniu spróbujemy zasymulować taki atak.
Czas na działanie — atak typu Man-in-the-Middle Aby to zrobić, powinieneś uważnie wykonać polecenia opisane poniżej: 1. Aby przygotować środowisko do przeprowadzenia ataku typu Man-in-the-Middle, musisz na komputerze, którego używasz do przeprowadzania ataków, utworzyć programowy punkt dostępowy sieci o nazwie mitm. W tym celu powinieneś otworzyć okno terminala i wykonać polecenie przedstawione poniżej: airbase-ng --essid mitm -c 11 mon0:
Wyniki działania tego polecenia zostały pokazane na kolejnym rysunku.
2. Należy zauważyć, że polecenie airbase-ng po uruchomieniu tworzy interfejs at0 (interfejs TAP), który powinieneś traktować jako „kablową” stronę interfejsu programowego punktu dostępowego mitm.
148
Rozdział 7. • Zaawansowane ataki na sieci WLAN
3. Teraz na komputerze, którego używasz do przeprowadzenia ataku, musisz utworzyć most sieciowy, składający się z interfejsu kablowego (eth0) oraz interfejsu bezprzewodowego (at0). Aby to zrobić, powinieneś kolejno wykonać następujące polecenia: brctl addbr mitm-bridge brctl addif mitm-bridge eth0 brctl addif mitm-bridge at0 ifconfig eth0 0.0.0.0 up ifconfig at0 0.0.0.0 up
4. Do mostu sieciowego można przypisać adres IP i sprawdzić, czy połączenie z domyślną bramą sieciową działa prawidłowo. Warto zauważyć, że dokładnie to samo można zrobić przy użyciu DHCP. Aby przypisać adres IP do mostu sieciowego, w oknie terminala wpisz polecenie przedstawione poniżej: ifconfig mitm-bridge 192.168.0.199 up
Następnie za pomocą polecenia ping sprawdź połączenie z bramą domyślną 192.168.0.1, dzięki czemu możemy się upewnić się, że mamy połączenie z resztą sieci. 5. Kolejnym krokiem jest włączenie w jądrze systemu opcji przekazywania pakietów IP (ang. IP Forwarding), dzięki której możliwe będzie routowanie i przekazywanie pakietów IP między sieciami. Aby to zrobić, wykonaj polecenie przedstawione poniżej: echo > 1 /proc/sys/net/ipv4/ip_forward
Sposób wywołania tego polecenia został przedstawiony na kolejnym rysunku.
149
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
6. Teraz możesz podłączyć klienta bezprzewodowego do punktu dostępowego o nazwie mitm. Po uzyskaniu połączenia klient za pośrednictwem DHCP automatycznie otrzyma adres IP (serwer działa po kablowej stronie bramy sieciowej). W naszym przypadku klient otrzymał adres 192.168.0.197. Aby sprawdzić funkcjonowanie połączenia z bramą sieciową, możesz teraz użyć polecenia ping 192.168.0.1, tak jak pokazano na kolejnym rysunku.
7. Jak widać na rysunku poniżej, host 192.168.0.1 odpowiada na ping, zatem połączenie z bramą sieciową działa poprawnie.
8. Po sprawdzeniu połączenia z bramą sieciową musimy sprawdzić, czy klient jest podłączony do punktu dostępowego. Aby to zrobić, powinieneś zajrzeć do okna terminala, w którym działa polecenie airbase-ng.
9. Warto tutaj zauważyć, że ponieważ cały ruch sieciowy jest przekazywany z interfejsu bezprzewodowego do sieci kablowej, masz pełną kontrolę nad tym ruchem. Możesz się o tym przekonać, uruchamiając program Wireshark i rozpoczynając nasłuch pakietów na interfejsie at0 — zobacz pierwszy rysunek na kolejnej stronie. 10. Teraz z poziomu klienta wykonaj polecenie ping 192.168.0.1 i zwróć uwagę, że w oknie programu Wireshark są widoczne wszystkie pakiety przesyłane między klientem a bramą sieciową (włącz filtr pozwalający na wyświetlanie tylko pakietów ICMP), pomimo iż pakiety te nie są przeznaczone dla Ciebie. To jest właśnie prawdziwa siła ataku typu Man-in-the-Middle! — zobacz drugi rysunek na kolejnej stronie.
150
Rozdział 7. • Zaawansowane ataki na sieci WLAN
Co się stało? W tym ćwiczeniu zakończyłeś przygotowanie konfiguracji środowiska do przeprowadzenia ataku typu Man-in-the-Middle. Dokonałeś tego poprzez utworzenie fałszywego punktu dostępowego i połączenie go z interfejsem Ethernet za pomocą mostu sieciowego. Taka konfiguracja powoduje, że dowolny klient bezprzewodowy podłączony do fałszywego punktu dostępowego będzie przekonany, iż jest połączony z siecią Internet za pomocą kablowego połączenia LAN.
151
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Zrób to sam — atak typu Man-in-the-Middle w środowisku wyłącznie bezprzewodowym W poprzednim ćwiczeniu za pomocą mostu sieciowego połączyłeś interfejs bezprzewodowy z interfejsem kablowym. Jak już wspominaliśmy wcześniej, jest to tylko jedna z kilku możliwych struktur połączeń przy atakach typu Man-in-the-Middle. Bardzo interesująca może być konfiguracja składająca się z dwóch interfejsów bezprzewodowych, z których jeden jest wykorzystany do utworzenia fałszywego punktu dostępowego, a drugi jest podłączony do autoryzowanego punktu dostępowego atakowanej sieci. Oczywiście, oba interfejsy są ze sobą połączone za pomocą mostu sieciowego. W takiej sytuacji, kiedy klient bezprzewodowy łączy się z fałszywym punktem dostępowym, za pomocą mostu sieciowego utworzonego na komputerze napastnika zostaje połączony z autoryzowanym punktem dostępowym atakowanej sieci. Należy tutaj zauważyć, że taka konfiguracja wymaga zastosowania na komputerze napastnika dwóch fizycznych, bezprzewodowych kart sieciowych. W ramach ćwiczeń powinieneś spróbować przeprowadzić taki atak przy użyciu dwóch kart sieciowych, z których jedna jest wbudowana w Twoim laptopie, a druga jest kartą zewnętrzną, podłączoną na przykład przez port USB. Potraktuj to jako wyzwanie!
Podsłuchiwanie ruchu sieciowego na bazie ataków Man-in-the-Middle W poprzednim ćwiczeniu zobaczyłeś, jak przygotować konfigurację sieci do przeprowadzenia ataku typu Man-in-the-Middle, a teraz pokażemy, jak dzięki takiej konfiguracji przeprowadzić atak polegający na podsłuchiwaniu bezprzewodowego ruchu sieciowego (ang. Wireless Eavesdropping). Idea tego ćwiczenia opiera się na założeniu, że cały ruch sieciowy z komputera ofiary jest teraz routowany przez komputer napastnika, dzięki czemu napastnik ma możliwość przechwytywania i podsłuchiwania wszystkich pakietów wysyłanych z komputera ofiary i do niego.
Czas na działanie — podsłuchiwanie ruchu w sieci bezprzewodowej Aby to zrobić, uważnie wykonaj polecenia opisane poniżej: 1. Odtwórz całą konfigurację wykorzystywaną w poprzednim ćwiczeniu. Uruchom program Wireshark — obserwowanie ruchu sieciowego jeszcze przed uruchomieniem mostu mitm-bridge może być całkiem interesującym ćwiczeniem. Wireshark posłuży nam później do obserwowania całego ruchu przechodzącego przez most sieciowy.
152
Rozdział 7. • Zaawansowane ataki na sieci WLAN
2. Rozpocznij nasłuchiwanie ruchu na interfejsie at0, dzięki czemu będziesz mógł monitorować wszystkie pakiety wysyłane i odbierane przez klienta bezprzewodowego.
153
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
3. Przejdź na klienta, uruchom przeglądarkę sieciową i wejdź na dowolną stronę internetową. W naszym przypadku punkt dostępowy jest podłączony do sieci LAN, stąd możemy otworzyć jego terminal konfiguracyjny, wpisując w pasku adresu przeglądarki adres http://192.168.0.1.
4. Aby zalogować się do punktu dostępowego, podaj nazwę użytkownika i hasło dostępu. 5. W oknie programu Wireshark powinieneś już zaobserwować dużą liczbę pakietów przesyłanych w sieci bezprzewodowej.
6. Ustaw filtr tak, aby Wireshark wyświetlał wyłącznie pakiety HTTP.
154
Rozdział 7. • Zaawansowane ataki na sieci WLAN
7. Jak widać, z łatwością możesz zlokalizować żądania HTPP POST, które zostały użyte do przesłania hasła do terminala konfiguracyjnego punktu dostępowego.
155
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
8. Poniżej przedstawiono zawartość pakietu wyróżnionego na poprzednim rysunku.
9. Rozwinięcie zawartości nagłówka HTTP pozwala zauważyć, że samo hasło, które zostało wprowadzone podczas logowania się do punktu dostępowego, nie jest przesyłane — zamiast niego przesyłana jest wartość funkcji skrótu tego hasła (ang. hash). Jeżeli przyjrzysz się zawartości pakietu oznaczonego na poprzednim rysunku numerem 64, zauważysz, że żądanie zostało przesłane za pomocą skryptu /md5.js, co pozwala podejrzewać, że funkcja skrótu hasła wykorzystuje algorytm md5. Warto tutaj zauważyć, że jeżeli algorytm tworzenia funkcji skrótu nie używa soli kryptograficznej (ang. cryptographic salt), zwanej inaczej ciągiem zaburzającym, to taka technika może być podatna na atak oparty na powtarzaniu pakietów. Odnalezienie niezbędnych szczegółów pozostawimy Ci jako zadanie do samodzielnego wykonania, ponieważ nie jest to bezpośrednio związane z bezpieczeństwem sieci bezprzewodowych i szczegółowe omawianie tego zagadnienia wykracza daleko poza ramy tej książki.
10. To ćwiczenie doskonale pokazuje, jak łatwo można monitorować i podsłuchiwać ruch generowany przez klienta po przeprowadzeniu ataku typu Man-in-the-Middle.
Co się stało? Dzięki odpowiedniemu przygotowaniu ataku Man-in-the-Middle możesz teraz bez najmniejszych problemów monitorować i podsłuchiwać ruch generowany przez niczego niepodejrzewające klienty sieci bezprzewodowej. Jest to możliwe, ponieważ w ataku typu Man-in-the-Middle cały ruch sieciowy jest przekazywany przez komputer napastnika, więc nieszyfrowany ruch sieciowy może być łatwo podsłuchany i przechwycony.
156
Rozdział 7. • Zaawansowane ataki na sieci WLAN
Zrób to sam — odszukiwanie zapytań przesyłanych do wyszukiwarki Google W obecnych czasach raczej każdemu z nas powinno zależeć na zachowaniu poufności zapytań wpisywanych w przeglądarce Google. Niestety, domyślnie dane są przesyłane do przeglądarki za pomocą protokołu HTTP czystym, nieszyfrowanym tekstem. Sprawdź, czy potrafisz w programie Wireshark utworzyć sprytny filtr, który będzie wyświetlał na ekranie wszystkie zapytania wpisywane przez ofiarę ataku w wyszukiwarce Google.
Przechwytywanie sesji w sieciach bezprzewodowych Jednym z bardzo interesujących ataków, jakie możemy przeprowadzić na podstawie ataku Man-in-the-Middle, jest przechwytywanie sesji aplikacji. Podczas ataku Man-in-the-Middle wszystkie pakiety wysyłane przez komputer ofiary przechodzą przez komputer napastnika. Zadaniem komputera napastnika jest odpowiednie przekazywanie ich do hostów docelowych oraz przekazywanie odpowiedzi hostów do komputera ofiary. Ciekawym elementem takiego procesu jest możliwość modyfikacji danych w przekazywanych pakietach (jeżeli nie są szyfrowane lub nie korzystają z innych zabezpieczeń integralności danych). W praktyce oznacza to, że napastnik może modyfikować, uszkadzać lub nawet selektywnie usuwać wybrane pakiety. W kolejnym ćwiczeniu pokażemy, w jaki sposób można przechwycić sesję DNS, korzystając z ataku Man-in-the-Middle, a następnie na podstawie przechwyconej sesji DNS pokażemy, jak przechwycić sesję przeglądarki próbującej połączyć się ze stroną https://www.google.com.
Czas na działanie — przechwytywanie sesji w sieciach bezprzewodowych 1. Przygotuj laboratorium w takiej konfiguracji, jakiej używaliśmy w poprzednich ćwiczeniach do ataków typu Man-in-the-Middle. Na komputerze ofiary uruchom przeglądarkę sieciową i przejdź na stronę https://www.google.com, monitorując jednocześnie cały generowany w ten sposób ruch przy użyciu programu Wireshark. Okno tego programu powinno wyglądać mniej więcej tak, jak na rysunku poniżej.
157
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
2. W programie Wireshark ustaw filtr tak, aby wyświetlane były wyłącznie ramki protokołu DNS. Jak widać na kolejnym rysunku, komputer ofiary wysyła żądania DNS dla adresu https://google.com.
3. Aby przechwycić sesje przeglądarki, musisz przesłać do ofiary fałszywe odpowiedzi DNS, które będą pokazywać, że stronie https://google.com odpowiada adres IP 192.168.0.199, będący w rzeczywistości adresem IP napastnika. Do tych niecnych celów należy użyć narzędzia dnsspoof. Aby to zrobić, w oknie terminala musisz wpisać polecenie przedstawione poniżej: dnsspoof -i mitm-bridge
Wyniki działania tego polecenia zostały przedstawione na kolejnym rysunku.
4. Odśwież okno przeglądarki sieciowej. Od tej chwili, jak to doskonale widać w oknie programu Wireshark, za każdym razem, kiedy ofiara wysyła żądanie DNS dla dowolnego hosta (włącznie z google.com), odpowiedź jest przesyłana przez program Dnsspoof — zobacz pierwszy rysunek na kolejnej stronie. 5. W oknie przeglądarki na komputerze ofiary widać teraz komunikat o wystąpieniu błędu, informujący o odmowie realizacji połączenia. Dzieje się tak dlatego, że komputer ofiary, próbując połączyć się z serwisem google.com, w rzeczywistości łączy się z komputerem napastnika o adresie 192.168.0.199, z tym że na razie na porcie 80 tego komputera nie została jeszcze uruchomiona żadna usługa — zobacz drugi rysunek na kolejnej stronie.
158
Rozdział 7. • Zaawansowane ataki na sieci WLAN
159
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
6. Aby to zmienić, uruchom teraz serwer Apache (dostarczany wraz z dystrybucją Kali Linux). Otwórz okno terminala i wykonaj polecenie przedstawione poniżej: apache2ctl start
Wyniki działania tego polecenia zostały przedstawione na kolejnym rysunku.
7. Jeżeli teraz ponownie odświeżysz okno przeglądarki sieciowej na komputerze ofiary, na ekranie pojawi się domyślna strona serwera Apache.
8. Wykonane ćwiczenie dobrze pokazuje, w jaki sposób można przechwycić bezprzewodową sesję klienta będącego celem ataku, przeanalizować dane wysyłane przez komputer ofiary i odesłać fałszywe odpowiedzi na jego żądania.
Co się stało? Wykorzystując przygotowany wcześniej atak Man-in-the-Middle, udało Ci się pomyślnie przechwycić bezprzewodową sesję aplikacji klienta. A co działo się za kulisami? Dzięki konfiguracji do ataku Man-in-the-Middle miałeś możliwość monitorowania wszystkich pakietów wysyłanych przez ofiarę. Po przechwyceniu żądania DNS wysłanego przez ofiarę program Dnsspoof działający na komputerze napastnika odesłał do komputera ofiary fałszywą odpowiedź DNS, wskazującą, że nazwie hosta google.com odpowiada adres IP 192.168.0.199, będący w rzeczywistości adresem IP komputera napastnika. Komputer ofiary przyjmuje tę odpowiedź za prawdziwą (bo nie ma powodu, żeby ją odrzucić) i przeglądarka ofiary wysyła żądanie HTTP na port 80 komputera napastnika. W pierwszej części tego eksperymentu na porcie 80 komputera napastnika nie działała żadna usługa, która mogłaby obsłużyć żądanie klienta, stąd w oknie przeglądarki sieciowej ofiary pojawił się komunikat o wystąpieniu błędu. Następnie na komputerze napastnika uruchomiłeś serwer Apache, działający domyślnie na porcie 80, który od tej chwili rozpoczął obsługiwanie żądań HTTP wysyłanych przez komputer ofiary (w oknie przeglądarki ofiary została wyświetlona domyślna strona WWW serwera Apache). To ćwiczenie pokazuje, że po przejęciu pełnej kontroli nad niższymi warstwami protokołu sieciowego (w naszym przypadku warstwą drugą) przejęcie sesji aplikacji działających na wyższych warstwach, takich jak klienty DNS czy przeglądarki sieciowe, jest zadaniem dosyć prostym.
160
Rozdział 7. • Zaawansowane ataki na sieci WLAN
Zrób to sam — przechwytywanie sesji aplikacji Kolejnym etapem w przechwytywaniu bezprzewodowych sesji aplikacji na podstawie ataku Man-in-the-Middle jest modyfikacja danych wysyłanych przez klienta. Zapoznaj się z pakietem Ettercap, będącym częścią dystrybucji Kali Linux, który pomoże Ci tworzyć filtry pozwalające na wyszukiwanie i zamianę danych w pakietach ruchu sieciowego. W tym zadaniu powinieneś napisać prosty filtr, który będzie automatycznie zamieniał wszystkie wystąpienia słowa bezpieczeństwo na niebezpieczeństwo. Następnie spróbuj wpisać w Google słowo bezpieczeństwo i sprawdź, czy w odpowiedzi otrzymujesz trafienia związane ze słowem niebezpieczeństwo.
Odkrywanie konfiguracji zabezpieczeń klienta W poprzednich rozdziałach pokazaliśmy, jak można tworzyć podstawione punkty dostępowe (Honeypot) z otwartym dostępem, a także wykorzystujące szyfrowanie WEP i WPA, ale jak w praktyce, kiedy pracujesz w terenie i przechwytujesz pakiety sondowania (ang. Probe Requests) wysyłane przez atakowanego klienta, możesz się dowiedzieć, jakiego protokołu zabezpieczeń używa sieć, do której usiłuje podłączyć się klient? Choć na pierwszy rzut oka zadanie może się wydawać nieco karkołomne, w praktyce rozwiązanie jest bardzo proste. Aby się o tym przekonać, należy utworzyć kilka punktów dostępowych rozgłaszających sieć o takim samym identyfikatorze SSID, ale różnych konfiguracjach zabezpieczeń. Kiedy klient poszukujący sieci odnajdzie takie punkty dostępowe, automatycznie podłączy się do skonfigurowanego tak, jak sieć, której poszukuje (a której konfiguracja jest przechowywana przez klienta w profilu sieci). A zatem zaczynamy!
Czas na działanie — odkrywanie profili zabezpieczeń klientów bezprzewodowych 1. Ćwiczenie rozpocznij od przyjęcia założenia, że klient będący celem ataku był skonfigurowany pod kątem sieci o nazwie Wireless Lab i kiedy nie jest podłączony do żadnego punktu dostępowego, aktywnie rozsyła pakiety sondujące w poszukiwaniu tej sieci. Aby odkryć konfigurację zabezpieczeń tej sieci, musisz utworzyć kilka punktów dostępowych o różnych konfiguracjach. Na potrzeby tego ćwiczenia przyjmij, że klient jest przygotowany do pracy w jednej z następujących konfiguracji: uwierzytelnianie z otwartym dostępem, szyfrowanie WEP, szyfrowanie WPA PSK lub szyfrowanie WPA2 PSK. Oznacza to, że trzeba utworzyć cztery punkty dostępowe. Aby to zrobić, musisz najpierw utworzyć cztery wirtualne interfejsy sieciowe, o nazwach odpowiednio mon0, mon1, mon2 i mon3. Dokonasz tego poprzez kilkukrotne wykonanie polecenia airmon-ng start wlan0, tak jak przedstawiono na rysunku poniżej.
161
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
2. Aby wyświetlić na ekranie wszystkie nowo utworzone interfejsy, powinieneś wykonać polecenie ifconfig -a, tak jak to zostało przedstawione na kolejnym rysunku.
3. Teraz możesz przystąpić do utworzenia pierwszego punktu dostępowego, wykorzystującego interfejs mon0 i uwierzytelnianie z otwartym dostępem.
4. Na interfejsie mon1 utwórz punkt dostępowy z szyfrowaniem WEP.
162
Rozdział 7. • Zaawansowane ataki na sieci WLAN
5. Interfejsu mon2 użyj do utworzenia punktu dostępowego z szyfrowaniem WPA PSK.
6. Wreszcie ostatni interfejs, mon3, zostanie użyty do utworzenia punktu dostępowego z szyfrowaniem WPA2 PSK.
7. Aby sprawdzić, czy wszystkie cztery punkty dostępowe działają poprawnie, użyj polecenia airodump-ng do nasłuchiwania na tym samym kanale.
8. Po utworzeniu wszystkich punktów dostępowych możesz włączyć bezprzewodową kartę sieciową w kliencie. W zależności od tego, z jakiej sieci Wireless Lab klient ostatnio korzystał, automatycznie podłączy się do punktu dostępowego o takiej konfiguracji zabezpieczeń. W naszym przypadku klient podłączył się do punktu dostępowego sieci z szyfrowaniem WPA PSK.
163
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Co się stało? W tym ćwiczeniu utworzyłeś kilka podstawionych punktów dostępowych, które rozgłaszały sieć Wi-Fi o takim samym identyfikatorze SSID, ale o różnych konfiguracjach zabezpieczeń. Klient poszukujący sieci o takim identyfikatorze SSID automatycznie podłączał się do punktu dostępowego o konfiguracji, jaka występowała podczas ostatniego połączenia klienta z oryginalną siecią Wireless Lab. Opisana technika może być bardzo przydatna w praktyce, ponieważ kiedy przeprowadzasz test penetracyjny, nie zawsze z góry będziesz wiedział, jakiej konfiguracji zabezpieczeń sieci używa dany klient. Nasze rozwiązanie pozwala na szybkie określenie właściwej konfiguracji przez podsunięcie klientowi „przynęty” w postaci fałszywego punktu dostępowego. W literaturze przedmiotu taka technika jest często określana nazwą WiFishing (z ang. WiFi — sieci bezprzewodowe, fishing — wędkowanie, łowienie ryb).
Zrób to sam — podsuwanie „przynęty” klientowi Zmieniaj konfigurację zabezpieczeń sieci bezprzewodowej klienta i sprawdź, czy Twój zestaw punktów dostępowych (Honeypot) jest w stanie je wykryć. Warto zauważyć, że wiele klientów Wi-Fi jest skonfigurowanych tak, aby w razie braku połączenia z punktem dostępowym nie wysyłać pakietów sondowania sieci domyślnej. W takiej sytuacji wykrycie konfiguracji sieci domyślnej przy użyciu technik opisanych powyżej nie będzie możliwe.
Szybki quiz — zaawansowane ataki na sieci WLAN 1. Kto znajduje się „w środku” podczas ataku typu Man-in-the-Middle: a) Punkt dostępowy. b) Komputer napastnika. c) Komputer ofiary. d) Żaden z powyższych. 2. Pakiet Dnsspoof: a) Pozwala na fałszowanie żądań DNS. b) Pozwala na fałszowanie odpowiedzi serwera DNS. c) Musi być uruchomiony na serwerze DNS. d) Musi być uruchomiony na punkcie dostępowym.
164
Rozdział 7. • Zaawansowane ataki na sieci WLAN
3. Atak typu Man-in-the-Middle na sieć bezprzewodową może zostać przeprowadzony: a) Na wszystkich klientach bezprzewodowych w tym samym czasie. b) Tylko na jednym kanale w tym samym czasie. c) Tylko na sieci o danym identyfikatorze SSID w tym samym czasie. d) Zarówno (b), jak i (c). 4. Interfejs, który podczas ataku Man-in-the-Middle znajdował się najbliżej ofiary, nosi nazwę: a) at0. b) eth0. c) br0. d) en0.
Podsumowanie W tym rozdziale przeczytałeś, w jaki sposób można przeprowadzać zaawansowane ataki na sieci bezprzewodowe, wykorzystując atak typu Man-in-the-Middle. W ramach ćwiczeń utworzyłeś konfigurację sieci do przeprowadzenia ataku Man-in-the-Middle, a następnie używałeś jej do podsłuchiwania ruchu sieciowego generowanego przez komputer ofiary. Później użyłeś tej samej konfiguracji sieci do przeprowadzenia ataku polegającego na przechwyceniu sesji aplikacji (w tym wypadku przeglądarki sieciowej) przy użyciu ataku opartego na fałszowaniu odpowiedzi serwera DNS. W kolejnym rozdziale pokażemy, jak przeprowadzać testy penetracyjne sieci bezprzewodowych od fazy początkowego planowania poprzez rozpoznawanie i odkrywanie konfiguracji aż do fazy przeprowadzania końcowych ataków i raportowania osiągniętych wyników. Omówimy również kilka zagadnień związanych z najlepszymi procedurami i praktykami zabezpieczania sieci WLAN.
165
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
166
8 Ataki na sieci WLAN z szyfrowaniem WPA-Enterprise i serwerami Radius „Nie taki diabeł straszny, jak go malują”. Popularne przysłowie Protokół WPA-Enterprise zawsze miał opinię odpornego na próby złamania. Do tej pory zresztą większość administratorów sieci bezprzewodowych sądzi, że zastosowanie tego protokołu jest uniwersalnym panaceum na wszystkie problemy związane z zabezpieczeniem ich sieci. W tym rozdziale pokażemy, że nic nie może być dalsze od prawdy.
W kolejnych podrozdziałach pokażemy, w jaki sposób można przeprowadzić atak na protokół WPA-Enterprise przy użyciu różnych technik i narzędzi dostępnych w dystrybucji Kali Linux. W tym rozdziale omówimy następujące zagadnienia: Konfiguracja serwera FreeRadius WPE. Ataki na protokół PEAP na klientach Windows. Dobre praktyki w zabezpieczaniu korporacyjnych sieci bezprzewodowych.
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Konfiguracja serwera FreeRadius WPE Do przeprowadzania ataków na sieci wykorzystujące protokół WPA-Enterprise będzie Ci potrzebny własny serwer Radius. Najpopularniejszym serwerem Radius typu open source jest FreeRadius. Trzeba jednak zauważyć, że konfiguracja tego serwera jest zadaniem bardzo złożonym, a co za tym idzie — przygotowanie odpowiedniej konfiguracji serwera do poszczególnych ataków może być bardzo nużącym zajęciem. Joshua Wright, jeden z dobrze znanych w branży specjalistów zajmujących się bezpieczeństwem sieci komputerowych, jest autorem aktualizacji dla serwera FreeRadius, która znakomicie ułatwia konfigurację serwera i przeprowadzanie ataków z jego wykorzystaniem. Wspomniana aktualizacja nosi nazwę FreeRadius-WPE (ang. Wireless Pwnage Edition). Niestety, pakiet ten nie jest domyślnie instalowany w dystrybucji Kali Linux, stąd przed rozpoczęciem naszego ćwiczenia będziesz musiał samodzielnie zainstalować pakiet FreeRadius-WPE. Aby to zrobić, uważnie wykonaj polecenia opisane poniżej: 1. Uruchom przeglądarkę internetową i przejdź na stronę https://github.com/brad-anton/ freeradius-wpe, gdzie znajdziesz opis projektu i wiele innych informacji. Pakiet instalacyjny możesz również pobrać bezpośrednio pod adresem https://github.com/ brad-anton/freeradius-wpe/raw/master/freeradius-server-wpe_2.1.12-1_i386.deb.
2. Po zakończeniu pobierania powinieneś zainstalować pobrany pakiet. Aby to zrobić, z poziomu okna terminala wykonaj polecenie dpkg -i freeradius-server-wpe_2.1.12-1_ i386.deb, a następnie polecenie ldconfig.
Wszystko gotowe, a zatem do pracy! Ćwiczenie rozpoczniemy od konfiguracji serwera Radius w systemie Kali Linux.
168
Rozdział 8. • Ataki na sieci WLAN z szyfrowaniem WPA-Ent. i serwerami Radius
Czas na działanie — konfigurowanie punktu dostępowego wykorzystującego serwer FreeRadius WPE Aby to zrobić, uważnie wykonaj polecenia opisane poniżej: 1. Podłącz jeden z portów LAN punktu dostępowego do portu Ethernet komputera, na którym działa system Kali Linux. W naszym przypadku będzie to interfejs eth0. Uaktywnij interfejs i przy użyciu DHCP przypisz mu odpowiedni adres IP, tak jak przedstawiono na rysunku poniżej.
2. Zaloguj się do terminala konfiguracyjnego punktu dostępowego i ustaw go do pracy w trybie WPA/WPA2-Enterprise. Opcję Version ustaw na WPA2, a algorytm szyfrowania (opcja Encryption) na AES. Następnie w polu Radius Server IP wpisz adres IP Twojego systemu Kali Linux. Hasłem dostępu do serwera Radius (opcja Radius Password) będzie w naszym przypadku słowo test.
3. Teraz otwórz nowe okno terminala i przejdź do katalogu /usr/local/etc/raddb, w którym znajdują się wszystkie pliki konfiguracyjne serwera FreeRadius-WPE.
169
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
4. Otwórz plik eap.conf i poszukaj opcji default_eap_type. Domyślnie opcja ta jest ustawiona na wartość md5, zatem powinieneś zmienić ją na peap i zapisać plik.
5. Otwórz plik clients.conf. W tym pliku można zdefiniować listę klientów, które są uprawnione do połączenia z serwerem Radius. Zwróć uwagę, że hasło klientów (ang. secret) dla podsieci 192.168.0.0/16 jest domyślnie ustawione na test. Dokładnie takiego hasła użyliśmy w punkcie 2.
6. Teraz jesteś już gotowy do uruchomienia serwera Radius. Aby to zrobić, powinieneś z poziomu okna terminala wykonać polecenie radiusd -s -X.
7. Po uruchomieniu tego polecenia na ekranie będzie pojawiała się duża ilość informacji diagnostycznych, ale po chwili serwer rozpocznie działanie i nasłuchiwanie w oczekiwaniu na napływające żądania. Świetnie! Konfiguracja jest już gotowa do użycia w kolejnych doświadczeniach, o których powiemy za chwilę.
170
Rozdział 8. • Ataki na sieci WLAN z szyfrowaniem WPA-Ent. i serwerami Radius
Co się stało? Właśnie udało Ci się pomyślnie skonfigurować i uruchomić serwer FreeRadius WPE, którego będziesz używać w kolejnych doświadczeniach opisywanych w dalszej części tego rozdziału.
Zrób to sam — zapoznanie się z serwerem Radius Serwer FreeRadius WPE posiada ogromną liczbę opcji konfiguracyjnych, stąd zapoznanie się z nimi jest naprawdę dobrym pomysłem. Przeglądając dokumentację i poznając możliwości serwera FreeRadius WPE, powinieneś również zapoznać się z plikami konfiguracyjnymi tego serwera i dowiedzieć się, jakie są zależności między nimi.
Ataki na protokół PEAP Protokół PEAP (ang. Protected Extensible Authentication Protocol) jest najczęściej używaną wersją protokołu EAP. Protokół PEAP to mechanizm uwierzytelniania domyślnie zaimplementowany i wykorzystywany w systemie Windows. Protokół PEAP występuje w dwóch wersjach: PEAPv0 z uwierzytelnianiem EAP-MSCHAPv2 (ang. Extensible Authentication
Protocol — Microsoft Challenge Handshake Authentication Protocol) — jest używany najczęściej, ponieważ system Windows posiada wbudowaną obsługę tego protokołu. PEAPv1 z uwierzytelnianiem EAP-GTC (ang. Extensible Authentication Protocol
— Generic Token Card).
171
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Protokół PEAP do uwierzytelniania serwera wykorzystuje certyfikat pobierany z magazynu certyfikatów serwera Radius. Niemal wszystkie ataki na protokół PEAP wykorzystują błędy w konfiguracji uwierzytelniania certyfikatów. W kolejnym ćwiczeniu pokażemy, jak można złamać zabezpieczenia protokołu PEAP w sytuacji, kiedy klient ma wyłączoną weryfikację certyfikatów.
Czas na działanie — łamanie zabezpieczeń protokołu PEAP Aby to zrobić, uważnie wykonaj polecenia opisane poniżej: 1. Zanim rozpoczniesz, musisz jeszcze raz upewnić się, że protokół PEAP jest włączony. W tym celu powinieneś zajrzeć do pliku eap.conf.
2. Uruchom serwer Radius, wpisując w oknie terminala polecenie radiusd -s -X.
172
Rozdział 8. • Ataki na sieci WLAN z szyfrowaniem WPA-Ent. i serwerami Radius
3. Rozpocznij monitorowanie pliku dziennika utworzonego przez serwer FreeRadius WPE, wpisując w oknie terminala polecenie przedstawione na rysunku zamieszczonym poniżej.
4. System Windows ma wbudowaną obsługę protokołu PEAP. Upewnij się, że weryfikacja certyfikatów została wyłączona.
5. Naciśnij przycisk Configure (konfiguruj), znajdujący się po prawej stronie listy rozwijanej Select Authentication Method (wybierz metodę uwierzytelniania), i poinformuj system Windows, aby automatycznie nie używał Twoich poświadczeń logowania (nazwy konta użytkownika i hasła dostępu).
6. Przejdź do okna Advanced settings (ustawienia zaawansowane) i w sekcji Specify authentication mode (określ tryb uwierzytelniania) wybierz z listy rozwijanej opcję User authentication (uwierzytelnianie użytkownika), tak jak to zostało przedstawione na rysunku poniżej.
173
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
7. Kiedy klient Windows podłączy się do punktu dostępowego, na ekranie pojawi się okno dialogowe z żądaniem podania nazwy użytkownika i hasła. Jako nazwę użytkownika wpisz Monster, a jako hasło — abcdefghi:
8. Natychmiast po podaniu nazwy użytkownika i hasła możesz zobaczyć, że w pliku dziennika serwera Radius pojawiły się ciąg wezwania i odpowiedzi na wezwanie, wygenerowane podczas uwierzytelniania MSCHAP v2:
174
Rozdział 8. • Ataki na sieci WLAN z szyfrowaniem WPA-Ent. i serwerami Radius
9. Teraz możesz użyć polecenia asleap do przeprowadzenia ataku słownikowego na hasło uwierzytelniania. Jeżeli użyty plik słownika zawiera hasło abcdefghi, to będziesz w stanie je odszukać i złamać! (Na potrzeby tego ćwiczenia utworzyliśmy prosty plik słownika, zawierający nasze hasło).
Co się stało? W tym ćwiczeniu utworzyłeś podstawiony punkt dostępowy (Honeypot) wykorzystujący do uwierzytelniania użytkowników serwer FreeRadius WPE. „Klient korporacyjny” był niepoprawnie skonfigurowany i miał wyłączoną weryfikację certyfikatów PEAP. Taki błąd w konfiguracji pozwolił na przedstawienie klientowi Twojego własnego certyfikatu, który został przez klienta zaakceptowany. Następnie do akcji wszedł wewnętrzny protokół uwierzytelniania, MSCHAP v2. Ponieważ klient do szyfrowania przesyłanych danych używał podstawionego, sfałszowanego certyfikatu, nie miałeś żadnych trudności z pozyskaniem nazwy użytkownika, ciągu wezwania i odpowiedzi na wezwanie. Protokół MSCHAP v2 jest podatny na ataki słownikowe. Do ataku na hasło (złamania klucza ciągu wezwania i odpowiedzi na wezwanie) użyłeś programu asleap. Ponieważ hasło znajdowało się w użytym pliku słownika, atak zakończył się powodzeniem.
Zrób to sam — różne odmiany ataków na protokół PEAP Protokół PEAP można niepoprawnie skonfigurować na wiele sposobów. Na przykład jeżeli administrator nie umieści autoryzowanych serwerów na liście Connect to these servers, to nawet jeśli weryfikacja certyfikatów będzie włączona, napastnik może pozyskać rzeczywisty, autentyczny certyfikat dla innej domeny z dowolnego urzędu certyfikacji (ang. certifying authority) znajdującego się na liście i taki certyfikat zostanie zaakceptowany przez klienta. Oczywiście, można sobie bez trudu wyobrazić jeszcze wiele innych odmian takiego ataku. W ramach ćwiczeń powinieneś zapoznać się również z innymi metodami ataków i je wypróbować.
Ataki na protokół EAP-TTLS W ramach samodzielnych ćwiczeń powinieneś spróbować użyć technik omawianych przy okazji protokołu PEAP do przeprowadzenia innych odmian ataków na protokół EAP-TTLS.
175
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Dobre praktyki zabezpieczania korporacyjnych sieci bezprzewodowych Do tej pory omówiliśmy wiele różnych ataków na protokoły WPA/WPA2, zarówno w wersji PSK, jak i Enterprise. Dzięki naszym doświadczeniom możemy zarekomendować następujące rozwiązania: W małych i średnich przedsiębiorstwach i organizacjach powinieneś używać protokołu WPA2 PSK z silnym hasłem. Do dyspozycji masz aż 63 znaki — zrób z nich dobry użytek. W przypadku dużych firm i korporacji rekomendowane będzie zastosowanie protokołu WPA-Enterprise z uwierzytelnianiem EAP-TLS. Takie rozwiązanie wykorzystuje do uwierzytelniania certyfikaty po stronie zarówno serwera, jak i klienta i obecnie uchodzi za praktycznie niemożliwe do złamania. Jeżeli z takiego czy innego powodu jesteś zmuszony do użycia protokołu WPA2-
Enterprise z uwierzytelnianiem PEAP lub EAP-TTLS, powinieneś upewnić się, że weryfikacja certyfikatów jest włączona, korzystasz z odpowiednich, zaufanych urzędów certyfikacji, używasz wyłącznie autoryzowanych serwerów Radius oraz że wszystkie pozostałe opcje, pozwalające użytkownikowi na zaakceptowanie nowego serwera Radius, innych certyfikatów czy urzędów certyfikacji, są wyłączone.
Szybki quiz — ataki na protokół WPA-Enterprise i serwery Radius 1. FreeRadius-WPE to: a) Nowa wersja serwera Radius, napisana praktycznie od zera. b) Aktualizacja serwera FreeRadius. c) Integralna część wszystkich dystrybucji systemu Linux. d) Żadna z powyższych odpowiedzi nie jest poprawna. 2. Atak na protokół PEAP może zostać przeprowadzony z wykorzystaniem: a) Fałszywego poświadczenia (nazwa użytkownika i hasło). b) Fałszywych certyfikatów. c) Protokołu WPA PSK. d) Wszystkie powyższe odpowiedzi są poprawne. 3. Protokół EAP-TLS wykorzystuje: a) Certyfikaty po stronie klienta. b) Certyfikaty po stronie serwera. c) Odpowiedź (a) lub odpowiedź (b). d) Odpowiedź (a) i odpowiedź (b).
176
Rozdział 8. • Ataki na sieci WLAN z szyfrowaniem WPA-Ent. i serwerami Radius
4. Protokół EAP-TTLS wykorzystuje: a) Certyfikaty wyłącznie po stronie klienta. b) Certyfikaty wyłącznie po stronie serwera. c) Uwierzytelnianie oparte na hasłach dostępu. d) Protokół LEAP.
Podsumowanie W tym rozdziale pokazaliśmy, jak można przeprowadzić udany atak na protokół WPA-Enterprise z uwierzytelnianiem PEAP lub EAP-TTLS, dwoma najczęściej wykorzystywanymi mechanizmami uwierzytelniania w dużych sieciach korporacyjnych. W kolejnym rozdziale pokażemy, w jaki sposób używać technik omawianych w poprzednich rozdziałach do przeprowadzania testów penetracyjnych sieci bezprzewodowych działających w realnym świecie.
177
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
178
9 Metodologia testów penetracyjnych sieci bezprzewodowych „Nie mów hop, póki nie przeskoczysz”. Popularne przysłowie W tym rozdziale postaramy się połączyć zagadnienia i techniki omawiane w poprzednich rozdziałach i wykorzystać je podczas przeprowadzania prawdziwego testu penetracyjnego sieci bezprzewodowej.
Testy penetracyjne sieci bezprzewodowych Aby skutecznie przeprowadzić test penetracyjny sieci bezprzewodowych, powinieneś zawsze postępować zgodnie z ogólnie przyjętą i sprawdzoną metodologią. Proste uruchomienie programów takich jak airbase czy airodump z pewnością nie przyniesie oczekiwanych rezultatów. Jako pentester, powinieneś zawsze upewnić się, że działasz zgodnie ze standardami organizacji, dla której pracujesz, a jeżeli nie zostały one formalnie wyznaczone, powinieneś zawsze starać się przeprowadzać testy penetracyjne w sposób jak najbardziej profesjonalny.
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Ogólnie rzecz biorąc, proces przeprowadzania testów penetracyjnych sieci bezprzewodowej można podzielić na cztery główne etapy: Faza planowania. Faza rozpoznania. Faza ataku. Faza raportowania.
W kolejnych podrozdziałach omówimy oddzielnie każdy z tych etapów.
Planowanie W tej fazie należy zająć się następującymi zagadnieniami: Zakres planowanego testu — klient zatrudniający specjalistę do przeprowadzenia
testów penetracyjnych powinien z góry zdefiniować zakres testu, jaki należy przeprowadzić. Zazwyczaj obejmuje to takie informacje, jak: Lokalizacja sieci, która będzie testowana. Całkowity obszar pokryty zasięgiem sieci na terenie firmy i terenach przyległych. Przybliżona liczba zainstalowanych punktów dostępowych oraz autoryzowanych klientów bezprzewodowych. Lista identyfikatorów sieci bezprzewodowych, które mają być poddane testowi. Oświadczenie klienta, czy zezwala na eksploatację wykrytych podczas testu podatności i luk w zabezpieczeniach. Oświadczenie klienta, czy zezwala na przeprowadzanie ataków na użytkowników testowanej sieci bezprzewodowej.
Oświadczenie klienta, czy zezwala na przeprowadzanie ataków typu DoS na badane sieci i ich użytkowników.
Oszacowanie czasu i zasobów niezbędnych do przeprowadzenia testów — po
ustaleniu zakresu testów, jakie mają zostać przeprowadzone, powinieneś przystąpić do oszacowania czasu i zasobów niezbędnych do ich zrealizowania. Pamiętaj, że często zakres przeprowadzanego testu może ulec zmianie na żądanie klienta. Dokumenty prawne — przeprowadzanie testów penetracyjnych to bardzo poważne
zadanie i zawsze istnieje możliwość, że może się wydarzyć coś nieprzewidzianego, co doprowadzi do mniejszych bądź większych perturbacji w funkcjonowaniu testowanej sieci. Z tego powodu zawsze powinieneś mieć pod ręką odpowiednią, podpisaną z klientem umowę o zwolnieniu z odpowiedzialności, zapewniającą, że ani osoba przeprowadzająca testy penetracyjne, ani firma czy organizacja, którą reprezentuje, nie będą pociągnięte do odpowiedzialności za żadne szkody mogące
180
Rozdział 9. • Metodologia testów penetracyjnych sieci bezprzewodowych
powstać w wyniku przeprowadzania testów penetracyjnych. Bardzo często zdarza się również, że klient żąda podpisania umowy o zachowaniu poufności (ang. NDA — Non Disclosure Agreement), która zapewnia, że dane zebrane podczas testów penetracyjnych nie będą udostępniane podmiotom trzecim, niebędącym stronami umowy. Po pomyślnym zakończeniu fazy planowania i przygotowań możemy rozpocząć działania operacyjne.
Rozpoznanie W tej fazie celem naszych działań będzie skanowanie ruchu w sieci bezprzewodowej w celu odszukania i zidentyfikowania punktów dostępowych oraz klientów bezprzewodowych znajdujących się w środowisku celu. Wszystkie techniki niezbędne do przeprowadzenia tej fazy zostały szczegółowo omówione w poprzednich rozdziałach naszej książki, ale dla przypomnienia poniżej zamieszczamy krótkie zestawienie najważniejszych celów, które powinieneś osiągnąć w fazie rozpoznania: Identyfikacja wszystkich widocznych i niewidocznych sieci bezprzewodowych znajdujących się w obszarze środowiska celu. Identyfikacja wszystkich urządzeń bezprzewodowych działających w obszarze
środowiska celu oraz wyodrębnienie tych, które są podłączone do sieci będących celem naszego testu penetracyjnego. Mapowanie obszarów fizycznej dostępności poszczególnych sieci bezprzewodowych
oraz identyfikacja lokalizacji, z których potencjalny napastnik mógłby w ukryciu przeprowadzać ataki na badane sieci (na przykład pobliska kawiarnia znajdująca się w zasięgu badanej sieci). Wszystkie pozyskane w tej fazie informacje powinny zostać skrupulatnie zanotowane. Jeżeli uzgodniony zakres testu penetracyjnego sprowadzał się wyłącznie do fazy rozpoznania, działania operacyjne zostaną zakończone na tym etapie i pentesterowi pozostanie już tylko napisanie odpowiedniego raportu, zawierającego między innymi wnioski i rekomendacje oparte na pozyskanych danych. W raporcie mogą się znaleźć między innymi takie informacje, bardzo cenne dla klienta: Liczba wykrytych urządzeń, które były powiązane zarówno z sieciami otwartymi, jak i siecią klienta. Liczba wykrytych urządzeń powiązanych z sieciami, które mogą być zlokalizowane za pomocą takich usług jak WiGLE. Informacje o wykrytych urządzeniach wykorzystujących słabe algorytmy szyfrowania. Wszelkie inne informacje, które mogą być przydatne dla klienta.
181
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Atak Po zakończeniu fazy rozpoznania możesz rozpocząć fazę ataku, której celem będzie dokonanie próby wykorzystania wykrytych wcześniej podatności i luk w zabezpieczeniach. Rodzaj i natężenie przeprowadzanych ataków zależą w dużej mierze od uzgodnionego z klientem zakresu przeprowadzanego testu penetracyjnego. W fazie ataku możesz wykonywać następujące zadania: Ataki i łamanie kluczy szyfrowania sieci. Ataki na infrastrukturę sieci bezprzewodowych w środowisku celu. Przełamywanie zabezpieczeń klientów. Identyfikacja klientów podatnych na ataki. Wykrywanie nieautoryzowanych klientów sieci bezprzewodowych.
Łamanie klucza szyfrowania sieci Pierwszym i najważniejszym elementem ataku będzie zazwyczaj próba pozyskania klucza szyfrowania wykorzystywanego w atakowanej sieci. Jeżeli dana sieć bezprzewodowa wykorzystuje szyfrowanie WEP, powinieneś dokonać próby ataku na klucz szyfrowania z wykorzystaniem metod opisywanych w rozdziale 4., „Słabe strony protokołów szyfrowania w sieciach WLAN”. Jeżeli sieci w środowisku celu używają szyfrowania WPA2, masz do wyboru dwie możliwości. Jeśli przeprowadzasz „ukryty” test penetracyjny, powinieneś pojawić się w zasięgu sieci w czasie, kiedy pracownicy firmy lub organizacji będą się logować do sieci i z niej wylogowywać. Zazwyczaj największe natężenie takich zdarzeń ma miejsce w następujących porach: Rozpoczęcie dnia pracy. Okolice lunchu. Zakończenie dnia pracy.
W takich porach możesz dokonać próby przeprowadzenia ataku na klucz WPA, tak jak to pokazywaliśmy w rozdziale 4., „Słabe strony protokołów szyfrowania w sieciach WLAN”. W razie potrzeby możesz również wymusić ponowne logowanie się użytkowników do sieci, przeprowadzając atak wymuszający anulowanie uwierzytelnienia użytkowników podłączonych do punktu dostępowego badanej sieci bezprzewodowej. Przykłady takich ataków opisywaliśmy w rozdziale 6., „Ataki na klienta sieci WLAN”. Z oczywistych względów przeprowadzanie takich ataków generuje znacznie więcej „hałasu” w sieci, co zdecydowanie zwiększa szansę na to, że odpowiednie służby informatyczne atakowanego klienta będą w stanie wykryć taki atak. Jeżeli badana sieć wykorzystuje szyfrowanie WPA-Enterprise, pamiętaj, że będziesz musiał użyć informacji zebranych w fazie rozpoznania do utworzenia i skonfigurowania odpowiedniego podstawionego środowiska sieciowego, tak jak to opisywaliśmy w rozdziale 8., „Ataki na sieci WLAN z szyfrowaniem WPA-Enterprise i serwerami Radius”, w sekcji „Ataki na protokół PEAP”.
182
Rozdział 9. • Metodologia testów penetracyjnych sieci bezprzewodowych
Oczywiście, zawsze możesz dokonać próby złamania dowolnego hasła czy klucza szyfrowania, ale jednocześnie musisz się pogodzić z tym, że niektórych z nich nie da się po prostu złamać w rozsądnym czasie i przy użyciu rozsądnych zasobów. W każdym przypadku po zakończeniu testu penetracyjnego powinieneś skontaktować się z administratorem sieci bezprzewodowej i omówić z nim zagadnienia związane z bezpieczeństwem używanych haseł.
Ataki na infrastrukturę sieci bezprzewodowych Jeżeli udało Ci się złamać klucz szyfrowania i uzyskać dostęp do atakowanej sieci, możesz rozpocząć przeprowadzanie pozostałej części testu penetracyjnego (o ile oczywiście przeprowadzenie takiego testu wchodzi w zakres umowy uzgodnionej z klientem). Zazwyczaj podczas tej fazy testu penetracyjnego przeprowadzane są co najmniej następujące operacje: Skanowanie portów. Wykrywanie oraz identyfikacja usług sieciowych działających w środowisku celu. Wykrywanie oraz identyfikacja otwartych usług sieciowych, umożliwiających dostęp
bez konieczności przeprowadzania uwierzytelniania, takich jak FTP, SMP czy HTTP. Wykorzystywanie wykrytych podatności i luk w zabezpieczeniach do przełamywania zabezpieczeń atakowanych systemów.
Atakowanie klientów sieci bezprzewodowych Po zakończeniu wykrywania oraz identyfikacji bezprzewodowych hostów sieciowych działających w środowisku celu możesz rozpocząć przeprowadzanie różnego rodzaju ataków. Na przykład, jeżeli to konieczne, po wykryciu hostów podatnych na ataki typu Karma możesz utworzyć Honeypot i spróbować zmusić je do podłączenia się do niego, tak jak to opisywaliśmy w rozdziale 8., „Ataki na sieci WLAN z szyfrowaniem WPA-Enterprise i serwerami Radius”, w sekcji „Ataki na protokół PEAP”. Za pomocą takiej metody możesz zebrać ogromną ilość bardzo użytecznych informacji, choć zawsze powinieneś się upewnić, że gromadzone informacje są pozyskiwane, przesyłane i przetwarzane w etyczny i bezpieczny sposób oraz że zostaną wykorzystane wyłącznie na potrzeby uzgodnionego z klientem testu penetracyjnego.
Tworzenie raportów Po zakończeniu fazy ataku wiesz już, jakie są słabe strony testowanej sieci, a zatem musisz przystąpić do utworzenia raportu, który przedstawisz zleceniodawcy. Ze względu na fakt, że klient będzie widział rezultaty przeprowadzonego testu penetracyjnego przez pryzmat przedstawionego przez Ciebie raportu, do jego tworzenia powinieneś zawsze podchodzić z takim samym zaangażowaniem jak do samego testu. Poniżej przedstawiamy krótkie zestawienie elementów, które powinien zawierać raport końcowy z przeprowadzonych testów penetracyjnych:
183
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
1. Podsumowanie dla zarządu. 2. Podsumowanie techniczne. 3. Zestawienie ważnych elementów odkrytych podczas testu: Opis wykrytych podatności i luk w zabezpieczeniach. Kategorie zagrożeń. Lista urządzeń podatnych na ataki. Rodzaje wykrytych podatności i luk w zabezpieczeniach — podatności programowe/sprzętowe/konfiguracyjne. Opis rekomendowanych sposobów szybkiego naprawienia wykrytych podatności. 4. Dodatki. Podsumowanie dla zarządu powinno zostać napisane prosto i przejrzyście, tak aby kadra zarządzająca — niemająca zbyt dużego doświadczenia technicznego — była w stanie zrozumieć wyniki przeprowadzonego testu i ewentualną konieczność wprowadzenia takich czy innych programów naprawczych. Pisząc podsumowanie dla zarządu, powinieneś zdecydowanie unikać używania skomplikowanego języka technicznego i omawiania złożonych detali oraz zawsze umieścić ogólny opis wyników testu i rekomendowanych rozwiązań. Podsumowanie techniczne powinno być etapem pośrednim pomiędzy podsumowaniem dla zarządu a zestawieniem elementów odkrytych podczas testu. Ta część raportu jest zazwyczaj przeznaczona dla kierownika działu rozwoju bądź innego działu technicznego IT, dlatego powinna się koncentrować na rekomendowanych rozwiązaniach i sposobach ich ewentualnego wdrażania w badanym środowisku. Zestawienie elementów powinno zawierać szczegółowe, precyzyjne opisy poszczególnych podatności i luk w zabezpieczeniach odkrytych podczas przeprowadzanego testu penetracyjnego oraz opis sposobu wykrycia i wykorzystania poszczególnych podatności. Dodatki do raportu mogą zawierać dowolne dodatkowe informacje przydatne dla klienta, które z takich czy innych powodów nie powinny się znajdować w głównej części raportu. Przykładami takich elementów mogą być różnego rodzaju zrzuty ekranów, kody wykorzystanych exploitów czy skryptów PoC (ang. proof-of-concept) lub szczegółowe zestawienia danych, do jakich udało się dotrzeć pentesterowi podczas przeprowadzania testu.
Podsumowanie W tym rozdziale pokazaliśmy, w jaki sposób możesz przeprowadzać testy penetracyjne sieci bezprzewodowych przy użyciu narzędzi i technik opisywanych w poprzednich rozdziałach naszej książki. Omawialiśmy również zagadnienia związane z prezentowaniem wyników przeprowadzanych testów penetracyjnych, zwłaszcza dla osób z kadry menedżerskiej, nieposiadającej odpowiedniego przygotowania technicznego. W ostatnim rozdziale naszej książki omówimy nowe techniki, jakie pojawiły się na rynku od czasu ukazania się pierwszego wydania tej książki, takie jak WPS czy monitorowanie prób sondowania sieci. 184
10 Szyfrowanie WPS i sondowanie sieci „Nic nowego pod słońcem”. Popularne powiedzenie W tym rozdziale omówimy szereg zagadnień związanych z technikami przeprowadzania ataków na sieci wykorzystujące szyfrowanie WPS oraz sondowaniem sieci bezprzewodowych, a także przedstawimy kilka interesujących narzędzi, które znacząco ułatwiają testowanie sieci bezprzewodowych. Wspomniane rodzaje ataków i narzędzia pojawiły się na rynku już po ukazaniu się pierwszego wydania tej książki, dlatego w tym dodatkowym rozdziale postaramy się je przybliżyć.
Ataki na szyfrowanie WPS Pierwsze rozwiązania wykorzystujące szyfrowanie WPS (ang. Wireless Protected Setup) pojawiły się na rynku w roku 2006 i miały na celu ułatwienie tworzenia bezpiecznych sieci bezprzewodowych użytkownikom niemającym w tej dziedzinie żadnego doświadczenia. Idea takich sieci opierała się na tym, że urządzenia WiFi obsługujące WPS posiadają zakodowany, ukryty klucz dostępu, pozwalający na wymianę kluczy szyfrowania i uzyskanie dostępu do sieci. Aby nowe urządzenie mogło zostać uwierzytelnione i uzyskać połączenie z routerem, użytkownik musi nacisnąć specjalny przycisk WPS, znajdujący się na obudowie routera oraz podłączanego urządzenia. Osoby nieuprawnione, znajdujące się na zewnątrz, nie będą miały fizycznego dostępu do urządzenia i nie będą w stanie podłączyć do sieci nowego urządzenia. Takie rozwiązanie do pewnego stopnia eliminuje konieczność zapamiętywania złożonych kluczy WPA i minimalizuje ryzyko wystąpienia sytuacji, w której administrator sieci „dla wygody użytkowników” ustawia proste i krótkie hasła dostępu.
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
W drugiej połowie 2011 roku w algorytmie WPS została odkryta luka umożliwiająca przeprowadzanie skutecznych ataków typu brute-force na sieci bezprzewodowe wykorzystujące uwierzytelnianie WPS. Okazało się, że istnieje możliwość fałszowania ruchu sieciowego niezbędnego do wynegocjowania uwierzytelnienia, a kod PIN wykorzystywany w algorytmie WPS składa się jedynie z ośmiu cyfr z zakresu od 0 do 9, co daje tylko 100 000 000 możliwych kombinacji. Dla porównania, ośmioznakowe hasło wykorzystujące małe i wielkie litery oraz cyfry daje aż 218 340 105 584 896 możliwych kombinacji. Co gorsza, okazało się, że oprócz wymienionych podatności algorytm WPS posiada również inne słabe strony: W ośmioznakowym kodzie PIN algorytmu WPS ostatni znak to suma kontrolna pierwszych siedmiu cyfr, co powoduje, że jest łatwy do wyliczenia i tym samym redukuje liczbę możliwych kodów PIN do maksymalnie 10 000 000 kombinacji. Dodatkowo, pierwsze cztery, a następnie kolejne trzy cyfry kodu PIN weryfikowane są osobno, co w efekcie powoduje dalsze zredukowanie liczby możliwych kodów PIN do 104+103 kombinacji, czyli inaczej mówiąc, do 11 000 kombinacji. Dzięki takim rozwiązaniom wprowadzonym w mechanizmie uwierzytelniania liczba możliwych kodów PIN została efektywnie zredukowana ze 100 000 000 do zaledwie 11 000, co odpowiada około sześciogodzinnej różnicy czasu podczas przeprowadzania ataku typu brute-force. W praktyce wprowadzenie takich rozwiązań spowodowało, że przeprowadzanie skutecznych ataków na sieci wykorzystujące szyfrowanie WPS stało się wykonalne. W kolejnym ćwiczeniu pokażemy, w jaki sposób można identyfikować i skutecznie atakować podatne sieci z szyfrowaniem WPS za pomocą programów Wash oraz Reaver.
Czas na działanie — atakowanie sieci z szyfrowaniem WPS Aby przeprowadzić skuteczny atak na sieć bezprzewodową z szyfrowaniem WPS, powinieneś uważnie wykonać polecenia opisane poniżej: 1. Zanim rozpoczniemy przeprowadzanie ćwiczenia, musimy najpierw utworzyć w naszym laboratorium odpowiedni punkt dostępowy sieci z szyfrowaniem WPS. W naszym przykładowym routerze TP-Link mechanizm WPS jest włączony domyślnie, co jest trochę niepokojące, ale jednocześnie bardzo wygodne. Aby się jednak upewnić, zalogujemy się do naszego routera i przejdziemy do opcji WPS. Ustawienia szyfrowania WPS zostały przedstawione na pierwszym rysunku na kolejnej stronie.
186
Rozdział 10. • Szyfrowanie WPS i sondowanie sieci
2. Skoro już wiemy, że WPS jest skonfigurowany poprawnie, możemy przystąpić do konfigurowania naszego środowiska testowego. Do przeprowadzenia ataku będziemy używać narzędzia o nazwie Wash, które do poprawnego działania potrzebuje interfejsu sieciowego pracującego w trybie monitora. Aby utworzyć taki interfejs, powinieneś z poziomu okna terminala wykonać polecenie przedstawione poniżej: airmon-ng start wlan0
Wyniki działania tego polecenia zostały pokazane na rysunku poniżej.
3. Nasz interfejs sieciowy pracujący w trybie monitora nosi nazwę mon0, zatem możemy teraz uruchomić program Wash. Aby to zrobić, powinieneś w oknie terminala wykonać następujące polecenie: wash --ignore-fcs -i mon0
187
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Dodanie opcji --ignore-fcs jest niezbędne ze względu na problemy z oczekiwanym formatem żądań, jakie powoduje polecenie wash.
4. Program Wash wyświetli na ekranie listę wszystkich znajdujących się w zasięgu urządzeń obsługujących szyfrowanie WPS, wraz z informacjami o wersji oraz o tym, czy WPS jest aktywny i odblokowany.
5. W wynikach działania programu widać, że nasza sieć Wireless Lab obsługuje połączenia WPS w wersji 1 i że nie są one zablokowane. Świetnie! Zanotujemy teraz adres MAC (w naszym przypadku jest to E8:94:F6:62:1E:8E), który będzie nam potrzebny do pracy z kolejnym narzędziem, programem Reaver. 6. Program Reaver pozwala na łamanie kodu PIN szyfrowania WPS dla punktu dostępowego o danym adresie MAC za pomocą metody brute-force. Składnia wywołania polecenia jest prosta: reaver -i mon0 -b -vv
Wyniki działania polecenia zostały przedstawione poniżej.
7. Po uruchomieniu program sprawdza wszystkie możliwe kombinacje kodu PIN szyfrowania WPS i dla każdego z nich dokonuje próby uwierzytelnienia. Kiedy taka próba zakończy się powodzeniem, program wyświetla na ekranie odnaleziony kod PIN oraz hasło, tak jak to zostało przedstawione na rysunku poniżej.
188
Rozdział 10. • Szyfrowanie WPS i sondowanie sieci
8. Znając klucz WPA-PSK, możesz bez problemów podłączyć się do atakowanej sieci. W naszym przypadku pozostawiliśmy domyślne ustawienia klucza WPA-PSK, które odpowiadają PIN-owi WPS. Jeżeli jednak chcesz dokonać uwierzytelnienia za pomocą samego PIN-u WPS, możesz to zrobić, podając kod PIN w wierszu wywołania polecenia reaver, tak jak to zostało przedstawione poniżej: reaver -i mon0 -b -vv -p 88404148
Pamiętaj, aby zastąpić kod PIN naszego routera odpowiednim kodem Twojego urządzenia.
Co się stało? W tym ćwiczeniu udało nam się za pomocą polecenia wash odszukać i zidentyfikować podatną na atak sieć bezprzewodową z szyfrowaniem WPS. Następnie użyliśmy programu reaver do odtworzenia klucza WPA oraz kodu PIN szyfrowania WPS. Mając takie informacje, możemy bez problemu zalogować się do atakowanej sieci i kontynuować przeprowadzanie testu penetracyjnego.
Zrób to sam — ograniczanie liczby ataków w jednostce czasu W poprzednim ćwiczeniu przeprowadzaliśmy atak na zupełnie niezabezpieczoną sieć z szyfrowaniem WPS. Istnieje bardzo wiele sposobów na tworzenie bezpiecznych konfiguracji sieci bezprzewodowych bez konieczności wyłączania czy usuwania szyfrowania WPS. Aby się o tym przekonać, ustaw PIN WPS na dowolnie wybraną inną wartość i ponownie sprawdź, czy za pomocą polecenia reaver można przeprowadzić efektywny atak na taką sieć. Skorzystaj z routera, który pozwala na ustawienie limitu prób połączenia z wykorzystaniem PIN-u WPS. Spróbuj ponownie przeprowadzić atak na taką sieć, zmieniając konfigurację ataku tak, aby uniknąć blokowania nadmiarowych prób połączenia przez router.
Nasłuchiwanie prób sondowania sieci O sondowaniu sieci bezprzewodowych mówiliśmy już w poprzednich rozdziałach, gdzie wspominaliśmy również, w jaki sposób taki mechanizm może być używany do identyfikacji ukrytych sieci bezprzewodowych oraz przeprowadzania efektywnych ataków z wykorzystaniem podstawionych, fałszywych punktów dostępowych. Sondowanie sieci może być również używane do identyfikacji poszczególnych celów ataku lub śledzenia ich na masową skalę przy użyciu minimalnej ilości niezbędnego wyposażenia.
189
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Kiedy urządzenie chce się podłączyć do sieci, wysyła pakiet Probe Request (sondowanie), który zawiera jego własny adres MAC oraz nazwę sieci, do której chce się podłączyć. Do śledzenia takich żądań możemy wykorzystać narzędzia takie jak airodump-ng. Z drugiej strony, jeżeli chcemy sprawdzić, czy dany użytkownik (cel ataku) znajdował się w określonym czasie w danej lokalizacji, albo kiedy sprawdzamy trendy w wykorzystaniu sieci Wi-Fi, musimy zastosować nieco inne podejście. W tym podrozdziale będziemy zbierać dane przy użyciu narzędzia o nazwie tshark oraz skryptów w języku Python. Odpowiednie kody źródłowe skryptów wraz z objaśnieniami znajdziesz w dalszej części tego rozdziału.
Czas na działanie — gromadzenie danych Uważnie wykonaj polecenia przedstawione poniżej: 1. Przede wszystkim będzie nam potrzebne urządzenie, które łączy się do wielu sieci bezprzewodowych. Zazwyczaj w takiej roli znakomicie sprawdzają się urządzenia takie jak iPhone czy smartfony działające pod kontrolą systemu Android. Komputery stacjonarne zwykle nie będą dobrymi celami, ponieważ nie są przenośne i przez większość czasu znajdują się w jednym miejscu. W nowszych modelach iPhone czy smartfonów z systemem Android sondowanie sieci może być domyślnie wyłączone lub kodowane, więc zanim się poddasz, powinieneś to sprawdzić w dokumentacji danego urządzenia. 2. Kiedy masz już wybrane urządzenie pod ręką, upewnij się, że jest na nim włączona obsługa połączeń Wi-Fi. 3. Teraz utwórz interfejs sieciowy pracujący w trybie monitorowania, tak jak to już robiliśmy wielokrotnie.
4. W kolejnym etapie postępowania użyjemy programu tshark do monitorowania pakietów sondowania. Aby to zrobić, powinieneś wykonać polecenie przedstawione poniżej: tshark -n -i mon0 subtype probereq
190
Rozdział 10. • Szyfrowanie WPS i sondowanie sieci
Sposób wywołania tego polecenia został pokazany poniżej.
5. Wyniki działania tego polecenia mogą być dosyć niezrozumiałe, ponieważ domyślny format wyników działania programu tshark nie był projektowany pod kątem czytelności, ale ilości zamieszczanych w nich danych. Przykładowe wyniki działania zostały przedstawione na rysunku poniżej.
6. W wynikach działania programu wyraźnie widać pakiety sondowania z adresem MAC oraz nazwą SSID sieci, aczkolwiek w razie potrzeby możesz nieco zmodyfikować format wyświetlanych danych. Aby to zrobić, powinieneś wykonać polecenie przedstawione poniżej: tshark -n -i mon0 subtype probereq -T fields -e separator= -e wlan.sa -e wlan_mgt.ssid
Sposób wywołania polecenia został pokazany na kolejnym rysunku.
7. Tym razem wyniki działania polecenia tshark są znacznie bardziej czytelne.
8. Skoro mamy już wyniki działania programu tshark wyświetlone w bardzo przejrzystym, czytelnym formacie, możemy utworzyć w języku Python odpowiedni skrypt, który będzie wykonywał takie polecenie i zapisywał jego wyniki działania w pliku na dysku do celów dalszej analizy. Zanim uruchomimy skrypt, musimy się upewnić, że interfejs sieciowy pracujący w trybie monitora jest gotowy do działania oraz że w bieżącym katalogu roboczym został utworzony plik o nazwie results.txt. Kod źródłowy naszego skryptu został przedstawiony poniżej:
191
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
import subprocess import datetime results = open("results.txt", "a") while 1: blah = subprocess.check_output(["tshark -n -i mon0 subtype probereq -T fields -e separator= -e wlan.sa -e wlan_mgt.ssid -c 100"], shell=True) splitblah = blah.split("\n") for value in splitblah[:-1]: splitvalue = value.split("\t") MAC = str(splitvalue[1]) SSID = str(splitvalue[2]) time = str(datetime.datetime.now()) Results.write(MAC+" "+SSID+" "+time+"\r\n")
Poniżej zamieszczamy krótki opis poszczególnych elementów skryptu: Instrukcje import subprocess oraz import datetime — zaimportowanie obu bibliotek pozwala na korzystanie w dalszej części skryptu z przechowywanych w nich funkcji. Biblioteka subprocess umożliwia monitorowanie interfejsów sieciowych z poziomu wiersza poleceń konsoli systemu Linux, natomiast w bibliotece subprocess znajdują się funkcje pozwalające na pobieranie dokładnych wartości czasu i daty. Instrukcja while 1 — powoduje, że program działa w niekończącej się pętli (dopóki nie zostanie zatrzymany przez użytkownika). Instrukcja results = open("results.txt", "a") — wykonanie tej instrukcji programu powoduje otwarcie pliku results.txt z prawami dołączania do niego nowych danych i przypisanie pliku do zmiennej results. Prawo dołączania danych do pliku powoduje, że skrypt może tylko dodawać nową zawartość do pliku, dzięki czemu jego dotychczasowa zawartość nie zostanie nadpisana. Instrukcja blah = subprocess.check_output(["tshark -n -i mon0 subtype probereq -T fields -e separator= -e wlan.sa -e wlan_mgt.ssid -c 100"], shell=True) — powoduje uruchomienie nowej instancji powłoki systemu i wykonuje w niej testowane przez nas wcześniej polecenie tshark. Jedyną różnicą jest tym razem dodatkowa opcja -c 100, która powoduje ograniczenie
działania programu do 100 zapytań. Dzięki takiemu rozwiązaniu po przechwyceniu 100 zapytań program sam zakończy działanie i będziemy mogli automatycznie przejść do analizy wyników działania bez konieczności ręcznego zatrzymywania programu. Ponieważ nasz skrypt działa w nieskończonej pętli, po zapisaniu wyników polecenia tshark działanie skryptu zostanie wznowione.
192
Wykonanie całej instrukcji przedstawionej powyżej spowoduje pobranie wyników działania polecenia tshark i przypisanie ich do zmiennej o nazwie blah. Instrukcja splitblah = blah.split("\n") — powoduje, że zawartość zmiennej blah zostaje podzielona na wiersze i przypisana do zmiennej o nazwie splitblah. Instrukcja for value in splitblah[:-1] — to pętla, która wykonuje instrukcje przedstawione poniżej dla każdego wiersza zawartości zmiennej splitblah, z pominięciem pierwszego, zawierającego nagłówki.
Rozdział 10. • Szyfrowanie WPS i sondowanie sieci
Instrukcja splitvalue = value.split("\t") — powoduje podzielenie kolejnych
wierszy na mniejsze fragmenty; jako separator poszczególnych pól używany jest znak tabulatora. Następne trzy wiersze kodu pobierają kolejne pola wiersza wyników i przypisują je
do odpowiednich zmiennych: MAC = str(splitvalue[1]) SSID = str(splitvalue[2]) time = str(datetime.datetime.now()) Instrukcja results.write(MAC+" "+SSID+" "+time+"\r\n") — łączy poszczególne
pola w jeden wiersz, oddzielając je od siebie znakami spacji, dopisuje na końcu wiersza sekwencję znaków reprezentujących powrót karetki i utworzenie nowego wiersza, a następnie zapisuje całość do pliku na dysku. Wynikiem działania skryptu będzie plik tekstowy zawierający czytelnie sformatowane wyniki działania polecenia tshark.
Co się stało? W tym ćwiczeniu za pomocą polecenia tshark przechwytywaliśmy pakiety sondujące, a następnie zapisywaliśmy je do pliku przy użyciu skryptu w języku Python. Zapewne nasuwa Ci się teraz pytanie, po co to wszystko. Przecież podobny rezultat mogliśmy osiągnąć poprzez dołączenie na końcu wywołania polecenia tshark komendy >> results.txt. To prawda, lecz dzięki zastosowaniu skryptu w języku Python utworzyliśmy coś w rodzaju frameworka, umożliwiającego łatwą integrację z innymi narzędziami, platformami wizualizacyjnymi, bazami danych i innymi usługami. Przykładowo, korzystając z bazy danych serwisu WiGLE, która mapuje identyfikatory SSID sieci bezprzewodowych do fizycznych lokalizacji w rzeczywistym świecie, możesz w prosty sposób dodać do naszego skryptu kilka wierszy kodu, które będą pobierały z wyników działania kolejne identyfikatory SSID i przesyłały zapytania o ich lokalizację do bazy WiGLE. Alternatywnym rozwiązaniem może być zapisywanie wyników działania do bazy danych MySQL, dzięki czemu możliwe stanie się późniejsze przetwarzanie danych za pomocą zapytań SQL. W tym podrozdziale poznałeś pierwsze kroki prowadzące do utworzenia swojego własnego rozwiązania wykorzystującego sondowanie sieci bezprzewodowych. Poprzez samodzielne eksperymentowanie i modyfikowanie kodu naszego prostego frameworka możesz z czasem utworzyć bardzo złożone i wyrafinowane narzędzie do testowania i monitorowania sieci bezprzewodowych.
193
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Zrób to sam — pomysły na rozbudowę Dzięki zastosowaniu języka Python możemy w łatwy sposób integrować ze sobą różnego rodzaju narzędzia, pozwalające na gromadzenie, przetwarzanie, analizowanie oraz prezentację danych. Narzędzia takie jak Maltego często posiadają również bezpłatne wersje, których możesz z powodzeniem używać do wizualizacji danych. W przypadku konieczności przetwarzania większych ilości danych wyniki działania możesz zapisywać bezpośrednio w bazach danych, takich jak MySQL, a następnie za pomocą odpowiednich skryptów w języku Python i zapytań SQL filtrować dane i przesyłać do wizualizacji w programie Maltego. Innym rozwiązaniem może być dołączenie do naszego frameworka dodatkowego kodu, realizującego przesyłanie zapytań o fizyczną lokalizację wybranych sieci do bazy WiGLE, gromadzenie informacji geolokacyjnych, a następnie przesyłanie ich do wizualizacji w programie Maltego. W razie potrzeby możesz również do wyświetlania danych używać rozwiązań sieciowych, takich jak Flask, Django czy PHP. Serdecznie zachęcamy Cię do samodzielnego eksperymentowania i poszukiwania innych rozwiązań pozwalających na przetwarzanie i prezentowanie danych oraz do samodzielnego modyfikowania i rozbudowywania istniejących narzędzi i tworzenia własnych programów.
Podsumowanie W tym rozdziale omawialiśmy szereg zagadnień związanych z przeprowadzaniem ataków na sieci wykorzystujące szyfrowanie WPS, które pojawiły się na rynku już po ukazaniu się pierwszego wydania naszej książki. W dalszej części rozdziału pokazaliśmy również, w jaki sposób za pomocą języka Python możesz integrować różne narzędzia przeznaczone do testowania i monitorowania sieci bezprzewodowych. To był już ostatni rozdział naszej publikacji. Mamy nadzieję, że znalazłeś w niej wiele ciekawych i przydatnych informacji. Do zobaczenia za siedem lat w trzeciej edycji tej książki!
194
A Szybki quiz — odpowiedzi na pytania
Rozdział 1. Tworzymy laboratorium sieci bezprzewodowych Pytanie
Odpowiedź
1.
Wykonaj polecenie ifconfig wlan0. W wynikach działania powinieneś zobaczyć ustawioną flagę UP, co oznacza, że karta jest aktywna i działa poprawnie.
2.
Dysk twardy będzie Ci potrzebny jedynie w sytuacji, kiedy będziesz chciał zachować jakieś dane pomiędzy kolejnymi uruchomieniami komputera (na przykład pliki konfiguracyjne, skrypty czy inne pliki danych).
3.
Wykonanie tego polecenia wyświetla na ekranie tabelę ARP komputera lokalnego.
4.
Powinieneś użyć pakietu WPA_Supplicant.
Kali Linux. Audyt bezpieczeństwa sieci Wi-Fi dla każdego
Rozdział 2. Sieci WLAN i związane z nimi zagrożenia Pytanie
Odpowiedź
1.
3
2.
3
3.
1
Rozdział 3. Omijanie uwierzytelniania sieci WLAN Pytanie
Odpowiedź
1.
4
2.
2
3.
1
Rozdział 4. Słabe strony protokołów szyfrowania w sieciach WLAN Pytanie
Odpowiedź
1.
3
2.
1
3.
2
Rozdział 5. Ataki na infrastrukturę sieci WLAN Pytanie
Odpowiedź
1.
1
2.
1
3.
1
4.
4
196
Dodatek A • Szybki quiz — odpowiedzi na pytania
Rozdział 6. Ataki na klienta sieci WLAN Pytanie
Odpowiedź
1.
1
2.
1
3.
2
4.
4
Rozdział 7. Zaawansowane ataki na sieci WLAN Pytanie
Odpowiedź
1.
2
2.
2
3.
4
4.
1
Rozdział 8. Ataki na sieci WLAN z szyfrowaniem WPAEnterprise i serwerami Radius Pytanie
Odpowiedź
1.
2
2.
2
3.
4
4.
2
197
Skorowidz A adres MAC filtrowanie, 55, 61 karty sieciowej, 25, 27 punktu dostępowego, Patrz: punkt dostępowy adres MAC algorytm AES-CCMP, 88 RC4, 76 TKIP, 88 atak anulowanie uwierzytelnienia, 58, 60, 110, 112, 114, 129, 135, 138, 140, 141 anulowanie skojarzenia, 110 CTS-RTS, 110 kryptograficzny, 75, 76 MITM, Patrz: atak typu Manin-the-Middle na infrastrukturę sieci bezprzewodowej, 107 słownikowy, 88, 89, 96, 108, 175 testowy, 182 tylne wejście, 120 typu brute-force, 109, 186 Caffe Latte, 129, 135, 136, 138 Deauthentication, Patrz: atak anulowanie uwierzytelnienia Disassociation, 129, 138, 140, 141 evil twins, Patrz: atak typu złośliwy bliźniak
Hirte, 129, 141 Honeypot, 129, 130, 135 Man-in-the-Middle, 114, 147, 148, 152 Misassociation, 129, 130, 131 odmowa usługi, 107, 110 złośliwy bliźniak, 107, 114, 119 Authenticator Nonce, Patrz: wartość losowa ANonce
B backdoor entry, Patrz: atak tylne wejście bezpieczeństwo, 176 bridge-utils, 120 broadcast deauthentication packet, Patrz: pakiet rozgłoszeniowy anulowania uwierzytelnienia
C channel hopping mode, Patrz: tryb skakania po kanałach Clear-to-Send/Ready-to-Send, Patrz: atak CTS-RTS Cowpatty, 96, 97
D deauthentication attack, Patrz: atak anulowanie uwierzytelnienia default regulatory settings, Patrz: karta sieciowa domyślne ustawienia wymogów prawnych
Denial of Service, Patrz: atak typu odmowa usługi disassociation attacks, Patrz: atak anulowanie skojarzenia Dnsspoof, 158, 160 DoS, Patrz: atak typu odmowa usługi dziennik połączeń, 27
E evil twin, Patrz: atak typu złośliwy bliźniak
F firewall, Patrz: zapora sieciowa four-way handshake, Patrz: uwierzytelnianie negocjacja czteroetapowa frame control, Patrz: ramka pole sterujące FreeRadius WPE, 168, 169, 171
I identyfikator BSSID, 116, 118 ESSID, 116, 130 SSID, 55, 89, 148 ujawnianie, 58, 59 ukrywanie, 56, 57 initialization vector, Patrz: wektor inicjalizujący interfejs sieciowy, 33, 36 TAP, 148
Skorowidz
intrusion prevention system, Patrz: system wykrywania włamań IV, Patrz: wektor inicjalizujący
K Kali Linux, 19 instalowanie, 19 na dysku USB, 21 w maszynie wirtualnej, 21 karta Alfa AWUS036H, 18 Edimax EW-7711UAN, 18 sieciowa adres MAC, 25, 27 domyślne ustawienia wymogów prawnych, 48, 51 interfejs sieciowy, 25 konfigurowanie, 24, 26 keystream, Patrz: klucz strumień klient bezprzewodowy, 129 klucz łamanie, 182 PMK, 97 PSK, 89, 97 PTK, 89 sesji, 89 strumień, 66, 68 WEP, 65, 135, 138 podłączanie do sieci, 102 WPA atak, 182 łamanie, 129, 143, 144, 145 podłączanie do sieci, 103 współdzielony, 65, 66, 89 kod MIC, 89 komenda airbase-ng, 118, 137 aircrack-ng, 61, 86, 88, 94, 95, 97 airdecap-ng, 101 aireplay-ng, 45, 58, 68, 71, 82, 83, 110 airmon-ng, 34, 35 airmon-ng start wlan0, 78 airodump-ng, 47, 62, 63, 66, 78, 83, 110, 118, 131, 133, 136, 190
airodump-ng --bssid, 42 airolib-ng, 99 brctl addbr, 149 brctl addif, 149 dnsspoof, 158 genpmk, 97 ifconfig mon0, 35 iwconfig mon0 channel, 43 ifconfig wlan0 netmask, 27 up, 78 ifconfig wlan1, 34 iw reg set, 48 iwconfig, 33, 102 iwconfig mon0, 43, 46 iwconfig wlan0 essid, 65 iwlist wlan0 essid, 27 scanning, 26 macchanger, 63 Pyrit, 99 radiusd, 170 reaver, 188 tshark, 190 Wireshark &, 36
L laboratorium sieci bezprzewodowych, 17 budowa, 18 lista preferowanych sieci, 130
M maszyna wirtualna VirtualBox, 21 mechanizm nasłuchiwania pakietów, 18, 24, 31, 43 wstrzykiwania pakietów, 18, 24, 31, 45 Message Integrity Check, Patrz: kod MIC metoda bit-flipping, 138 most sieciowy, 120, 123, 148, 149 adres IP, 149
O Open Authentication, Patrz: sieć z otwartym dostępem
P packet injection, Patrz: mechanizm wstrzykiwania pakietów packet sniffing, Patrz: mechanizm nasłuchiwania pakietów Pairwise Transient Key, Patrz: klucz PTK pakiet aircrack-ng, 61 ARP, 44, 138 nasłuchiwanie, Patrz: mechanizm nasłuchiwania pakietów Probe Request, 59, 60 Probe Response, 59, 60 przechwytywanie, 36, 37, 42, Patrz: mechanizm nasłuchiwania pakietów filtowanie, 38, 39, 41, 42 rozgłoszeniowy anulowania uwierzytelnienia, 112, 114 sondowania, 131, 161, 164, 190, 193 Wireshark, Patrz: Wireshark wstrzykiwanie, Patrz: mechanizm wstrzykiwania pakietów PNL, Patrz: lista preferowanych sieci podsłuchiwanie ruchu sieciowego, 152 polecenie, Patrz: komenda Preferred Network List, Patrz: lista preferowanych sieci Pre-Shared Key, Patrz: klucz PSK Probe Request, Patrz: pakiet sondowania program, Patrz też: komenda Wireshark, Patrz: Wireshark
199
Skorowidz
promiscous mode, Patrz: tryb nasłuchiwania protokół, Patrz też: szyfrowanie 802.11, 14 EAP, 88, 171 EAP-TLS, 176 EAP-TTLS, 175, 177 MSCHAP v2, 175 PEAP, 171, 176 konfigurowanie, 175 łamanie zabezpieczeń, 172 PEAPv0, 171 PEAPv1, 171 PSK, 88 WEP, 66, 75, 76, 135 przełamywanie zabezpieczeń, 77, 85, 88 WPA, 75, 76, 88 WPA2, 76 WPA-Enterprise, 167, 177, 182 przechwytywanie sesji, 157, 160 modyfikacja danych, 161 punkt dostępowy, 18, 21 adres IP, 22 adres MAC, 27, 89, 144 fałszowanie, 107, 114, 115, 116 dziennik połączeń, Patrz: dziennik połączeń fałszywy, 133, 137, 148 FreeRadius WPE, 169 konfiguracja zabezpieczeń, 161, 164 konfigurowanie, 22, 24 łamanie hasła, 109 nieautoryzowany, 107, 120, 123 tablica połączeń, 72 tryb otwartego dostępu, Patrz: tryb otwartego dostępu Python, 190, 191, 193, 194
R ramka danych, 33, 39 podtyp, 32, 33, 40 pole sterujące, 32 rozgłoszeniowa, 56 sterująca, 33, 39
200
zarządzająca, 32, 39 Reaver, 188 Remote Authentication Dial In User Service, Patrz: serwer Radius rogue access point, Patrz: punkt dostępowy nieautoryzowany router TP-LINK TL-WR841N Wireless, 18, 21, 108
S serwer Radius, 88, 168 Shared Key Authentication, Patrz: uwierzytelnienie klucz współdzielony sieć bezprzewodowa częstotliwość, 45, 46, 48 infrastruktura, 107, 183 kanał, 46 laboratorium, Patrz: laboratorium sieci bezprzewodowych ramka, Patrz: ramka rozpoznanie, 181 sondowanie, 59, 130, 135, 161, 164, 189, 193 WLAN, 32 z otwartym dostępem, 55 uwierzytelnienie, Patrz: uwierzytelnienie z otwartym dostępem, 64 preferowana, 130 strumień klucza, Patrz: klucz strumień Supplicant Nonce, Patrz: wartość losowa SNonce system wykrywania włamań, 120 szyfrowanie, 76 algorytm, Patrz: algorytm WEP, 24, 28, 76, 77, 85, 88, 119, 140 podłączanie do sieci, 102 WPA, 24, 76, 88, 119, 140 podłączanie do sieci, 103 WPA2, 76 WPS, 185 atak, 186 wady, 186
T Temporal Key Integrity Protocol, Patrz: algorytm TKIP test penetracyjny, 17, 18, 102, 147 atak, 182 metodologia, 179 planowanie, 180 raport, 183 wstrzykiwania pakietów, 45 tryb monitora, 33, 36 nasłuchiwania, 33 otwartego dostępu, 24 skakania po kanałach, 46, 47 szyfrowany, Patrz: szyfrowanie
U uwierzytelnianie fałszowanie, 88 klucz współdzielony, 65, 66 negocjacja czteroetapowa, 88, 89, 92, 97
W, Z wartość losowa ANonce, 89, 144 SNonce, 89, 144 wektor inicjalizujący, 76 WiFi Pineapple, 185 WiFishing, 164 Wired Equivalent Privacy, Patrz: klucz WEP Wired Equivalent Protocol, Patrz: protokół WEP Wireless Eavesdropping, Patrz: podsłuchiwanie ruchu sieciowego Wireless Protected Setup, Patrz: szyfrowanie WPS Wireshark, 36, 101, 131, 138 filtr, 38, 39, 41, 42, 43, 44, 59 Follow a stream, 44 Wright Joshua, 168 wyszukiwarka Google, 157 zapora sieciowa, 120