Laboratorium nr 4 Ataki aktywne I. Przepełnienie tablicy CAM przełącznika Tablica CAM (Content-addressable memory) przełącznika zawiera powiązanie adresów warstwy 2 (Ethernet) z portami fizycznymi przełącznika oraz sieciami VLAN do których przyporządkowany jest dany adres. Przepełnienie tablicy CAM następuje, gdy na danym porcie przełącznik obierze zbyt duża ilość pakietów z różnymi źródłowymi adresami MAC (Proszę sprawdzić jaki jest maksymalny rozmiar tablicy CAM na przełącznikach Cisco Catalyst 2960 używanych w trakcie ćwiczenia). Przełącznik po otrzymaniu ramki z nieznanym adresem MAC zachowuje się jak koncentrator i rozsyła ramkę na wszystkie porty w obrębie danej sieci VLAN poza portem źródłowym na którym pojawiła się ramka. Zastanów się jakie może to mieć skutki dla bezpieczeństwa przesyłanych danych. Wykonanie ćwiczenia 1) Do przeprowadzenia ataku potrzebne będą 4 komputery oraz przełącznik (Rysunek 1). Komputer Atakującego powinien działać pod kontrolą systemu Debian podczas uruchamiania należy wpisać dragonlab. Na pozostałych komputerach uruchamiamy system Windows. 2) W trakcie instalacji Debiana, można zestawić sieć w której będzie przeprowadzany atak. Schemat zestawianej sieci został przedstawiony na rysunku 1. Użytkownik 1 będzie starał się logować do serwera FTP uruchomionego na komputerze Użytkownika 2, Atakujący będzie zalewał sieć losowymi pakietami przepełniając tablice CAM przełącznika, a Obserwator będzie monitorował ruch w sieci za pomocą programu Wireshark.
Użytkownik 1 Użytkownik 2 (Serwer FTP) fa 0/1 fa 0/2 fa 0/3 Cisco fa 0/4 Catalyst 2960 Obserwator (Wireshark) Atakujący (System Debian) Rysunek 1. Schemat sieci wykorzystywanej do ataku CAM table overflow. 3) Na jednym z komputerów z Windowsem należy uruchomić konsolę konfiguracyjną przełącznika. W tym celu kabel konsolowy (rollover) z komputera należy wpiąć do specjalnie wyprowadzonego gniazda w szafie oznaczonego SXX, gdzie XX to numer przełącznika w szafie. Następnie proszę uruchomić program Putty, zaznaczyć w nim tryb połączenia szeregowego i uruchomić połączenie. Konieczne może okazać się wciśnięcie enter, aby zobaczyć informacje z przełącznika. Po uruchomieniu systemu operacyjnego przełącznika pojawiają się następujące pytania: Would you like to enter the initial configuration dialog? [yes/no]: (należy odpowiedzieć no) Would you like to terminate autoinstall? [yes]: (należy wcisnąć enter lub wpisać yes) Następnie możemy przystąpić do konfiguracji przełącznika. Chcemy przypisać wszystkie używane porty (fa0/1 fa0/4) do jednego VLANu, np. VLANu 100. W tym celu kolejno wykonujemy następujące komendy: Switch> enable Switch# configure terminal Switch(config)# interface range fa0/1-4 Switch(config-if-range)# switchport mode access Switch(config-if-range)# switchport access vlan 100
4) Na komputerze obserwatora, należy uruchomić Wireshark a. 5) Komputery użytkownika 1 oraz użytkownika 2 należy zaadresować w jednej podsieci tak aby była między nimi łączność. Na komputerze użytkownika 2 uruchamiamy program serwera FTP (Start Programy FTP Server), w zakładce Show user accounts dodajemy nowego użytkownika i uruchamiamy serwer przyciskiem Start. 6) Na stacji z Debianem należy zainstalować pakiet dsniff wykonujący atak CAM table overflow (generujący pakiety z losowymi adresami źródłowymi MAC): W wierszu poleceń wpisujemy: sudo apt-get install dsniff Jeśli będą problemy z zainstalowaniem pakietu z domyślnych repozytoriów, proszę dodać nowe repozytoria do pliku: /etc/apt/sources.list Przykładowe repozytoria: deb http://ftp.pl.debian.org/debian/ squeeze main non-free contrib deb-src http://ftp.pl.debian.org/debian/ squeeze main non-free contrib deb http://security.debian.org/ squeeze/updates main contrib non-free deb-src http://security.debian.org/ squeeze/updates main contrib non-free deb http://ftp.pl.debian.org/debian/ squeeze-updates main non-free contrib deb-src http://ftp.pl.debian.org/debian/ squeeze-updates main non-free contrib Po dodaniu wpisów do pliku, należy zaktualizować pakiety poleceniem: sudo apt-get update 7) Przystępujemy do ataku. Na stacji z debianem uruchamiamy aplikację atakującą. Atak przepełniający powinien trwać około 20-30 sekund. W trakcie trwania ataku należy nawiązać sesję ftp między komputerem użytkownika 1, a serwerem. Jako klienta FTP można użyć, np. przeglądarki. Generowanie pakietów rozpoczynamy poleceniem: sudo macof i eth1 a kończymy kombinacją klawiszy ctrl+c. Przy dłuższym ataku mogą wystąpić problemy z zawieszaniem się przełącznika lub nieprawidłowym działaniem stacji obserwatora spowodowanym słabą wydajnością karty sieciowej.
8) Po przeprowadzonym ataku, można sprawdzić, czy faktycznie się powiódł, sprawdzając czy komputer obserwatora przechwycił hasło sesji ftp. Wygodnie jest użyć odpowiedniego filtru w programie Wireshark. Jeśli nie udało się przechwycić hasła, na przełączniku należy wykonać komendę: Switch# clear mac-address-table dynamic (wyjście do trybu Switch# poprzez komendy exit) I przeprowadzić atak ponownie. Należy użyć innej przeglądarki lub wyczyścić historię przeglądania, gdyż przeglądarka bieżące hasło zapisała już do pamięci podręcznej. 9) Do zapobiegania atakowi CAM Table Overflow służy mechanizm port security. Aby skonfigurować go na przełączniku należy wpisać następujące komendy: Switch(config)# interface range fa0/1-4 Switch(config-if-range)# switchport port-security Switch(config-if-range)# switchport port-security maximum 5 vlan access Switch(config-if-range)# switchport port-security violation shutdown Switch(config-if-range)# switchport port-security macaddress sticky Proszę wyjaśnić do czego służą poszczególne komendy. 10) Przeprowadzając kolejny atak (uruchamiając kolejny raz program macof) można sprawdzić czy wprowadzone komendy przyniosły efekt. Co się stało? Jak zareagował przełącznik? Czy można przechwycić hasła wykorzystywane do innych połączeń (http, https, telnet, ssh)?
II. ARP Spoofing Address Resolution Protocol (ARP) to protokół sieciowy, którego zadaniem jest zamiana adresów warstwy sieciowej (IP) na adresy warstwy łącza danych (MAC). Protokół ten działa następująco: Host chcący ustalić adres fizyczny urządzenia wysyła żądanie ARP request do wszystkich hostów znajdujących się w tej samej sieci. Na zapytanie odpowiada tylko host, którego adres IP jest identyczny z adresem IP umieszczonym w zapytaniu. Odpowiedź zawiera adres IP i fizyczny hosta docelowego. Odebrany adres fizyczny zapisywany jest w tablicy ARP. Urządzenie sieciowe w tablicy ARP przetrzymuje pary adresów IP i fizycznych, dzięki temu nie musi wysyłać zapytania ARP request przy każdym wysyłanym pakiecie. Atak ARP spoofing polega na przechwytywaniu pakietów ARP i ingerowaniu w nie w taki sposób, by pośredniczyć w transmisji między dwoma urządzeniami. Przykładowo, atakujący który chciałby pośredniczyć w transmisji między Użytkownikiem, a Ruterem (Rysunek 2), modyfikuje tablice ARP obu urządzeń w taki sposób, że Ruter wysyłający pakiety na adres IP hosta wysyła je do Atakującego (na jego adres MAC), a Użytkownik wysyłając pakiety pod adres IP swojej bramy domyślnej wysyła je również do atakującego. Użytkownik 1 Ruter Przełącznik Atakujący Rysunek 2. Przykładowy schemat ataku ARP spoofing.
Wykonanie ćwiczenia 1) Należy zestawić sieć taką sieć jak na rysunku 3. Internet Użytkownik Serwer HTTPS Atakujący Rysunek 3. Schemat sieci wykorzystywanej do ataku ARP spoofing. W tym celu dwóm komputerom należy zapewnić dostęp do Internetu. 2) Na komputer atakującego proszę ściągnąć i zainstalować aplikację Cain & Abel v4.9.40. 3) Po uruchomieniu programu należy skonfigurować go tak, był w stanie wykonać atak zatruwanie ARP (ARP poisoning): Należy uruchomić tryby Sniffer i ARP Poison Routing poprzez przycisk Będąc w zakładce Sniffer nacisnąć przycisk i zeskanować sieć w poszukiwaniu dostępnych hostów. Przebywając nadal w zakładce Sniffer naciskamy u dołu zakładkę APR, ponownie naciskamy, w celu dodania adresów urządzeń, które ma podsłuchiwać atakujący (adres IP użytkownika i jego bramy domyślnej). 4) Na tym etapie atakujący powinien uczestniczyć w transmisji między użytkownikiem, a jego bramą domyślną. 5) Na komputerze użytkownika należy nawiązać połączenie z dowolnym serwerem za pomocą zabezpieczonego połączenia HTTPS. Można skorzystać tutaj z popularnych portali społecznościowych lub kont poczty elektronicznej. Proszę używać fikcyjnych danych do logowania. 6) Po nawiązaniu sesji HTTPS, na komputerze atakującego jest możliwość oglądnięcia zarówno certyfikatu, jak i haseł użytych w czasie jej trwania.
Czy możliwa jest komunikacji bez protokołu ARP? W jaki sposób atakujący może ingerować w tablicę ARP użytkownika? O czym informuje komunikat przeglądarki podczas próby nawiązania sesji HTTPS? Dlaczego przeglądarka zgłasza błąd? Proszę porównać komunikaty dwóch dostępnych przeglądarek? Proszę subiektywnie ocenić, który z nich zapewnia większe bezpieczeństwo? Czy połączenie HTTPS zawsze jest bezpieczne? Jaki mechanizm należałoby zastosować, aby zabezpieczyć sieć przed atakiem typu ARP spoofing/poisoning? Proszę go krótko opisać. Po wykonaniu laboratorium na komputerze z Debianem należy ponownie zainstalować Windows (komenda labreinstall). Na pozostałych należy usunąć oprogramowanie instalowane w trakcie ćwiczenia.