Sniffing i spoofing w sieciach przełączanych [arp-spoof, dns
Transkrypt
Sniffing i spoofing w sieciach przełączanych [arp-spoof, dns
Projektowanie Bezpieczeństwa Sieci i Serwerów mgr inż. Adam Mencwal Katedra Informatyki Stosowanej [email protected] http://amencwal.kis.p.lodz.pl/ Bezpieczeństwo teleinformatyczne Bezpieczeństwo teleinformatyczne – zbiór zagadnień z dziedziny telekomunikacji i informatyki związany z szacowaniem i kontrolą ryzyka wynikającego z korzystania z komputerów, sieci komputerowych i przesyłania danych do zdalnych lokalizacji, rozpatrywany z perspektywy: - poufności (szyfrowanie/utajnianie danych) - integralności (podmiana stron www, wykradanie baz danych, kradzież tożsamości, botnety) - dostępności (ataki typu Denial-of-Service, spam) (źródło: http://pl.wikipedia.org/wiki/Bezpieczeństwo_teleinformatyczne) (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Źródła zagrożeń Użytkownik social engineering (np. wykradanie haseł) malware (opr. 'złośliwe') System Operacyjny exploity/rootkity spam Denial of Service scanning (skanowanie) Sprzęŧ i Sieć Komputerowa spoofing(fałszowanie) sniffing (podsłuchiwanie) (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Sniffing, podsłuch Sniffer – program przechwytujący dane na łączu przy włączonym trybie 'promiscuous' karty sieciowej. Umożliwia przegląd i analizę treści pakietów wraz z informacjami kontrolnymi takimi jak: -adresy źródłowe i docelowe IP i MAC -numery portów źródłowych i docelowych -numery sekwencyjne TCP -flagi TCP -wartości TTL i inne (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Nagłówek protokołu IP (Internet Protocol) 0 4 wersja 8 długość nagłówka 12 16 Typ usługi (TOS) identyfikator czas życia pakietu (TTL) 20 24 28 32 łączna długość pakietu (TL) znaczniki protokół warstwy wyższej przesunięcie fragmentu suma kontrolna nagłówka adres źródłowy adres docelowy opcje dopełnienie dane (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Pola nagłówka protokołu TCP 0 4 8 12 16 20 port źródłowy 24 28 32 port docelowy numer sekwencyjny numer potwierdzający przesunięcie danych zarezerwowane rozmiar okna bity sterujące suma kontrolna nagłówka wskaźnik danych pilnych opcje dopełnienie dane (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Uwierzytelnianie i bezpieczeństwo w sieciach bezprzewodowych OPEN BRAK JAKIEGOKOLWIEK SZYFROWANIA !!! ● transmisja nawiązywana na podstawie SSID ● zwykly_tekst )))))))))))))))))))))))) AP szyfrowanie słabym (64 bit) algorytmem na podstawie stałego klucza znanego obu stronom przed rozpoczęciem procesu autentykacji ● możliwość deszyfracji klucza metodą brute-force ● możliwość podmiany danych w ramce bez znajomośći klucza(!) ● PRE-SHARED KEY (WEP) d#2F37f2Hj )))))))))))))))))))))))) AP szyfrowanie silnym (172 bit) algorytmem na podstawie początkowego stałego klucza znanego obu stronom przed rozpoczęciem procesu autentykacji ● dynamiczna zmiana klucza (algorytm TKIP) ● zabezpieczenie przed podmianą danych w ramce (MIC – message integrity code) ● WPA – PSK (PERSONAL) d#2F37f2Hj )))))))))))))))))))))))) AP WPA – 802.1X (ENTERPRISE) d#2F37f2Hj )))))))))))))))))))))))) te same cechy co WPA – PSK ale z zastosowaniem złożonej infrastruktury autentykacyjnej (np. serwer RADIUS) ● możliwość wszechstronnej konfiguracji ( wyzwanieodpowiedź, hasła tymczasowe, żetony, certyfikaty, klucz publiczny, itp) ● AP (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Zasada działania przełącznika, mac-flooding Tablica CAM nr portu 00:0F:B0:75:DD:38 odebrałem wysyłam odebrałem ramkę ramkę ramkę doodod 1A:0A:AC:3C:7D:01 0B:BF:10:5E:CD:13 1A:0A:AC:3C:7D:01 0B:BF:10:5E:CD:13 wysyłam odebrałem ramkę ramkę dood 00:0F:B0:75:DD:38 C5:C4:AC:17:D3:18 adres MAC 1 00:0F:B0:75:DD:38 2 0B:BF:10:5E:CD:13 3 C5:C4:AC:17:D3:18 4 1A:0A:AC:3C:7D:01 1 2 3 4 dostałem dostałem ramkę ramkę dostałemdo ramkę od C5:C4:AC:17:D3:18 0B:BF:10:5E:CD:13 dostałemdo ramkę od 0B:BF:10:5E:CD:13 00:0F:B0:75:DD:38 od 1A:0A:AC:3C:7D:01 do 00:0F:B0:75:DD:38 dopisuję adres nadawcy do od 00:0F:B0:75:DD:38 do 1A:0A:AC:3C:7D:01 dopisuję adres nadawcy do tablicy tablicy CAM CAM dopisuję adres nadawcy do tablicy CAM znam adresata, więc wysyłam tylko na port dopisuję adreswięc nadawcy do tablicy znam adresata, wysyłam tylko naCAM port 21 znam adresata, więc wysyłam tylko na port 1 nie znam adresata, więc rozsyłam na wszystkie porty C5:C4:AC:17:D3:18 wysyłam ramkę do 0B:BF:10:5E:CD:13 1A:0A:AC:3C:7D:01 wysyłam odpowiedź do 00:0F:B0:75:DD:38 (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Protokół ARP (Address Resolution Protocol) tablica ARP tablica ARP IP MAC chce wysłać pakiet do 10.0.0.3... jednak nie ....... ............ ja nie mam wiem jak zaadresować ....... ............ adresu ramkę bo nie mam w 10.0.0.3... nie dostałem ramkę tablicy ARP żadnej IP:... 10.0.0.5 odpowiadam adresowaną do informacji nt temat.. MAC: AA:0C:11:32:79:1E mnie, z Wysyłam więc zapytanie nieznanego mi do wszystkich (na adres adresu MAC... broadcastowy wpisuję go do FF:FF:FF:FF:FF:FF) tablicy ARP IP 10.0.0.1 ....... MAC 00:0F:B0:75:DD:38 ............ chcę wysłać pakiet do 10.0.0.1... wiem IP: 10.0.0.4 jakjazaadresować nie mam ramkę mam w MAC: BA:00:A0:76:DD:01 adresubo 10.0.0.3... ARP ... nie tablicy odpowiadam informacje o jego adresie MAC ja mam adres 10.0.0.3! odpowiadam nadawcy! ja nie mam adresu 10.0.0.3.. nie odpowiadam.. dostałem odpowiedź ARP! już wiem jak IP: 10.0.0.2 IP: 10.0.0.3 IP: 10.0.0.1 adresować ramkę do 10.0.0.3..! dopisuję MAC: 00:0F:B0:75:DD:38MAC: 0B:BF:10:5E:CD:13 MAC: 1A:0A:AC:3C:7D:01 informację do tablica ARP tablica ARP tablica ARP IP MAC tablicy ARP i IP MAC IP MAC wysyłam ramkę. 10.0.0.4 00:0F:B0:75:DD:38 10.0.0.3 1A:0A:AC:3C:7D:01 ....... ....... ............ ............ ....... ....... ............ ............ (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej ARP Spoofing, DNS Spoofing tablica ARP IP MAC 10.0.0.4 0B:BF:10:5E:CD:13 (!) IP: 10.0.0.5 MAC: AA:0C:11:32:79:1E otrzymałem ramkę broadcastową, rozsyłam na wszystkie porty IP: 10.0.0.4 MAC: BA:00:A0:76:DD:01 OFIARA chce wysłać pakiet do 10.0.0.4... jednak nie wiem jak zaadresować ramkę bo nie mam w tablicy ARP żadnej informacji nt temat.. Wysyłam więc zapytanie do wszystkich (na adres broadcastowy FF:FF:FF:FF:FF:FF) otrzymałem odpowiedź ARP, uzupełniam tablice ARP przechwyciłem zapytanie ARP, wysyłam sfałszowaną odpowiedź do nadawcy (10.0.0.5) ATAKUJĄCY IP: 10.0.0.2 MAC: 0B:BF:10:5E:CD:13 (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Ataki Man-in-the-middle tablica ARP IP MAC 10.0.0.4 0B:BF:10:5E:CD:13 (!) IP: 10.0.0.4 MAC: BA:00:A0:76:DD:01 IP: 10.0.0.5 MAC: AA:0C:11:32:79:1E OFIARA chcę połączyć się poprzez SSH z adresem 10.0.0.4 wysyłam nieświadomie pakiety do Atakującego.. Ofiara podała dane poufne! Przesyłam je do 10.0.0.4, i pośredniczę w transmisji, tak aby Ofiara nie zauważyła ataku. certyfikat jest zmieniony..(?) ale podaję swoje dane poufne ATAKUJĄCY IP: 10.0.0.2 MAC: 0B:BF:10:5E:CD:13 Ofiara kieruje do mnie strumień danych SSH.. podstawiam fałszywy certyfikat ale wciąż oczekuję na wprowadzenie danych poufnych (login,hasło,itp) (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej wyznaczanie ścieżki rutowania pakietów na przykładzie działania programu traceroute 10.0.0.1 TTL=1 TTL=2 TTL=3 TTL=0 10.0.0.2 ICMP : TTL Exceeded ilość skoków TTL=0 10.0.0.6 ICMP : TTL Exceeded TTL=0 10.0.0.8 ICMP : TTL Exceeded adres IP 1 10.0.0.2 2 10.0.0.6 3 10.0.0.8 (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Nawiązanie, negocjacja, zamknięcie połączenia w sesji TCP 0 4 8 12 16 20 24 28 32 inne pola... numer sekwencyjny numer potwierdzający przesunięcie danych zarezerwowane bity sterujące rozmiar okna inne pola... 10 11 12 13 14 15 16 URG | ACK | PSH | RST | SYN | FIN FIN SYN INICJUJĘ POŁĄCZENIE: ● wysyłam segment z nastawionym bitem SYN nastawiam nr sekwencyjny na X ● określam rozmiar okna na A ● POTWIERDZAM POŁĄCZENIE: ● wysyłam segment z nastawionym bitem ACK ● nastawiam nr potwierdzający na Y+1 SYN+ACK FIN+ACK (RST) ACK ACK INICJUJĘ POŁĄCZENIE: ● wysyłam segment z nastawionym bitem SYN+ACK nastawiam nr sekwencyjny na Y ● nastawiam nr potwierdzający na X ● +1 ● określam rozmiar okna na B (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej metody skanowania portów ATAKUJĄCY skanowanie typu 'SYN': OFIARA port otwarty: SYN SYN,ACK port zamknięty: RST skanowanie typu: ACK: FIN: NULL: XMAS: ACK FIN brak odpowiedzi RST FIN,URG,PSH (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej OS Fingerprinting Badanie sygnatury („odcisku palca”) systemu operacyjnego polega na analizie wybranych pól nagłówka IP i TCP takich jak: Initial TTL (8 bits) ● Maximum segment size (16 bits) ● sackOK option (1 bit) ● Window scaling option (8 bits) ● Window size (16 bits) "Don't fragment" flag (1 bit) nop option (1 bit) Initial packet size (16 bits) przy założeniu że implementacje stosu TCP/IP w różnych systemach operacyjnych różnią się. Fingerprinting aktywny – Analiza odpowiedzi na spreparowaną sekwencję pakietów (TCP/UDP/ICMP) wysłaną na wcześniej wykryte zamknięte i otwarte porty. Więcej informacji o testach używanych przy OS-fingerprintingu: http://nmap.org/book/osdetect-methods.html (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Ataki Denial-of-Service (DoS) Distributed DoS master master zombie UDP UDP ICMP ICMP TCP SYN TCP SYN komenda rozpoczęcia ataku komenda rozpoczęcia ataku TCP SYN Distributed Reflection DoS ICMP TCP SYN UDP ofiara ataku (SRC IP ofiary) zombie TCP SYN (SRC IP ofiary) TCP SYN+ACK TCP SYN+ACK ofiara ataku (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Podstawy konfiguracji i monitorowania środowiska sieciowego w systemie GNU/Linux ● ● ● ● ● ● ● ifconfig route netstat ping, traceroute <= konfiguracja interfejsu sieciowego <= konfiguracja rutingu statycznego <= wyświetlanie otwartych gniazd UDP, połączeń TCP, tablicy rutingu,itp. <= testowanie drożności tras /etc/hosts <= /etc/resolv.conf <= /etc/hosts.{allow/deny} <= rozwiazywanie nazw(stat.) rozwiązywanie nazw(dyn.) restrykcje dostępu do usług (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej ifconfig – przykład wyjścia polecenia eth0 Link encap:Ethernet HWaddr 00:0F:B0:75:DD:38 inet addr:10.10.50.206 Bcast:10.10.50.255 Mask:255.255.255.0 inet6 addr: fe80::20f:b0ff:fe75:dd38/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:412113 errors:0 dropped:0 overruns:0 frame:0 TX packets:452451 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:231230851 (220.5 MB) TX bytes:235130192 (224.2 MB) (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej netstat – przykład wyjścia polecenia (fragment) Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address tcp 0 0 0.0.0.0:8192 tcp 0 0 0.0.0.0:5222 tcp 0 0 192.168.0.5:80 tcp 0 22 83.26.26.21:3613 tcp 131 0 83.26.26.21:4247 tcp 0 0 83.26.26.21:4662 udp 0 0 0.0.0.0:4666 udp 0 0 127.0.0.1:53 Proto Ref Cnt unix 16 unix 2 Foreign Address 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 82.21.16.92:105 80.108.9.23:2456 83.24.14.20:3414 0.0.0.0:* 0.0.0.0:* Flags Type State [] DGRAM [ACC] STREAM LISTENING I-Node 983 11375257 State LISTEN LISTEN LISTEN FIN_WAIT2 TIME_WAIT ESTABLISHED Path /dev/log /var/run/mysqld.sock (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej