Podsłuchiwanie

Największym zagrożeniem w sieciach jest oczywiście podsłuchiwanie pakietów i wyciąganie z nich ważnych dla atakującego informacji takich jak: dane, loginy, hasła, prywatne dane itp. Zdarza się również, że intruz po prostu stara się utrudniać lub uniemożliwiać pracę atakowanego serwera, poprzez blokowanie ruchu, rozsyłanie szkodliwych pakietów, powodowanie nadmiernego ruchu, wykorzystywanie błędów w zabezpieczeniach serwerów przez sprytne żądania (np. SQL injection) lub przeciążenia serwera "powodzią żądań".

Tutaj oprócz ogólnej struktury problemu, zajmę się kilkoma od strony praktycznej, postram się nie przeteoryzować.

Podsłuchiwanie to monitorowanie ruchu w sieci, czyli intruz odczytuje nieswoje pakiety, które przechodzą przez jego interfejs sieciowy. Używa się do tego programów zwanych snifferami.

Sniffery

Sniffery to programy specjalizujące sie w przechwytywaniu pakietów sieciowych, i odfiltrowywaniu z nich interesujących dla intruza informacji (login, hasło, adresy IP, itp.). Sniffery wykorzystywane są przez hackerów, agencje wywiadowcze, instytucje zajmujące się pomiarem ruchu w sieci, administratorów sieci, programistów testujących aplikacje sieciowe. Sniffery potrafią interpretować praktycznie wszystkie protokoły, czyli w przypadku nieszyfrowanych (Telnet, FTP, HTTP, SMTP, POP3, protokołów wykorzystywanych przez większość komunikatorów internetowych), mogą w zasadzie miec pełną wiedzę na temat przesyłanych danych. W tej prezentacji skupię się w sposób bardziej praktyczny, niźli teoretyczny na bardzo wszechstonnym pakiecie dsniff, służacym miedzy innymi właśnie do podsłuchiwania, czyli sniffowania sieci. Najpierw jednak pare innych:

tcpdump

Jest to dosyc rozbudowane Linuxowe narzędzie do podsłuchiwania ruchu na interfejsie sieciowym. Działa na poziomie TCP-IP i ma wiele opcji filtrowania. Tutaj np. monitoruje połączenie HTTP ze students uruchamiając jako administrator program bez opcji:

tcpdump-stud

Można nim np. też podglądać cały ruch bajt po bajcie (w sensie danych protokołu TCP-IP) uruchamiając go z opcją -XXX:

tcpdump-stud

Generalnie nie jest zbyt przyjazny użytkownikowi, o czym można sie przekonac ogladając strony manuala (man tcpdump).

Więcej informacji:

wireshark

Jest to duży program posiadający dosyć wygodne GUI. Można nim podglądac całe przebiegi konkretnych połączeń, w praktyce chyba najwygodniejszy do ogólnego monitorowania ruchu w sieci. Na poniższym screenshotcie mamy złapane pakiety protokołu ARP i ogólny ogląd na GUI:

wireshark

Więcej informacji:

dsniff

Jest to "tutyłowy" program z pakietu dsniff. W najbardziej podstawej (bezparametryzowej) wersji można go użyć do wychwytywania najciekawszych (najbardziej pikantnych) informacji, np. haseł z większości nieszyfrowanych protokołów. Tutaj przykładowy filmik, gdzie ofiara najpierw łączy się z serwerem pocztowym protokołem POP3, następnie z innym serwerem protokołem FTP: filmik ofiary.

A tak to wygląda na hoście sniffującym:

dsniff

msgsnarf

Innym ciekawym narzędziem pakietu dsniff jest msgsnarf, pozwalający podsłuchiwać komunikatory internetowe. Na poniższym filmiku jest nagranie rozmowy na popularnym komunikatorze gadu-gadu z punktu widzenia ofiary: filmik-gg-ofiary a tak to wygląda u sniffera: filmik-gg-sniffera.

webspy i urlsnarf

Bardzo spektakularny sposób działania nastepnego człona dsniff - webspy, pozwalający podglądać połączenia HTTP bezpośrednio w przeglądarce sniffera. Poniższy filmik przedstawia podsłuchiwanie sesji HTTP ofiary z punktu widzenia podsłuchującego. Najpierw urlsnarf wypisuje adresy stron, z którymi łaczy sie ofiara, następnie webspy sprawia, że strony WEB odwiedzane przez ofiarę wyświetlają się na bieżąco w uruchomionej przeglądarce (widać brak klikania myszką oraz brak tłumaczenia w pasku adresów adresów IP): filmik-podsłuchwianie po podszyciu.

Prezentacja na Systemy Operacyjne 2006/07 - Informatyka MIMUW.
Michał Raczkowski (O nas)