Projekt LAN Temat: Skaner bezpieczeństwa LAN w warstwie 2 Prowadzący: dr inż. Krzysztof Szczypiorski Studenci: Kończyński Marcin Szaga Paweł 1
Spis treści Strona tytułowa 1 Spis treści 2 Informacje ogólne 3 Opis protokołu DHCP 4 Instalacja NDIS 4 Instrukcja obsługi 5 Atak CAM Table Overflow sprawozdanie 8 Atak DHCP Starvation sprawozdanie 12 Atak Rouge DHCP sprawozdanie 15 2
Informacje ogólne Projekt ma na celu stworzenie zestawu narzędzi przeprowadzających wybrane ataki na lokalną sieć komputerową w warstwie drugiej oraz ocenę ich skuteczności. Opis techniczny Wszystkie aplikacje zostały napisane w języku C# na platformę MS Windows. Do ich działania wymagany jest Framework.NET. Do wysyłania i odbierania ramek używany jest zmodyfikowany NDIS (Network Driver Interface Specification) - interfejs API dla kart sieciowych - umożliwiający wysyłanie i odbieranie ramek ethernetowych w trybie RAW dla dowolnych adresów MAC w polu nadawcy i odbiorcy. Działanie aplikacji zostało przetestowane pod systemem operacyjnym Windows XP 32bit oraz Windows Vista 32bit. Przeprowadzane ataki krótki opis DHCP Starvation atak typu DoS, aplikacja stara się pozyskać od serwera DHCP wszystkie adresy IP które jest w stanie on przydzielić, tak aby nie był on w stanie świadczyć swoich usług pozostałym klientom Rouge DHCP fałszywy serwer DHCP ma na celu podanie klientom fałszywego adresu bramy (gateway) lub/i adresów serwerów DNS (umożliwia to ewentualnemu atakującemu przeprowadzenie ataku typu Man in the middle) CAM Table Overflow przepełnienie tablicy przypisań MAC port znajdującej się w switchu tak aby zaczął się on zachowywać tak jak hub (koncentrator), dzięki czemu możliwe stanie się odbieranie ramek przeznaczonych dla innych stacji znajdujących się w danej sieci Sprzęt użyty do testowania ataków Linksys WAG200G router domowy z modemem ADSL i AP WiFi, posiada wbudowany serwer DHCP 8 portowy switch Allied Telesis AT-FS708LE - wielkość tablicy CAM 4.000 wpisów 3
Opis protokołu DHCP W trakcie procesu przydzielania adresu IP za pomocą protokołu DHCP klient i serwer wymieniają ze sobą następujące komunikaty. DHCP Discovery klient wysyła prośbę o ujawnienie się dostępnych serwerów DHCP w sieci DHCP Offer serwer DHCP wysyła ofertę adresu IP dla klienta DHCP Request klient prosi serwer DHCP o konkretny adres IP oraz parametry dodatkowe, takie jak adresy serwerów DNS, adres bramy (gateway) DHCP Acknowledgment (ACK) serwer przesyła klientowi informację że przydziela mu konkretny adres IP a także informuje go o adresach serwerów DNS, adresie bramy. DHCP NAK serwer odmawia przydzielenia danych parametrów klientowi DHCP DECLINE wskazanie że adres sieciowy jest już używany DHCP RELEASE zwolnienie adresu DHCP INFORM zadanie przydziału parametrów (bez adresu IP). Wszystkie wiadomości przesyłane są za pomocą bezpołączeniowego protokołu transportowego UDP. Instalacja NDIS dla MS Windows Sterowniki należy zainstalować wchodząc we właściwości danego połączenia sieciowego, klikając przycisk "Zainstaluj", wybierając "Protokół", następnie "Z dysku". Należy odnaleźć na dysku pobrany plik *.inf a następnie kliknąć "OK". Zainstaluje to sterowniki do każdego połączenia sieciowego istniejącego w systemie. Należy się upewnić, czy sterowniki są włączone dla danego połączenia, we właściwościach połączenia pole wyboru powinno być zaznaczone przy "Raw Packet NDIS Protocol Driver". Aby umożliwić działanie usłudze sterowników NDIS należy otworzyć wiersz poleceń i wpisać: "net start ndisprot". Istota tego sterownika polega na tym, że można wyłączyć każdy protokół we właściwościach danego połączenia sieciowego (np. IPv4 i IPv6) i będziemy mogli nadal odbierać i wysyłać ramki Ethernetowe. Sterownik działa także w przypadku gdy wszystkie inne protokoły są włączone. 4
Instrukcja obsługi Projekt składa się z dwóch aplikacji aplikacji głównej (LAN.exe) oraz aplikacji pomocniczej (MACFloodResponder.exe) wykorzystywanej przy ataku CAM Table Overflow. Po uruchomieniu głównego programu pokazuje się okno wyboru karty sieciowej. Na liście wyboru znajdują się tylko te karty sieciowe dla których aktywny jest sterownik NDIS. Po wybraniu karty sieciowej należy nacisnąć przycisk Lock card. Program umożliwia przeprowadzenie trzech ataków na sieć lokalną. DHCP Stravation Queries amount liczba zapytań do serwera DHCP program będzie próbował pobrać od serwera DHCP tyle adresów IP ile wpisze w to pole użytkownik. Start rozpoczyna atak Stop kończy atak 5
Rouge DHCP Fake DNS1 fałszywy adres pierwszego serwera DNS Fake DNS2 fałszywy adres drugiego serwera DNS Fake Gateway adres fałszywej bramy DHCP Server IP adres serwera DHCP Subnet mask maska podsieci dla klienta Starting IP od tego adresu IP nasz serwer rozpocznie przydzielanie adresów IP klientom Start rozpoczyna atak Stop kończy atak CAM Table Overflow Frame number liczba ramek Ethernetowych do przesłania Start rozpoczyna atak Stop kończy atak 6
About Okno informacyjne o programie. Simple responder Aplikacja pomocnicza MACFloodResponder.exe. Po uruchomieniu należy wybrać numer odpowiedniej karty sieciowej i nacisnąć ENTER. 7
Atak CAM Table Overflow Atak ten udało nam się przeprowadzić skutecznie tylko na 8-portowym switchu Allied Telesis AT-FS708LE, natomiast okazał się on nieskuteczny na urządzenie dostępowe Linksys WAG200G. Do przeprowadzenia ataku użyliśmy dwóch komputerów. Jeden zasypywał dane urządzenie sieciowe ramkami ethernetowymi zawierającymi losowe adresy MAC nadawcy i odbiorcy, natomiast drugi odpowiadał na te wszystkie ramki. Odpowiedź na ramki była konieczna, gdyż w przypadku jej braku nie powstawał nowy wpis do tablicy CAM. Obydwa testowane urządzenia sieciowe zapamiętywały pod którym portem jest widoczny jaki adres MAC kolejne ramki wysyłane do tego samego odbiorcy były kierowane już tylko na jeden port. Gdy tablica CAM się całkowicie zapełniła 8- portowy switch Allied Telesis AT-FS708LE zaczynał zachowywać się jak hub i transmitować ramki na wszystkie porty. Dzięki temu mogliśmy przeglądać transmisję innych użytkowników. Urządzenie dostępowe Linksys WAG200G po zapełnieniu całej tablicy CAM zaczynało zapamiętywać kolejne wpisy w miejsce starych, niemożliwe było więc przepełnienie tablicy CAM w tym przypadku. Poniżej screeny przedstawiające efekt działania programu w trakcie ataku. Wysłanie 5 losowych ramek. 8
Odpowiedź na 5 ramek Podgląd transmisji z użyciem sniffera Wireshark 5 ramek wysłanych, 5 odebranych 9
Właściwy atak - wysłanie 8000 ramek Po przepełnieniu tablicy CAM w switchu Allied Telesis AT-FS708LE z użyciem dwóch komputerów, podłączyliśmy do switcha trzeci komputer. Switch z przepełnioną tablicą CAM nie był w stanie się nauczyć pod którym fizycznym portem znajduje się trzeci komputer (192.168.10.3), dzięki temu pakiety wysyłane do niego trafiały do pozostałych komputerów. Testowaliśmy to za pomocą pakietów ICMP. Ping (echo request) wysłany z hosta 192.168.10.2 do 192.168.10.3 widziany był z hosta 192.168.10.1. Podobnie ping z 192.168.10.3 do 192.168.10.2, powodował, że z hosta 192.168.10.1 można było zobaczyć echo replay adresowane do 192.168.10.3 Poniższe screeny przedstawiają opisaną powyżej sytuację. 10
Ping z 192.168.10.2 do 192.168.10.3 widziany z hosta 192.168.10.1 Ping z 192.168.10.3 do 192.168.10.2 widziany z hosta 192.168.10.1 11
Atak DHCP Starvation Atak ten przeprowadzaliśmy na serwer DHCP znajdujący się w urządzeniu dostępowym Linksys WAG200G. Atakujący program w pętli prosi serwer DHCP o przydzielenie kolejnego adresu IP. Gdy liczba przydzielonych adresów IP osiągnęła limit ustawiony w konfiguracji serwera DHCP, serwer ten przestał odpowiadać na wezwania typu: DHCP Discovery. Serwer zachowywał się tak, jakby go nie było w sieci. Oznacza to, że atak typu DoS (Denial of Service) został wykonany poprawnie. Pobieranie od serwera DHCP kolejnych adresów IP Serwer przydzielił 10 adresów IP (na tyle był ustawiony w konfiguracji) Program nie odebrał oferty gdy prosił o 11 z kolei adres IP, gdyż serwer DHCP nie miał już do zaoferowania żadnego adresu IP. 12
Poniższy screen przedstawia jak wygląda tablica DHCP w urządzeniu dostępowym Linksys WAG200 po przeprowadzeniu ataku. 13
Wireshark pakiety przesłane w trakcie wykonywania ataku. Każda transakcja posiada swój oddzielny numer Transaction ID, dzięki czemu wiadomo które pakiety są ze sobą powiązane. Prawidłowa wymiana komunikatów: klient serwer: DHCP Discover serwer klient: DHCP Offer klient serwer: DHCP Request serwer klient: DHCP ACK Jak widać, w przypadku proszenia o 11 z kolei adres IP wymiana wiadomości kończy się na DHCP Discover, serwer przestaje odpowiadać na zapytania DHCP Discover. 14
Atak Rouge DHCP Atak ten przeprowadzaliśmy w sieci lokalnej opartej na 8-portowym switchu firmy Allied Telesis AT-FS708LE a także na sieci opartej na urządzeniu dostępowym Linksys WAG200G po uprzednim przeprowadzeniu ataku DHCP Starvation. Nasz program udawał serwer DHCP i na każde żądanie klienta przesyłał mu adres IP oraz nieprawdziwe informacje o sieci takie jak fałszywy adres bramy internetowej oraz fałszywe adresy DNS. Atak udał się bez problemów na sieci opartej na switchu Allied Telesis AT-FS708LE. Próby ataku sieci opartej na urządzeniu Linksys WAG200G z włączonym serwerem DHCP, który został poprzednio zaatakowany atakiem DHCP Starvation zakończyły się niepowodzeniem. Serwer DHCP wbudowany w urządzenie pomimo iż nie odpowiadał na komunikat DHCP Discovery, odpowiadał na DHCP Request komunikatem DHCP NAK. Komunikat DHCP NAK pochodzący od serwera w routerze był wysyłany nieco szybciej niż komunikat DHCP ACK z naszego programu, więc klient odbierał ciągle DHCP NAK. Dopiero wyłączenie w konfiguracji urządzenia dostępowego Linksys WAG200 serwera DHCP umożliwiło przeprowadzenie skutecznego ataku na sieć opartą nim. Komputery pracujące pod kontrolą systemu operacyjnego Windows oraz Linux akceptowały przekazane przez nasz program dane. Poniżej screeny potwierdzające udany atak - sieć z urządzeniem Linksys WAG200 przy wyłączonym sprzętowym serwerze DHCP. Program przydziela kolejne adresy IP dwóm kolejno zgłaszającym się klientom. 15
Przydzielenie adresów IP klientowi MS Windows XP oraz Ubuntu 9.10 Jako pierwszy do sieci dołączany był klient z MS Windows XP. Windows XP Home Edition przydzielone parametry przez podstawiony programowy serwer DHCP 16
Ubuntu 9.10 przydzielone parametry przez podstawiony programowy serwer DHCP Poniżej atak nieudany - sieć z urządzeniem Linksys WAG200 z włączonym serwerem DHCP uprzednio zaatakowanym atakiem DHCP Stravation. Nasz program przydziela kolejne adresy IP temu samemu klientowi (klient nie jest w stanie ich przyjąć) 17
Przechwycona wymiana wiadomości pomiędzy urządzeniami Klient wysyła wiadomość DHCP Discover. Sprzętowy serwer DHCP (po poprzednim ataku) nie jest w stanie przydzielać adresów IP, zatem nie odpowiada na DHCP Discover klienta. Klient odbiera dzięki temu DHCP Offer od naszego programu. Klient po odebraniu DHCP Offer wysyła DHCP Request. Sprzętowy serwer DHCP odpowiada na DHCP Request komunikatem DHCP NAK, gdyż nie jest w stanie przydzielać adresów. Komunikat DHCP NAK od 192.168.1.1 (zaatakowany serwer DHCP w Linksys WAG200) dochodzi do klienta wcześniej niż komunikat DHCP ACK od 192.168.10.2 (nasz program). Sytuacja ta jest spowodowana tym, że dedykowany serwer DHCP jest w stanie szybciej odbierać i odpowiadać na pakiety, niż program napisany w wysokopoziomowym języku działający na komputerze który wykonuje wiele różnych zadań w danej chwili. Dla klienta liczy się wiadomość którą odebrał wcześniej, więc skoro odebrał DHCP NAK, ponawiał wiadomość DHCP Discover wielokrotnie, z analogicznym skutkiem. 18