artykuły
Powrót do listy artykułów

Temat artykułu: Podsłuchiwanie przełącznika sieciowego (switch-a)
Tekst napisał pitt2k dnia 11-01-2005

Wyobraźmy sobie, że właśnie zainstalowaliśmy nowy, wspaniały przełącznik, mając nadzieję, że da nam to polepszenie szybkości i bezpieczeństwa. Perspektywy zwiększenia szybkości i możliwość powstrzymania ciekawskich przed podsłuchaniem cennych danych wywołują uśmiech na naszej twarzy. Nowy przełącznik spowoduje, że wszystkie problemy znikną, prawda ? Należy to jeszcze przemyśleć ;)

Opiszę tutaj pewne metody, które wykorzystane w odpowiedni sposób pozwolą nam na przechwycenie danych przechodzących przez switch-a.

UWAGA: Należy zachować szczególną ostrożność zanim wypróbuje się poniższą technikę we własnym środowisku. Jeżeli switch w Twojej sieci ma włączone zabezpieczenia portów, to możesz zablokować w ten sposób wszystkich jego użytkowników (jest to jak by nie patrzeć atak DoS, hehe) !!!

Protokół ARP (Adress Resolution Protocol) udostępnia dynamiczne mapowanie 32-bitowych adresów IP na 48-bitowe adresy fizycznego sprzętu. W chwili gdy system chce nawiązać komunikację ze swoim sąsiadem z tej samej sieci (łącznie z domyślną bramą), wysyła rozgłoszenia ARP, szukając adresu sprzętowego docelowego systemu. Odpowiedni system odpowiada na wywołanie ARP, podając swój adres sprzętowy, co pozwala na rozpoczęcie komunikacji.

Niestety dane ARP mogą być w łatwy sposób sfałszowane tak, aby przekierować ruch z komputera źródłowego do komputera agresora - nawet w środowisku przełączanym. Przekierowane dane mogą zostać przejrzane za pomocą analizatora pakietów, a następnie przesłane do prawdziwego adresata. Ten scenariusz jest nazwany atakiem "przez pośrednika" i jest stosunkowo łatwy do przeprowadzenia. Oto przykład:

W przykładzie tym połączymy 3 systemy za pomocą switch-a. System GW to domyślna bramka z adresem IP 10.1.1.1. System USER to komputerek który będzie nadawał dane spod adresu IP 10.1.1.18. System HACKER to komputer agresora (czyli nasz, hehe), który będzie pełnił rolę "pośrednika". Ma on adres IP 10.1.1.19.

Aby przeprowadzić nasz atak musimy uruchomić w naszym systemie program arpredirect, który stanowi część pakietu dsniff (http://www.monkey.org/~dugsong/dsniff/dsniff-2.3.tar.gz). Pozwoli nam to na przechwytywanie pakietów, które wysyłane są z wybranego na cel komputera (USER) do innego systemu - zazwyczaj do domyślnej bramki.

Zapytacie pewnie: Jak to, przecież poprzez switch widzimy TYLKO dane rozgłoszeniowe, więc nie da się podsłuchać transmisji między dwoma hostami !!!
Otóż da się ;) Musimy tylko odpowiednio skorzystać z oprogramowania arpredirect.

W naszym systemie odpalamy:

[hacker] ping gw
PING 10.1.1.1 from 10.1.1.19 : 56(84) bytes of data.
64 bytes from 10.1.1.1: icmp seq=0 ttl=128 time=1.3 ms

[twister] ping user
PING 10.1.1.18 from 10.1.1.19 : 56(84) bytes of data.
64 bytes from 10.1.1.18: icmp seq=0 ttl=128 time=1.3 ms

Dlaczego to robimy? Pozwoli to systemowi na zbuforowanie adresów sprzętowych odpowiednich systemów, co jest konieczne do uruchomienia arpredirect.
Odpalamy sofcik:

[hacker] arpredirect -t 10.1.1.18 10.1.1.1
intercepting traffic from 10.1.1.18 to 10.1.1.1 (^C to exit)...

Powyższe polecenie uruchamia arpredirect i przekierowuje do naszego systemu cały ruch z systemu USER do domyślnej bramki (GW). Oczywiście, aby nasze działanie nie zostało odkryte, należy na naszym systemie uruchomić funkcję routera w celu przekazywania pakietów dalej. Można włączyć przekazywanie pakietów w naszym jądrze, ale nie warto tego robić ponieważ może on zacząć wysyłać przekierowania ICMP, które mają tendencję do zakłócania całego procesu ;) Lepszym rozwiązaniem będzie uruchomienie programu fragrouter (http://www.securityfocus.com/data/tools/fragrouter-1.6.tar.gz) , który pozawala na łatwe włączenie przekierowania IP z wiersza poleceń, przy użyciu parametru -B1.

[hacker] fragrouter -B1
fragrouter: base-1: normal IP forwarding
10.1.1.18.2079 > 192.168.20.21: S 592459704:592459704(0)
10.1.1.18.2079 > 192.168.20.21: P 592459705:592459717(12)
10.1.1.18.2079 > 192.168.20.21: . ack 235437339
10.1.1.18.2079 > 192.168.20.21: P 592459717:592459730(13)

Na koniec musimy włączyć w naszym systemie prosty analizator pakietów, aby przechwycić interesujące nas dane. Przykładowo uruchamiamy linsniff i węszymy ;)

[hacker] linsniff
Linux Sniffer Beta v.99
Log opened.
------------[SYN] (slot 1)
10.1.1.18 -> 192.168.20.20 [21]

USER lama
PASS JestemLamer
PORT 10,1,1,18,8,35
NLST
QUIT
------------[SYN] (slot 1)
10.1.1.18 -> 192.168.20.20 [110]

USER lama_mail
PASS MojaPoczta
[FIN] (1)


No i mamy to czego chcieliśmy ;) Hasełka i loginy do ciekawych FTP-ów i jeszcze ciekawszej poczty. Nieładnie ;)

A teraz wytłumaczymy sobie co się nawyrabiało, że dostaliśmy takie ciekawe dane.
Po włączeniu arpredirect nasz system rozpoczął wysyłanie do systemu USER podrobionych odpowiedzi ARP, podszywając się pod system GW. USER chętnie uaktualnił swoją tablicę ARP, aby uwzględnić nowy adres sprzętowy systemu GW. Następnie użytkownik systemu USER rozpoczął sesje FTP i POP3 z systemem 192.168.20.20. Zamiast jednak przesłać odpowiednie dane do systemu GW (prawdziwej domyślnej bramki), USER przesłał je do systemu HACKER - ponieważ tablica ARP została zmodyfikowana tak, aby przepisać adres sprzętowy systemu HACKER do adresu IP systemu USER. Wszystkie dane zostały następnie przekazane poprzez nasz system do systemu 192.168.20.20. Spowodowane to zostało tym, że włączyliśmy przekazywanie pakietów IP przy użyciu programu fragrouter, który nadał naszemu systemowi funkcję routera.

No i to by było na tyle. problemem w tym przykładzie mogło być zgadnięcie adresu IP komputera do którego powinniśmy przekazywać ruch (192.168.20.20). Jednak jak zawsze nie ma łatwo i trzeba troszkę poeksperymentować.
Oczywiście możemy do naszego systemu przekierować cały ruch z sieci, ale trzeba się liczyć ze spowodowaniem wielkiego chaosu jeżeli w naszej sieci jest duży ruch.

Jak widać w powyższym przykładzie, żadne techniki stosowane w sieciach komputerowych nie są na 100% bezpieczne. Nie musze chyba pisać co się stanie kiedy ważna dane zostaną przechwycone. A przechwycić w ten sposób można praktycznie wszystko. Dla przykładu np. nazwy wspólnot SNMP, pakiety protokołu RIP, hasła do zasobów sieci i poczty elektronicznej.

W następnym artykule naszej serii opiszę jak możemy wykorzystać fakt, że w naszej sieci działa router oparty o protokół RIP ;)

Autor powyższego artykułu nie odpowiada za skutki wynikające ze stosowania w/w technik w sieci. Tekst ten służy tylko celom dydaktycznym i napisany został aby przekonać czytelników o tym, że żadne systemy nie są bezpieczne.


Bibliografia:
J.Scambray, S.McClure, G.Kurtz - Hakerzy Cała Prawda
Kevin Mitnick - Sztuka podstępu. Łamałem ludzi, nie hasła.
Internet