switch_pl.pdf

(2208 KB) Pobierz
4302596 UNPDF
Artykuł pochodzi z magazynu Hakin9 .
Do ściągnięcia ze strony:
http://www.hakin9.org
Bezpłatne kopiowanie i
rozpowszechnianie artykułu dozwolone
pod warunkiem zachowania jego
obecnej formy i trteści.
Snifi ng w ethernecie
z przełącznikami
Marek Gusta, Maciej Szmit
Zastosowanie przełączników dru-
giej warstwy uniemożliwia oczywi-
ście stosowanie klasycznych metod
snifi ngu (polegają one na przesta-
wieniu karty sieciowej w tryb promi-
scuous , to jest taki, w którym karta
ignoruje adres odbiorcy zapisany
w ramce i przetwarza wszystkie
ramki, które pojawią się w medium).
Istnieją jednak metody pozwalają-
ce na podsłuch informacji również
w sieciach przełączanych.
niej: rodziną protokołów, o logicznej
topologii magistrali. Oznacza to, że
informacja (ramka) wysłana przez nadawcę
trai a do wszystkich odbiorców, przy czym
odczytuje ją jedynie odbiorca, którego adres
sprzętowy ( MAC address ) jest zgodny z adre-
sem przeznaczenia.
W przypadku i zycznej topologii magi-
strali (np. ethernet 10Base2 albo 10Base5)
jest to dość oczywiste, podobnie natomiast
wygląda to też w przypadku, kiedy sieć zbu-
dowana jest w i zycznej topologii gwiazdy
(na przykład 10baseT albo 100baseTX).
Zadaniem koncentratora (huba) umieszczo-
nego w centralnym punkcie rozdzielczym
sieci jest wzmacnianie otrzymanego sygnału
i przekazywanie go na wszystkie swoje porty
(dla nieuważnych Czytelników: pisząc w tym
artykule o portach mamy na myśli gniazdka,
w które wkłada się kabelki, a nie składowe
socketów TCP).
Przełącznik (switch) jest urządzeniem dru-
giej warstwy modelu referencyjnego ISO/OSI.
Od koncentratora (huba) różni się, z grubsza
rzecz biorąc, tym, że potrai nauczyć się adre-
sów MAC urządzeń podłączonych do swoich
poszczególnych portów i przekazywać nad-
chodzące ramki tylko do tego portu, do które-
go podłączone jest urządzenie o odpowiednim
adresie i zycznym.
Switch ma wbudowaną pamięć, w której
przechowuje tablicę adresów przypisanych
do poszczególnych portów. Jeżeli na którymś
z portów switcha pojawia się ramka, switch
odczytuje adres jej nadawcy i umieszcza
w tablicy adresów jako adres przypisany do
danego portu. Oczywiście dopóki przełącz-
nik nie nauczy się, jakie adresy odpowiadają
któremu portowi, rozsyła ramki zaadresowane
do nieznanego urządzenia na wszystkie swoje
porty – zupełnie jak hub.
Pojemność pamięci przeznaczonej na
adresy wynosi zazwyczaj od dwóch do ośmiu
kilobajtów (w zależności od modelu switcha)
co, biorąc pod uwagę fakt, że adres MAC ma
długość 6 bajtów, pozwala na zapamiętanie
kilkuset adresów. Oczywiście standardowe
switche mają zazwyczaj kilkanaście portów,
natomiast większa pamięć jest potrzebna
w przypadku łączenia ich ze sobą w sieci
o topologii drzewa.
Zastosowanie przełączników drugiej war-
stwy uniemożliwia oczywiście stosowanie
klasycznych metod snifi ngu (polegają one na
przestawieniu karty sieciowej w tryb promiscu-
24
www.hakin9.org
Hakin9 Nr 2
E thernet jest technologią, czy dokład-
4302596.003.png
Sniffing w sieciach przełączanych
Rysunek 1. Sieć z koncentratorem
Rysunek 3. Przełącznik zalany nadmiarem informacji
ous , to jest taki, w którym karta ignoruje adres odbiorcy
zapisany w ramce i przetwarza wszystkie ramki, które
pojawią się w medium). Powód jest prosty – do interfej-
su komputera dochodzą tylko ramki przeznaczone dla
niego i ramki rozgłoszeniowe (po angielsku broadcast
– mówimy, że switch rozdziela domeny kolizyjne, nie
rozdziela natomiast domen rozgłoszeniowych). Istnieją
jednak metody pozwalające na podsłuch informacji rów-
nież w sieciach przełączanych.
w miarę szybką zamianą switcha w huba. Dalej można
już stosować metody podsłuchu znane z klasycznego
ethernetu.
Oczywiście przełącznik co pewien czas odświeża
informacje (inaczej nie moglibyśmy nawet przepiąć
działającego komputera z portu do portu), więc
proces zalewania musi być prowadzony w sposób
ciągły, przy wykorzystaniu dość wydajnego kom-
putera, a i to nie gwarantuje odebrania stu procent
podsłuchanych wiadomości. W końcu każda wiado-
mość (nawet ta, którą udało się podsłuchać) niesie
w sobie informacje o swoim nadawcy, a ta informacja
powoduje przypisanie w switchu adresu źródłowego
do któregoś z portów. Potrzeba pewnego czasu aby
napływające z l oodingu ramki wyparły tę informację
z pamięci przełącznika. Również od rozpoczęcia
zalewania do wypełnienia tablic switcha musi upły-
nąć nieco czasu.
MAC l ooding (zalewanie ramkami
z fałszywymi adresami MAC)
Pierwszą i – uprzedzając fakty – najmniej skuteczną
metodą jest MAC l ooding, czyli zalewanie switcha dużą
liczbą ramek ze sfałszowanym adresem źródłowym
(nadawcy). Oczywiście po pewnym czasie dochodzi do
przepełnienia tablicy adresów. Nie umiejąc prawidłowo
nauczyć się nowych adresów pochodzących od rzeczy-
wiście działających w sieci komputerów switch zaczyna
rozsyłać nadchodzące ramki zaadresowane do niezna-
nych mu adresatów na wszystkie swoje porty. W przy-
padku porządnych switchy można w ten sposób co
najwyżej zal oodować port, z którego jest prowadzony
atak, albowiem każdy z portów ma przydzielony osobny
fragment tablicy adresów. Tańsze i starsze modele
przełączników mają współdzieloną pamięć dla wszyst-
kich portów, zatem zalewanie jednego z nich kończy się
ARP spooi ng (fałszowanie
pakietów ARP)
Drugą metodą podsłuchiwania ramek w sieci prze-
łączanej jest ARP spooi ng. Metoda ta polega na
wysłaniu fałszywej ramki ARP Reply, z której kom-
putery w sieci czerpią informację na temat odwzo-
rowania adresów logicznych (IP) na adresy i zyczne
(MAC). Na broadcastowe zapytanie klienta o adres
IP (dajmy na to bramy do Internetu) odpowiada kom-
puter użyty do ataku (rzecz jasna odpowiada podając
nieprawdziwą informację, z której wynika, ze i zyczny
adres bramy to adres jego karty sieciowej). Dalej
komunikacja odbywa się już na linii pirat – klient. Ten
ostatni przekonany jest oczywiście, ze wysyła ramki
pod właściwy adres (i zyczny), a jedyne, o co ten
pierwszy musi zadbać, to przekazywanie zawartych
w nich pakietów tam gdzie trzeba (do rzeczywistej
bramy). Komputer pirata działa tu więc jak swoisty
pseudorouter drugiej warstwy. Mamy tu pełną analo-
gie do ataków typu Man In The Middle stosowanych
w warstwach wyższych (przez fałszowanie odpowie-
dzi dnsowych).
Rysunek 2. Sieć ze switchem
Hakin9 Nr 2
www.hakin9.org
25
4302596.004.png
Rysunek 6. Sieć użyta do testowania MAC l oodingu
Rysunek 4. ARP spooi ng
Duplikacja adresu i zycznego
pojawi się ramka z odpowiedzią (zawierająca odpo-
wiedni adres MAC) – wpis dotyczący drugiego portu
zostanie usunięty a transmisja nań – zaniechana. Aby
zatem utrzymać switcha w stanie nieświadomości
należy co jakiś czas podsyłać mu ramkę z zespoofowa-
nym adresem MAC. Jeżeli wykorzystaliśmy programo-
wą zmianę adresu karty najprościej to osiągnąć choćby
uruchamiając w tle pinga na dowolny adres. Oczywiście
tego typu kombinacja pozwala jedynie na przechwyce-
nie informacji docierających do jednej strony dialogu
(tej, której MAC jest naśladowany) ale może to okazać
się wystarczające do na przykład przechwycenia haseł.
Jeżeli nie – należy postarać się o drugi komputer, drugą
kartę sieciową. albo spoofować naraz oba adresy, z tym,
że tu już nie będziemy mogli się posłużyć standardową
programową zmianą MAC adresu karty w Windows.
Nie trzeba dodawać, że adres logiczny (IP) kom-
putera użytego do ataku powinien być inny niż adres
logiczny komputera, pod który ten się podszywa, albo
przynajmniej należy na nim wyłączyć obsługę odpo-
wiedniej części protokołów, w przeciwnym bowiem razie
może dojść do różnych dziwnych sytuacji, na przykład
klient zamiast nawiązać połączenie z komputerem pod-
słuchiwanym nawiąże je z podsłuchującym.
Oczywiście można posunąć się jeszcze dalej i podłączyć
do dwóch portów switcha dwa komputery o identycznych
adresach i zycznych. Najprostszym w realizacji sposobem
osiągnięcia takiego efektu jest programowa zmiana adresu
MAC interfejsu sieciowego. Opcję te umożliwia wiele kart
sieciowych (z kartami opartymi na RTL8139D włącznie)
i systemów operacyjnych (z Windows 2000 i oczywiście
Linuksem). Nie jest to metoda do końca pozbawiona wad
i oczywiście można zamiast tego podsyłać po prostu
odpowiednio spreparowane ramki, nie zmieniając rzeczy-
wistego adresu komputera użytego do ataku.
Z punktu widzenia switcha jest to równoważne sytu-
acji, w której do dwóch portów jest przyłączone to samo
urządzenie. W normalnej sieci takie sytuacje raczej nie
mają miejsca (wyjąwszy dość rzadki przypadek pętli
mostowej). Może się jednak zdarzyć, że ktoś właśnie
zajmuje się przepinaniem komputerów z portu do portu,
switch więc przez pewien czas będzie przesyłał ramki
na oba porty.
Ponieważ tak się składa, że większość transmisji
w sieci ma charakter dialogu, kiedy na jednym z portów
Trochę praktyki
Żeby nie poprzestać na samej teorii przetestowaliśmy
działanie czterech przełączników pod względem odpor-
ności na MAC l ooding i ARP spooi ng. Sprawdziliśmy
też, jak spisuje się jedno z narzędzi do ARP-spooi ngu
– program dsniff.
Rysunek 5. Duplikacja adresu i zycznego
MAC l ooding
Dla celów MAC l oodingu zestawiliśmy sieć o adre-
sie 192.68.0.0/24 składającą się z czterech kompute-
rów, jak na Rysunku 6.
Komputery o adresach IP kończących się liczba-
mi 1, 2, 3 pracowały pod kontrolą systemu operacyjnego
Knoppix w wersji 3.2, natomiast komputer o numerze 4
26
www.hakin9.org
Hakin9 Nr 2
4302596.005.png 4302596.006.png 4302596.001.png
Sniffing w sieciach przełączanych
pracował pod kontrolą Red Hat Linux 9.0. Na kompute-
rze 1 uruchomiony był skrypt (zobacz Listing 1), który
powodował zalewanie switcha. Działanie skryptu pole-
gało na wysyłaniu w pętli pakietów ICMP Echo Request
pod nieistniejący w sieci adres logiczny – 192.168.0.12.
Każda wysłana ramka miała zmieniony adres źródło-
wy MAC, co wymuszało na switchu, aby aktualizował
w swojej tablicy informację o adresie i zycznym pod-
łączonym do tego portu. Aby wyeliminować zapyta-
nia ARP Request (które komputer z konieczności by
wygenerował) przed każdym wysłanym pakietem ICMP
w tablicy ARP komputera 1 dokonywany był statyczny
wpis informujący o adresie i zycznym nieistniejącej
stacji 192.168.0.12. Podczas gdy komputer 1 genero-
wał w sieci pakiety ICMP, pomiędzy komputerami 3
i 4 była nawiązywana transmisja, a na komputerze 2
uruchomiony był program podsłuchujący – sniffer. Do
podsłuchiwania użyto konsolowego programu tcpdump
wywołanego poleceniem
Listing 1. Skrypt l oodujący
for zm_8 in 0 1 2 3 4 5 6 7 8 9 a b c d e f
do
for zm_9 in 0 1 2 3 4 5 6 7 8 9 a b c d e f
do
for zm_10 in 0 1 2 3 4 5 6 7 8 9 a b c d e f
do
for zm_11 in 0 1 2 3 4 5 6 7 8 9 a b c d e f
do
for zm_12 in 0 1 2 3 4 5 6 7 8 9 a b c d e f
do
ifconi g eth0 down
ifconi g eth0 hw ether 00:00:0${zm_8}:${zm_9}
${zm_10}:${zm_11}${zm_12} up
arp -s 192.168.0.12 00:05:05:05:6C:05
ping 192.168.0.12 -c 1 &
done
done
done
done
done
echo ${zm}
tcpdump –i eth0 host 192.168.0.3
oraz grai cznego programu Ethereal.
Pomiędzy komputerami 3 i 4 był generowany nastę-
pujący ruch:
dzi na pakiety Echo Reply (dał tu znać o sobie problem
aktualizacji wpisów, o którym była mowa powyżej).
W przypadku przechwytywania ruchu protokołów
http i ftp również udało się przechwycić tylko część
ramek. W obydwu przypadkach nie udało się podsłuchać
samego nawiązywania połączenia TCP (segmenty TCP
z ustawionymi l agami SYN oraz ACK) oraz części ramek,
które miały niewiele różniące się od siebie znaczniki cza-
sowe. Dla protokołu FTP udało się natomiast przechwycić
login i hasło. Jak można się spodziewać ramki niosące
na sobie pakiety z odpowiednimi komunikatami proto-
kołu ftp będą jednak nieco różniły się czasem wysłania,
zatem proces zalewania dał w międzyczasie właściwe
efekty. Udało się również przechwycić ramki zawierające
komendy dla serwera FTP.
W celu zwiększenia prędkości l oodowania przełącz-
nika podłączono do sieci jeszcze jeden komputer z syste-
mem Knopix 3.2, na którym uruchomiono skrypt. Pomimo
zwiększania ruchu, który musiał obsługiwać przełącznik,
nadal nie udało się przechwycić całości ruchu.
• pakiety ping z 3 do 4,
• zapytania http do 4,
• logowanie z 3 na serwer ftp zainstalowany na kom-
puterze 4.
Do przedstawionej powyżej sieci były podłączane kolej-
no wszystkie wymienione w Tabeli 1 switche.
Jak było do przewidzenia, we wszystkich przypad-
kach l odowanie switchy powodowało przepełnienie
bufora na MAC adresy dla portu, z którego l oodowanie
następowało. Tylko w przypadku switcha 1 udało się na
komputerze 2 podsłuchać transmisję pomiędzy kompute-
rami 3 i 4, przy czym w przypadku pakietów pinga udało
się przechwycić wszystkie zapytania ICMP Echo Requ-
est, natomiast nie przechwycono już większości odpowie-
Tabela 1. Badane przełączniki
ARP-spooi ng
Do podszywania ARP użyliśmy narzędzia konsolowego
o nazwie arpspoof wchodzącego w skład pakietu dsniff.
Pakiet dsniff jest przeznaczony dla systemów z rodziny
Unix / Linux. Program arpspoof wywołujemy w następu-
jący sposób:
Producent i model Specyi kacja
X-Net Model SH-9005A 10/100Mb, 8 portów STP
RJ45, bufor pamięci: 1MB,
pamięć na MAC adresy: 2kB
10/100Mb, 24 porty RJ45,
IEEE 802.1x,
X-NET Model SH-9024A 10/100Mb, 24 porty RJ45,
bufor pamięci: 4MB,pamięć
na MAC adresy: 2kB
Planet Model FNSW 2401 10/100Mb, 24 porty
RJ45,pamięć na MAC
adresy: 8kB
arpspoof [-i interfejs] [-t ip_celu] ip_spoof
gdzie:
interfejs – interfejs, przy pomocy którego program
będzie wysyłał fałszywe informacje,
Hakin9 Nr 2
www.hakin9.org
27
HP Procurve Switch
Model 2512
27
4302596.002.png
Zgłoś jeśli naruszono regulamin