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