Grupa ćwicz. 4 Nr ćwicz./ wersja 4 / 1 Grupa lab. 8 Zespół. Temat ćwiczenia. Rodzina protokołów TCP/IP Imiona i nazwiska. Michał Warzocha, Mateusz Wawrzyniak 4 Data wykonania. 15.03.2014 Data odbioru Ocena i uwagi Sprzęt: Komputery w labolatorium 402 Oprogramowanie: Nmap - Program nmap jest typowym skanerem portów (sprawdza otwarte porty TCP i UDP) umożliwia identyfikację usług oraz identyfikację systemu operacyjnego skanowanego hosta (na podstawie charakterystycznych cech pakietu jak TTL czy numery sekwencji) Cel ćwiczenia: Celem ćwiczenia jest opis i charakterystyka poszczególnych typów skanowań Schemat ćwiczenia: 1. Uruchomienie programu nmap z zadanymi parametrami skanowania. 2. Wykonanie skanowania oraz monitorowanie postępu. 3. Opracowanie wyników. Seria testów Podsieć lub hosty Typ skanowania 1 10.0.2.0/24 UDP 2 149.156.111.0/24 OS 3 149.156.112.0/24 TCP 4 149.156.30-40.0-255 SYN Skanowanie Skanowanie komputera lub hosta pozwala nam określić: - czy dany komputer jest aktywny, - określić listę usług na nim dostępnych, - poznać rodzaj i wersję sytemu operacyjnego, na którym pracuje host, Bardziej zaawansowane techniki pozwalają także na: - poznanie topologii sieci w której pracuje host, - poznanie ilości komputerów dostępnych w sieci, - odszukanie istniejących zapór ogniowych. Skanowanie UDP Skanowanie UDP jest aktywowane za pomocą opcji -su. Może być łączone z innymi typami skanowania TCP, takimi jak SYN (-ss), dla sprawdzenia obu protokołów w jednym przebiegu. Skanowanie UDP polega na wysyłaniu pustych (bez danych) nagłówków protokołu UDP do każdego portu docelowego. Jeśli w odpowiedzi zostanie zwrócony komunikat ICMP port uchreachable (typ 3, kod 3), port jest uznawany za zamknięty. Inne typy komunikatów ICMP unreachable (typ 3, kody 1, 2, 9, 10 lub 13) oznaczają, że port jest filtrowany. Czasami w odpowiedzi zwrócony zostanie pakiet UDP, co oznacza, że porty jest otwarty. Jeśli pomimo powtarzania transmisji nie zostanie uzyskana żadna odpowiedź, port zostaje zaklasyfikowany jako otwarty filtrowany. Oznacza Strona 1
to, że port może być otwarty lub filtr pakietów blokuje do niego dostęp. Wykorzystanie skanowania wersji usług (-sv) może pomóc w odróżnieniu portów na prawdę otwartych od filtrowanych. Największym wyzwaniem przy skanowaniu UDP jest przeprowadzenie go odpowiednio szybko. Otwarte filtrowane porty rzadko wysyłają jakąkolwiek odpowiedź, zmuszając Nmapa do oczekiwania na odpowiedź i ponawiania transmisji na wypadek zagubienia pakietów. Zamknięte porty są często jeszcze większym problemem. Zwykle wysyłają pakiet ICMP port unreachable, jednak w odróżnieniu od pakietów z flagą RST znanych ze skanowania SYN czy connect, wiele hostów domyślnie limituje szybkość wysyłania pakietów ICMP port unreachable. Przykładami mogą być systemy Linux i Solaris. Kernel Linuxa w wersji 2.4.20 limituje ilość pakietów o niedostępności portów do jednego na sekundę (w net/ipv4/icmp.c). Nmap potrafi wykrywać limitowanie odpowiedzi i zwalnia odpowiednio proces skanowania dla uniknięcia zaśmiecania sieci niepotrzebnymi pakietami, które i tak nie zostaną wykorzystane. 1. Wykonaliśmy skanowanie numer 1 używając komendy nmap vv su 10.0.2.0/24 >testy/test1.txt NR ALL OPEN CLOSED NAME PORTU 137 43 43 0 netbios-ns 138 43 43 0 netbios-dgm 500 40 40 0 Isakmp 4500 40 40 0 sae-urn 5355 33 33 0 Unknown 1900 31 31 0 Upnp 5060 12 12 0 Sip 123 8 8 0 Ntp 111 8 8 0 Rpcbind 3702 8 8 0 Unknown 445 7 7 0 microsoft-ds. 631 6 6 0 Ipp 5353 5 5 0 Zeroconf 177 5 5 0 xdmcp 2049 3 3 0 nfs 161 1 1 0 snmp 32768 1 1 0 omad 67 1 1 0 dhcps 68 1 1 0 dhcpc 69 1 1 0 tftp 800 1 1 0 mdbs_daemon 1024 1 1 0 unknown 1032 1 1 0 iad3 999 1 1 0 applix 1033 1 1 0 unknown 1035 1 1 0 unknown 1045 1 1 0 unknown 49216 1 1 0 unknown Strona 2
Skanowanie OS Skanowanie to pozwala na wykrycie listy protokołów IP (TCP, ICMP, IGMP itp), które są dostępne na danym hoście. Technicznie nie jest to skanowanie portów, ponieważ sprawdza kolejne numery protokołów, a nie kolejne porty TCP czy UDP. Opcja ta nadal używa parametru -p do wybrania numerów protokołów do sprawdzenia, w formacie analogicznym do listy portów. Z tego powodu metoda ta została zaklasyfikowana jako skanowanie portów. Skanowanie protokołów działa w sposób podobny do skanowania UDP, jednak zamiast iteracji po kolejnych numerach portu, w nagłówkach pakietów zmienia się 8-mio bitowy numer protokołu. Nagłówki są przeważnie puste, nie zawierają żadnych danych ani nawet poprawnego dla danego protokołu nagłówka. Trzema wyjątkami są TCP, UDP i ICMP. Poprawne nagłówki dla tych protokołów są konieczne, ponieważ niektóre systemy nie będą ich potrafiły wysłać oraz dlatego, że Nmap posiada już odpowiednie funkcje do ich tworzenia. Zamiast obserwować komunikaty ICMP unreachable, skanowanie protokołów nie polega na komunikatach ICMP protocol unreachable. Jeśli Nmap otrzyma jakąkolwiek odpowiedź w jakimkolwiek protokole, ustala stan protokołu jako otwarty. Otrzymanie komunikatu ICMP protocol unreachable (typ 3, kod 2) powoduje oznaczenie protokołu jako zamknięty. Inne komuniakty ICMP protocol Strona 3
unreachable (typ 3, kody 1, 3, 9, 10 lub 13) powodują oznaczenie protokołu jako filtrowany (oraz równocześnie potwierdzają, że protokół ICMP jest również otwarty). Jeśli nie uzyskano odpowiedzi, protokół jest oznaczany jako otwarty filtrowany. 2. Wykonaliśmy skanowanie numer 1 używając komendy nmap vv O 149.156.111.0/24 >testy/test2.txt NR PORTU ALL OPEN CLOSED NAME 80 11 11 0 http 22 11 11 0 ssh 3389 7 6 1 ms-term-serv 21 6 6 1 ftp 111 6 5 1 rpcbind 25 5 4 1 smtp 443 3 3 0 https 110 3 2 1 pop3 53 2 2 0 domain 113 2 1 1 auth 23 1 0 1 telnet 995 1 1 0 pop3s 5901 1 1 0 vnc-1 8888 1 1 0 sun-answerbook 1087 1 1 0 unknown 545 1 1 0 klogin 544 1 1 0 kshell 587 1 1 0 submission 7100 1 1 0 font-service 4045 1 1 0 lockd 1723 1 1 0 pptp Strona 4
System operacyjny Ilość Nierozpoznany 17 Sun Solaris 9 10 1 Linux 2.6.X 2.4.X 2 Microsoft Windows 7 Cisco embedded 1 SMC embadded 1 PheeNet embadded 1 ASUS embadded 1 Skanowanie TCP Skanowanie TCP Connect() jest wybierane domyślne, jeśli SYN nie jest dostępne. Ma to miejsce kiedy użytkownik nie posiada uprawnień do wysyłania pakietów raw lub podczas skanowania sieci IPv6. Zamiast wysyłać pakiety raw, jak to ma miejsce przy innych typach skanowania, Nmap prosi system operacyjny o zestawienie połączenia z badanym hostem za pomocą wywołania funkcji systemowej connect(). Jest to taki sam wysoki poziom wywołań systemowych, z jakich korzystają przeglądarki internetowe, oprogramowanie Peer2Peer czy inne programy korzystające z połączeń sieciowych. Jest to część interfejsu programistycznego znanego jako Berkeley Sockets API. Zamiast odczytywać odpowiedzi za pomocą odwołań niskopoziomowych prosto z sieci, Nmap wykorzystuje ten sam wysokopoziomowy interfejs do otrzymania informacji o stanie operacji dla każdej próby połączenia oddzielnie. TCP (connect scan) jest to najbardziej podstawowa forma skanowania TCP; polega na połączeniu z wybranym portem i przeprowadzeniu pełnego trójstronnego powitania (SYN, SYN/ACK i ACK); jeżeli port nasłuchuje połączenie powiedzie się, w przeciwnym razie port nie jest dostępny; metoda ta jest łatwa do wykrycia ponieważ w logach celu znajdować się będzie Strona 5
wiele informacji o błędach spowodowanych przez połączenia z usługami, które są następnie od razu przerywane; W celu połączenia TCP nie potrzebne są uprawnienia root'a. 3. Wykonaliśmy skanowanie numer 1 używając komendy nmap vv st 149.156.112.0/24 >testy/test3.txt NR ALL OPEN CLOSED NAME PORTU 445 20 19 1 microsoft-ds. 139 19 18 1 netbios-ssn 80 16 12 4 http 22 12 11 1 ssh 135 11 10 1 msrpc 3389 9 7 2 ms-term-serv 443 6 3 3 https 21 6 4 2 ftp 5901 5 0 5 vnc-1 27000 5 4 1 flexlm0 631 5 3 2 ipp 5901 5 1 4 vnc-1 27000 5 4 1 flexlm0 3690 3 2 1 unknown 5001 3 3 0 complex-link 3306 3 3 0 mysql 23 2 1 1 telnet 1025 2 2 0 NFS-or-IIS 5000 2 2 0 UPNP 8010 2 2 0 unknown 6000 2 1 1 x11 515 2 2 0 printer 111 2 2 0 rpcbind 110 1 0 1 pop3 53 1 1 0 domain 8080 1 1 0 http-proxy 8000 1 1 0 http-alt 113 1 1 0 auth 8087 1 1 0 unknown 1055 1 1 0 unknown 1040 1 1 0 netsaint 1027 1 1 0 IIS 9200 1 1 0 unknown 9500 1 1 0 unknown 1046 1 1 0 unknown 8333 1 1 0 unknown 6100 1 1 0 unknown 9100 1 1 0 jetdirect Strona 6
Strona 7
Skanowanie SYN TCP SYN ta technika jest często nazywana skanowaniem półotwartym (half-open scanning) ponieważ nie jest nawiązywane pełne połączenie TCP, lecz do wybranego portu przesyłany jest pakiet SYN tak jak w przypadku prawdziwego połączenia i następuje oczekiwanie na odpowiedź; Jeśli port odpowie sygnałem SYN/ACK to oznacza, że port nasłuchuje; natomiast odpowiedź RST/ACK oznacza zazwyczaj, że port nie nasłuchuje; Komputer przeprowadzający skanowanie przesyła następnie sygnał RST/ACK, dzięki czemu połączenie nie jest nawiązane i może nie zostać odnotowane w logach celu. Do zbudowania pakietu SYN niezbędne są uprawnienia root'a. Skanowanie SYN jest domyślną i najpopularniejszą metodą skanowania. Jest to spowodowane tym, że może być przeprowadzone szybko, możliwe jest skanowanie tysięcy portów na sekundę w szybkich sieciach nie chronionych systemami zaporowymi. Skanowanie SYN jest relatywnie dyskretne i niewidoczne, ponieważ nigdy nie otwiera połączeń do końca. Działa to dobrze w stosunku do wszystkich stosów zgodnych z TCP, w przeciwieństwie do udziwnionych, dla których Nmap ma tryby FIN/Null/Xmas, Maimon i Idle. SYN pozwala na przejrzyste i wiarygodne rozróżnienie stanów portu pomiędzy otwartym, zamkniętym i filtrowanym. 4. Wykonaliśmy skanowanie numer 1 używając komendy nmap vv ss 149.156.107-109.0-255 >testy/test4.txt NR PORTU ALL OPEN CLOSED NAME 22 40 40 0 ssh 80 40 40 0 http 443 19 17 2 https 23 19 19 0 telnet 21 13 13 0 ftp 139 10 10 0 netbios-ssn 445 9 9 0 microsoft-ds 9100 9 9 0 jetdirect 515 8 8 0 printer 25 6 4 2 smtp 631 5 5 0 ipp 5060 4 4 0 sip 8080 3 2 1 http-proxy 1025 3 3 0 NFS-or-IIS 53 2 2 0 domain 111 1 1 0 rpcbind 3306 1 1 0 mysql Strona 8
Wnioski 1. Skanowanie UDP Dla skanowania UDP wszystkie porty są open filtered. Nie mamy więc jednoznacznej odpowiedzi, czy port jest otwarty, pomimo powtarzania transmisji. Oznacza to, że port może być otwarty lub filtr pakietów blokuje do niego dostęp. Najpopularniejsze porty w tym skanowaniu to porty systemu netbios, który zapewnia podstawowy interfejs łączenia aplikacji z innymi komputerami oraz współdzielenie danych. Porty 137 oraz 138 są używane przez systemy Windows do komunikacji wewnątrz sieci. Niestety na tych portach rozprzestrzeniają się wewnątrz sieci wirusy oraz backdory. Istnieje także możliwość dokonania ataku np. poprzez zafałszowanie nagłówka pakietu i podszycie się pod jeden z komputerów w danym otoczeniu sieciowym. Większość administratorów sieci blokuje te porty w celu ograniczenia ataków, podobnie czynią firewalle. Port 5355 który został otwarty na wielu komputerach uznawany jest za niebezpieczny i wykorzystywany do przeprowadzania zdalnych ataków. Bazuje on na DNS (domain name system) oraz wskazuje na przewagę systemu Windows. Po przeprowadzonym skanowaniu UDP 10.0.2.0/24 jesteśmy w stanie wywnioskować, iż najpopularniejszym systemem operacyjnym jest Microsoft Windows. Strona 9
2. Skanowanie OS Skanowanie sieci 149.156.111.0/24 programem nmap nie określiło nam jednoznacznie użytkowanych systemów operacyjnych. Nmap nie rozpoznał wszystkich systemów operacyjnych np. z powodu utraconych pakietów. Nie jesteśmy w stanie w 100% wskazać jaki system operacyjny działał w 17 nierozpoznanych przez nmap komputerów. Wnioskujemy na podstawie przeprowadzonego skanowania iż systemy rodziny Microsoft Windows pracują na 7 rozpoznanych maszynach. 3. Skanowanie TCP Skanowanie sieci 149.156.112.0/24 programem nmap pozwoliło nam na wskazanie, że najczęściej występującym systemem jest system Microsoft Windows. Port 445 jednoznacznie wskazuje na przewagę systemu Windows. Port 80 czyli protokół komunikacji przeglądarki z www uplasował się na 3 miejscu. Miejsce niżej zajmuje pozycje ssh czyli port 22 odpowiadający za szyfrowane łączenie się ze zdalnymi komputerami. Usługa ftp pozwala na przesyłanie plików na serwer i jest otwarta na 4 komputerach. 4. Skanowanie SYN Najpopularniejszymi usługami dla tego skanowania są ssh, http, https, ftp. Są to usługi odpowiadające głównie za transfer danych. Na podstawie tych usług nie jesteśmy w stanie określić, z jakim system operacyjnym mamy do czynienia, ponieważ te protokoły są używane w każdym systemie. Plik oraz zdjęcia potwierdzające autentyczność skanowań są zawarte pod adresem www.is2.cba.pl Strona 10