Narzędzia monitorowania sieci oraz usług.
W sieciach TCP/IP mamy wiele potencjalnych problemów i zagrożeń. Administrator
serwera lub sieci powinien być zawsze przygotowany na najgorsze czyli awarie i ataki z
zewnątrz i wewnątrz.
Zapoznamy się więc z poleceniami które pozwolą nam monitorować oraz
diagnozować i badać sieć lokalną.
Oto lista poleceń które powinniśmy znać i wiedzieć jakie informacje nam
udostępniają.
1. ping
2. netstat
3. nmap
4. iptraf
5. ethereal
6. ettercap
ping - Testowanie komputerów i sieci na poziomie IP.
Program jest zupełnie podstawowym narzędziem administratora sieci. Możemy za
jego pomocą uzyskać wiele informacji. Uwaga, wersje polecenia ping są różne w różnych
systemach operacyjnych i pod Windows lub FreeBSD niektóre opcje mogą być inne lub
niedostępne.
Zwykłe wykonanie polecenia ping czyli żądania echa ICMP.
ping ip
ping domain.name
Wysłanie rozgłoszeniowego komunikatu ping do całej sieci poprzez podanie adresu
broadcast sieci (dla sieci 10.0.0.0 / 16 komunikat wyglądałby następująco).
ping 10.0.255.255
Polecenie wysyła tak dużo komunikatów ping ile to tylko możliwe, zalewa sieć
maksymalną ilością poleceń ping. Można w ten sposób łatwo sprawdzić czy
okablowanie jest poprawne patrząc czy ilość utraconych pakietów jest zbliżona do
oczekiwanej. Nie powinno sie tego używać w normalnych sieciach bo powoduje
natychmiastowe przeciążenie.
ping -f IP
Wysłanie określonej ilości komunikatów i pokaz statystyk
ping -c 30 IP
Wysyłanie komunikatów z określoną wartością TTL
ping -t 1 IP
Wysłanie komunikatów o określonym rozmiarze
ping -s 1000 IP
netstat - Przeglądanie lokalnych połączeń i gniazd.
Program pozwala na przeglądanie jakie połączenia są obecnie zestawione z naszym
komputerem oraz jakie lokalne porty nasłuchują na nadchodzące połączenia.
Podgląd połączeń maskowanych przez system (jeśli jest używany modół maskarady)
netatat -M
Gadatliwe wyjście programu.
netatat -v
Nie rozwiązuje nazw domenowych tylko pokazuje IP
netatat -n
Powtarza wykonanie co sekundę
netatat -c
Pokazuje nasłuchujące porty.
netatat -l
Pokazuje wszystkie połączenia nie tylko w stanie połączonym.
netatat -a
Pokazuje tylko połączenia z danej rodziny protokołów (w przykładzie IP)
netstat -A inet
Przydatna forma polecenia:
netstat -an
Zadanie:
–
Nawiąż kilka połączeń internetowych (otwórz stronę, zaloguj się zdalnie po ssh na ireta
itd).
–
Wykonaj polecenia używając nazw domenowych (zobaczysz połączenia z serwerem
DNS)
–
Oglądaj statystyki oraz szczegóły połączeń.
–
Zwracaj uwagę na to jakie porty lokalne i zdalne mają poszczególne połączenia.
–
Przeglądaj połączenia oraz ich stan.
nmap - Testowanie i skanowanie hostów.
Program nmap pozwala na bardzo zaawansowane testowanie zabezpieczeń, ustawień
oraz szczegółów konfiguracji hostów. Pozwala na skanowanie komputerów w trybie
aktywnym oraz pasywnym. Pozwala na wykrywanie jakie usługi są aktywne na
komputerze. Pozwala też na badanie jaki system operacyjny zainstalowany jest na
komputerze.
W dokumentacji polecenia można przeczytać szczegóły składni oraz dostępne
parametry. Polecam przetestowanie jak największej części dostępnych parametrów by
zobaczyć jakie możliwości oferuje nam program.
Wykonanie prostego aktywnego skanowania TCP oraz pokaz wyników.
nmap -sT 10.0.0.23
Wykonanie prostego aktywnego skanowania UDP oraz pokaz wyników.
nmap -sU 10.0.0.23
Wykrycie które komputery w sieci odpowiadają na ping oraz wyświetlenie
podstawowych informacji
nmap -sP 10.0.0.0/24
Skanowanie zakresu portów
nmap -sT 10.0.0.23 -p 0-3000
Rozpoznawanie systemu operacyjnego
nmap -O 10.0.0.23
Skanowanie z pokazaniem duzej ilosci informacji
nmap -O -sU -sT -v 192.168.192.34 -p 0-5000
Zadanie
–
wykonaj skanowanie sieci lokalnej
–
przeskanuj dokładnie kilka komputerów, domyślną bramę oraz kilka komputerów z sieci
–
przyjrzyj się jak identyfikowane są komputery (jaki system operacyjny jest
rozpoznawany)
–
przeskanuj 212.191.65.6 i przeanalizuj wynik
–
przeskanuj komputer kolegi i przeanalizuj wynik
–
przeskanuj komputer z uruchomionym systemem Windows (adres IP podam na
zajęciach)
iptraf - Podgląd aktywności interfejsów sieciowych.
Polecenie pozwala na łatwy i czytelny podgląd ruchu w sieci. Uruchamiamy
polecenia z uprawnieniami administratora. Mamy dostępne następujące opcje:
–
ip traffic monitor
–
general interface statistics
–
detailed interface statistics
–
statistics breakdowns
–
lan station monitor
–
filters
–
configure
Najpierw udajemy się na zakładkę konfiguracji i określamy jakie ma być zachowanie
programu. DNS lookups pozwala na wyświetlanie nazw domenowych zamiast adresów ip.
Warto jednak pozostawić ją wyłączoną. Włączyć natomiast można opcję promisciuos kart
sieciowych. Ustawienie kart w tym trybie powoduje że analizowane będą wszystkie pakiety
przychodzące siecią nawet jeśli nie są zaadresowane do naszej karty sieciowej (inny adres
MAC). Pozwala to na niejako nasłuchiwanie całego ruchu w naszym segmencie
rozgłoszeniowym. Niestety obecnie większość sieci budowanych jest w oparciu o switche
tak więc nie będzie do nas docierało nic poza pakietami skierowanymi do nas oraz
rozgłoszeniami ARP. Polecam włączyć tryb promiscious i sprawdzić zachowanie się
programu.
Opis poszczególnych opcji programu pod adresami:
http://iptraf.seul.org/2.7/itrafmon.html
http://iptraf.seul.org/2.7/netstats.html
http://iptraf.seul.org/2.7/detstats.html
http://iptraf.seul.org/2.7/statbreakdowns.html
http://iptraf.seul.org/2.7/hostmon.html
http://iptraf.seul.org/2.7/config.html
Zadanie:
–
Przeczytaj dokumentacje poszczególnych opcji programu.
–
Sprawdź działanie poszczególnych ekranów.
–
W przypadku braku ruchu sieciowego nawiąż kilka połączeń internetowych (otwórz
stronę, zaloguj się zdalnie po ssh na ireta itd).
–
Wykonaj polecenia ping oraz traceroute.
–
Wykonaj polecenie ping -f ip_kolegi_obok
–
Wykonaj polecenia używając nazw domenowych (zobaczysz połączenia z serwerem
DNS)
–
Oglądaj statystyki oraz szczegóły transferów.
–
Przeglądaj połączenia oraz ich stan.
ethereal - Sniffing oraz analiza komunikacji sieciowej.
Polecenie pozwala na przechwytywanie pakietów przychodzących z sieci oraz
dogłębną analizę. Program działa w ten sposób że włączamy przechwytywanie, program
zapisuje całość ruchu sieciowego, następnie zatrzymujemy przechwytywanie i analizujemy
go.
Program daje możliwości podglądu statystyk sieci oraz zawartości poszczególnych
połączeń, zakładanie filtrów itd.
Dokumentacja opisująca interfejs użytkownika dostępna jest pod adresem:
http://www.ethereal.com/docs/eug_html_chunked/ChapterUsing.html#ChUseIntroductionSe
ction
Natomiast całość dokumentacji znajduje się pod adresem:
http://www.ethereal.com/docs/eug_html_chunked/
Zadanie:
–
Zmień hałso administratora poleceniem passwd
–
Włącz program Internet->ethereal (root user)
–
Włącz przechwytywanie ruchu. (za pierwszym razem trzeba wybrać interfejs sieciowy
capture->options->start).
–
Wykonaj kilka połączeń jak w poprzednim ćwiczeniu
–
Wykonaj polecenia ping, ssh, ftp i inne żeby wygenerować różnego rodzaju ruch
sieciowy
–
Połącz się za pomocą klienta ftp z serverem ftp np. sunsite.icm.edu.pl lub task.gda.net
lub innym i pobież jakiś plik.
–
Otwórz stronę np. google.pl i wpisz coś w formularzu wyszukiwania.
–
Zatrzymaj przechwytywanie pakietów.
–
Przejrzyj statystyki: summary, hierarchię protokołów, konwersacje oraz punkty końcowe
i wykres IO. Zwróć uwagę na konwersacje i punkty końcowe pozwala to na ładne
zgrupowanie informacji o ruchu w sieci ze względu na protokoły i adresy.
–
Poszukaj połączenia z serwerem google i podejżyj TCP stream.
–
Wyczyść pole filtru i kliknij apply by znów zobaczyć wszystkie pakiety.
–
Poszukaj połączeń ftp i podejrzyj TCP stream
–
Zobacz że dane przesyłane są otwartym tekstem razem z hasłami itd.
–
Odnajdź pakiet rozpoczynający żądznie HTTP metodą GET. Kliknij w oknie protokołów
poszczególne zakładki by zobaczyć które bajty transmisji zawierają które pola. Zauważ
że narzędzie potrafi analizować też pola protokołu HTTP. Mamy wgląd w poszczególne
wartości wysyłanego żądania.
–
Przejrzyj dokumentację kolorowania pakietów i ustaw kolorowanie tła pakietu na
czerwono gdy (aby reguła kolorowania została użyta trzeba przesunąć ją w górę ponad
domyślne kolorowanie pakietów tcp)
tcp.flags.syn = = 1 and tcp.flags.ack = = 0
–
Spowoduje to że wszystkie pakiety inicjujące połączenia będą w innym kolorze. Będzie
można je wtedy łatwo wyszukać.
–
Kliknięcie TCP stream na takim pakiecie pokaże nam całą transmisję w ramach tego
połączenia TCP. Pomijane są duplikaty i inne pakiety związane z połączeniem. W oknie
zobaczymy tylko dane jakie były przesyłane.
–
Zwróć uwagę na filtr ustawiony na pasku narzędzi. Jeśli w filtrze wpiszemy jakaś regułę
będziemy widzieć tylko pakiety spełniający określone kryteria.
tcp.flags.syn = = 1 and tcp.flags.ack = = 0
–
Zwróć uwagę że w okno podglądu strumienia TCP pozwala na zapis strumienia
połączenia do pliku.
–
Kliknij na jakimś pakiecie TCP i obejrzyj (w oknie po środku ekranu)
ettercap - Program do podsłuchiwania haseł,
przechwytywania połączeń, podmiany części połączeń i
innych ataków jak MIT.
Podsłuchiwanie w sieci opartej o huby jest bardzo proste. Możemy podsłuchiwać
całość komunikacji w naszym segmencie. Możemy więc podsłuchiwać całą komunikację
pomiędzy komputerami z naszego segmentu a resztą świata.
Nasłuch pasywny jest trudny do wykrycia (niemal niemożliwy). Jeżeli nasze
oprogramowanie całkowicie milczy a jądro systemu posiada odpowiednio skonfigurowane
filtry firewall nie pozwalające na wysyłanie żadnych komunikatów zwrotnych to jesteśmy
nie do wykrycia.
Z punktu widzenia administratora sieci lokalnej jest to ogromne zagrożenie. Dlatego
coraz większą popularność mają rozwiązania typu wirtualnych sieci prywatnych VPN gdzie
cała komunikacja IP jest szyfrowana. Należy zawsze pamiętać że w każdej chwili możemy
być podsłuchiwani. Nie są do tego potrzebne żadne specjalne urządzenia ani umiejętności.
Niestety w sieciach IP możliwe są też ataki oraz podsłuch aktywny. Stosując ARP
poisoning możemy oszukać switche w naszej sieci lokalnej i podsłuchiwać połączenia w
również w takich sieciach.
Atak Man In The Middle typu ARP poisoning polega na oszukaniu systemów
operacyjnych ofiar że powiązania IP-MAC prowadzą do naszego komputera. W takim
przypadku wszystkie komputery chcąc komunikować się z ofiarą wyślą pakiety z naszym
adresem MAC. My je odbierzemy i będziemy mogli zrobić z nimi wszystko. Możemy
podmienić część transmisji, udawać drugą stronę połączenia podając swoje klucze
szyfrujące tak że będziemy widzieć dane w szyfrowanych połączeniach. Będziemy
oczywiście mogli też po cichu przekazywać pakiety pod prawdziwy adres MAC aby jedynie
podsłuchiwać w poszukiwaniu haseł.
Ataki MIT możliwe są też na każdym routerze i gatewayu. Każdy komputer który
pośredniczy w przesyłaniu naszych pakietów może posłużyć hakerowi do przechwycenia
naszych połączeń i dowolnej ich obsługi.
Ataki MIT pozwalają np. na przekierowanie użytkownika WWW pod inny adres niż
tego chciał. Wystarczy że założy się odpowiednie filtry a można każde wystąpienie ciągu
http://www.pko.com.pl/przelew podmieniać na dowolny adres ip. Możemy wtedy
przygotować podobny serwis udający stronę banku i przechwycić nie tylko hasła i loginy
ale nawet kody jednorazowe do wykonywania przelewów. Oczywiście będzie można ich
później użyć do wykonania dowolnego zlecenia.
Naturalnie wszelkie ataki tego typu są mniej lub bardziej nieetyczne lub niezgodne z
prawem. Administrator sieci musi jednak zdawać sobie jak realne są te zagrożenia i robić
wszystko by uchronić swoją sieć przed tego typu scenariuszami.
Naturalnie ataki MIT mogą być wykonywane tak by oszukać dwa komputery z
naszej sieci ale równie dobrze możemy oszukać jeden komputer i router by cała
komunikacja z tym komputerem "szła" przez nas. Możemy nawet oszukać całą sieć lokalną
że to nasza karta jest routerem i w ten sposób przekierować całą komunikację sieci z
internetem przez nas.
Aktywne podsłuchiwanie jest niebezpieczne, może być wykryte dość łatwo przez
programy monitorujące ARP oraz różne anomalie. Nie powinno się robić takich prób nawet
w sieciach formowych na uczelni ani w sieci osiedlowej. Jeśli chcecie się pobawić i
zobaczyć że to działa połączcie 4 komputery w sieć (klient, router, komputer poza siecią
wewnętrzną oraz haker w sieci wewnętrznej.) połączcie wszystko kablami i switchem i się
bawcie.
Poza ryzykiem wykrycia możemy uszkodzić czyjeś dane, spowodować straty
materialne lub zostać oskarżeni o naruszenie prywatności i inne zakazane rzeczy. Tak że po
prostu nie róbcie tego.
Zadanie:
–
Jeśli włączyłeś dopiero knoppixa zaloguj się jako root, zmień hasło roota, uruchom
program ettercap z interfejsem graficznym Internet->More applications->ettercap (as
root)
–
Jeśli masz inną wersję knoppixa (np 4.0.2) w konsoli przeloguj się na użytkownika
root poleceniem su a następnie wykonaj:
ettercap -G -i eth0
–
Włącz przechwytywanie pakietów sniffing->unified sniffing
–
Włącz start->start sniffing
–
Wejdź w menu logging, ustaw plik logowania komunikatów usera.
–
Połącz się z innego komputera z serwerem FTP
–
Zauważ jak od razu username oraz hasło zostały pokazane w oknie komunikatów oraz
zapisane w pliku który określono jako plik logowania.
–
Połącz się za pomocą protokołów telnet, pop3 oraz smtp (ale może lepiej w domu lub
innej sieci gdzie nikt poza tobą nie podsłuchuje żeby nie ujawniać swoich haseł innym)
zauważ że te protokoły również są logowane.
–
Nawiąż sesję ssh z komputera kolegi.
–
Wejdź na zakładkę view->connections kliknij prawym przyciskiem i wybierz kill
connection. Połączenie powinno zostać zerwane.
–
W zakładce połączeń kliknięcie 2 razy na połączeniu pokazuje dane jakie wyły
przesyłane w strumieniu. Możemy połączyć okna by widzieć kolejność komunikatów.
Możemy też spróbować wtrącić swoje dane w połączenie.
–
Wejdź na zakładkę profile by zobaczyć typy połączeń oraz ich szczegóły.
–
Wejdź w zakładkę hosts->scan for hosts. Każdy z wykrytych komputerów w hosts->host
list może być dodany do listy celów ataków MIT.
–
Sprawdź czy wszystkie komunikaty zostały zalogowane w pliku logowania.