« poprzedni punkt 


3. Techniki skanowania

W tej chwili technika skanowania budzi w wielu środowiskach zastrzeżenia co do jej legalności. Poniżej przytaczam fragment wiadomości umieszczonej na witrynie CERT Polska.

Pod koniec roku 2000, jeden z lokalnych sądów w Stanach Zjednoczonych uznał, że skanowanie portów komputerowych nie jest niezgodne z prawem, pod warunkiem oczywiście że nie wyrządza szkody. Sąd przychylił się do głosu obrony i uznał, że czas spędzony na rozpatrywaniu przypadku skanowania sieci, czy komputera, nie może być wzięty pod uwagę przy określeniu poniesionych strat finansowych. Strata może być uznana tylko wtedy jeśli następuje naruszenie integralności i dostępności sieci. "Jest to dobra decyzja dla naukowców związanych z bezpieczeństwem teleinformatycznym" - stwierdził obrońca oskarżonego.

Decyzja wydaje się być kontrowersyjna. Wszelkie klasyfikacje przypadków naruszenie bezpieczeństwa teleinformatycznego zawierają przypadek skanowania sieci, czy pojedynczego komputera. Oczywiście, rzadko kiedy dochodzi w wyniku samego skanowania do naruszenia bezpieczeństwa, chociaż nie jest to wykluczone. Jest to jednak niezaprzeczalnie sposób na zebranie informacji, która w rezultacie może posłużyć do dokonania zasadniczego włamania. Co więcej - to właśnie włamanie może nie zostać wykryte właśnie dzięki wcześniejszemu skanowaniu. Wątpliwe jest również określenie tej decyzji jako korzystnej dla naukowców. Poważni naukowcy tego typu eksperymenty dokonują w laboratoriach.


3.1. Cele skanowania

Skanowanie jest powszechnie stosowaną metodą zdalnego wykrywania komputerów i usług udostępnianych przez te komputery. Metoda ta polega na próbkowaniu aktywności badanego komputera, poprzez wysyłanie do niego specjalnie spreparowanych pakietów i oczekiwaniu na odpowiedź. Po odebraniu odpowiedzi przystępujemy do jej interpretacji. Niekiedy również brak odpowiedzi niesie dla skanującego informację odnośnie aktywności badanego komputera lub usługi.

Skanowanie pełni rolę wywiadu, który dostarcza informacji o zdarzeniach i urządzeniach w sieci. Pozwala stwierdzić, które urządzenia i serwisy sieciowe działają , a które nie - co niejednokrotnie jest informacją równie istotną. Można zdalnie określić czy dany komputer jest aktywny, rozpoznać uruchomione na nim serwisy oraz system operacyjny.

Skanowanie może pomóc również w rozpoznaniu topologii sieci i konfiguracji urządzeń dostępowych (np.: list kontroli dostępu, tablic rutowania). Jest ono wykorzystywane przez administratorów do rozwiązywania problemów z siecią, jak również przez intruzów w celach rozpoznawczych.


3.2. Skanowanie ICMP

Najprostszą, najczęściej stosowaną ale i coraz mniej skuteczną metodą skanowania jest wysłanie pakietu ICMP echo request, czyli popularnego pinga. Na tej podstawie można stwierdzić czy docelowe urządzenie jest osiągalne. Brak odpowiedzi nie świadczy jednak o tym, że komputer nie jest nieosiągalny. Powodów braku odpowiedzi może być wiele: zapora ogniowa filtrująca pakiety ICMP, wyłączony serwis na docelowym komputerze i wiele innych. Na rys. 1 przedstawiono przykładowy raport uzyskiwany z programu skanującego, a na rys. 2, obraz ruchu sieciowego związanego z tym rodzajem skanowania.

Rys. 1. Raport skanera wysyłającego pakiety ICMP echo request

Rys. 2. Ruch sieciowy podczas skanowania pakietami ICMP echo request

Zdarza się, że na maszynie filtrującej ruch blokowane są wyłącznie pakiety ICMP Echo Request/Replay. W takim przypadku można próbować wysyłać pakiety Timestamp Request (ICMP - typ 13) albo Address Mask Request (ICMP - typ 17). Są to zapytania kontrolne ICMP, na które docelowy komputer może odpowiedzieć. W pierwszym przypadku będzie to aktualny czas obowiązujący na zdalnej maszynie. Drugi przypadek to sytuacja, w której bezdyskowa stacja robocza pobiera maskę podsieci w czasie startu. Komunikaty te można wysłać wykorzystując narzędzia takie jak icmpush oraz icmpquery. W trakcie badań wykorzystano własny program autora. Na rys. 3 i 4 przedstawiono raporty programu skanującego. Na rys. 5 i 6 można zobaczyć obraz ruchu sieciowego związanego z obydwoma metodami skanowania. Podczas skanowania przy pomocy pakietów ICMP Address Mask Request nie uzyskano odpowiedzi ani od systemów Windows ani od systemu Linux.

Rys. 3. Raport skanera wysyłającego pakiety ICMP Timestamp Request

Rys. 4. Ruch sieciowy podczas skanowania pakietami ICMP Timestamp Request

Rys. 5. Raport skanera wysyłającego pakiety ICMP Address Mask Request

Rys. 6. Ruch sieciowy podczas skanowania pakietami ICMP Address Mask Request

Można również wysyłać pakiety ICMP na adres rozgłoszeniowy sieci. Pakiety takie będą jednak prawdopodobnie ignorowane przez odbiorców pracujących z systemami Windows. Powodem jest możliwość nadużycia, którą wykorzystuje jeden ze znanych ataków DoS- SMURF). Wyniki takiego skanowania przedstawiono na rys. 8 i 9. Skanowanie przeprowadzono w sieci, której topologię przedstawiono na rys. 7.

Rys. 7. Topologia sieci wykorzystanej w skanowaniu pakietami rozgłoszeniowymi

Rys. 8. Raport skanera wysyłającego pakiety ICMP echo request na adres rozgłoszeniowy

Rys. 9. Ruch sieciowy podczas skanowania pakietami ICMP echo request wysyłanymi na adres rozgłoszeniowy

Podczas eksperymentu, zgodnie z oczekiwaniami, systemy Windows nie odpowiedziały na wysłane pakiety. Systemy Linuks, oraz ruter zgłosiły swoją obecność wysyłając odpowiedzi do skanera. Na rys.9 nie widać pakietów odpowiedzi wysyłanych przez system 192.168.0.104 do samego siebie. Wynika to ze sposobu funkcjonowania snifera.


3.3. Skanowanie TCP

Pewne cechy protokołu TCP sprawiają, że jest on bardziej przydatny do skanowania niż np. protokół UDP. Niektóre techniki skanowania, w tym skanowanie z ukryciem tożsamości skanującego, wykorzystują cechę zorientowania na połączenia (connection-oriented) protokołu TCP. W skanowaniu ważne może być również śledzenie numerów sekwencyjnych oraz odpowiedzi systemu po otrzymaniu pakietu TCP z włączonymi określonymi flagami. Z reguły stosowane są pakiety nie zawierające danych, gdyż ważny jest fakt, czy zdalny system odpowiedział, a nie zawartość pola danych pakietu. Pewne techniki wykorzystują fragmentację pakietów w warstwie sieciowej, które pozwalają ukryć nagłówek TCP w kilku pakietach IP utrudniając detekcję skanowania.

Skanowanie połączeniowe

Najprostszą techniką skanowania portów z wykorzystaniem TCP jest metoda połączeniowa (TCP connect). Nazwa jej pochodzi od systemowej funkcji connect(), która służy do nawiązania pełnego połączenia ze zdalnym portem. Jeśli w fazie nawiązywania połączenia serwer odpowie pakietem z flagami SYN/ACK znaczy to, że port jest otwarty w trybie nasłuchu. Pakiet z flagami RST/ACK indykuje zamknięty port. Skanowanie kończy wysłanie pakietu z flagą RST. Wadą tej metody jest łatwość jej wykrycia i zablokowania. Zalety to szybkość oraz możliwość wykonania w przez każdego użytkownika.

Rys. 10. Raport skanera nmap wykrywającego otwarte porty 445 i 135 (metoda połączeniowa)

Rys.11. Ruch sieciowy podczas wykrywania przez skaner nmap otwartych portów 445 i 135 (metoda połączeniowa)

Rys. 12. Raport skanera nmap wykrywającego zamknięte porty 21 i 25 (metoda połączeniowa)

Rys.13. Ruch sieciowy podczas wykrywania przez skaner nmap zamkniętych portów 21 i 25 (metoda połączeniowa)

Skanowanie półotwarte

Nietrudno zaobserwować, że system docelowy dostarcza informacji o statusie portu już w trakcie trwania procesu nawiązywania połączenia po nadesłaniu odpowiedzi na pakiet SYN. Spostrzeżenie to wykorzystuje technika półotwarcia. Polega ona na wysłaniu pakietu RST zaraz po otrzymaniu w drugiej fazie połączenia pakietu SYN/ACK lub RST/ACK. Swego czasu zaletą tej metody była jej utrudniona wykrywalność co znalazło swój wyraz w pierwotnej nazwie (TCP SYN stealth).. Teraz nie jest to już prawdą. Technika ta zbliżona jest do ataku DoS SYN Flood. Dlatego też jest często wykrywana przez systemy IDS lub odfiltrowywana na bramkach dostępowych. Wadą tej metody jest konieczność posiadania uprawnień superużytkownika w systemie Linux. Potrzebne są bowiem uprawnienia do tworzenia tzw. gniazd surowych (raw socket) - zastrzeżone dla administratora. Detekcja portów zamkniętych przebiega tak samo jak w metodzie połączeniowej.

Rys. 14. Raport skanera nmap wykrywającego otwarte porty 445 i 135 (metoda półotwarta)

Rys.15. Ruch sieciowy podczas wykrywania przez skaner nmap otwartych portów 445 i 135 (metoda półotwarta)

Techniki specjalne TCP

Podobnie jak w przypadku skanowania półotwartego, stosowanie technik określanych mianem specjalnych miało na celu utrudnienie wykrycia faktu skanowania. Obecnie większość z nich należy do podstawowego zbioru zdarzeń wykrywanych przez systemy detekcji intruzów. Wszystkie techniki przedstawione w niniejszym punkcie wykorzystują podstawową zasadę zapisaną w RFC 793 określającą, że system powinien odpowiedzieć pakietem RST na każdy pakiet niezgodny z kolejnością nawiązywania połączenia TCP, jeżeli jest on kierowany do portu zamkniętego. Wobec tego skanowanie będzie polegało na wysyłaniu pakietów z ustawioną flagą FIN, z flagami SYN/ACK (drugi etap nawiązywania połączenia), z wszystkimi ustawionymi flagami (pakiet XMAS), bez ustawionych flag (pakiet NULL).

Detekcję portu zamkniętego systemu Linux przy pomocy technik specjalnych pokazano na rys. 16 i 17. Obrazy uzyskane podczas detekcji portu otwartego można zobaczyć na rys. 18 i 19. W tym przypadku, jak można zauważyć, nie jest wysyłana żadna odpowiedź przez system skanowany.

Niektóre systemy (np.: Windows) są na tą technikę odporne, gdyż zwracają pakiet RST również w przypadku skanowania portu otwartego. Taki przypadek dla portu otwartego pokazano na rys. 20 i 21. Detekcji poddano port 445 systemu Windows 2000. Jest on otwarty, co można stwierdzić np. na podstawie obrazów zamieszczonych na rys. 14 i 15. Program nmap błędnie rozpoznaje stan portów. Wynika to z odpowiedzi uzyskanych od systemu badanego. Przebieg detekcji portu zamkniętego przebiega według reguły przedstawionej powyżej.

Rys. 16. Raport skanera nmap dokonującego detekcji zamkniętego portu systemu Linux poprzez zastosowanie technik specjalnych (FIN, XMAS, NULL)

Rys.17. Ruch sieciowy podczas detekcji przez skaner nmap zamkniętego portu systemu Linux poprzez zastosowanie technik specjalnych (FIN, XMAS, NULL)

Rys. 18. Raport skanera nmap dokonującego detekcji otwartego portu systemu Linux poprzez zastosowanie technik specjalnych (FIN, XMAS, NULL)

Rys.19. Ruch sieciowy podczas detekcji przez skaner nmap otwartego portu systemu Linux poprzez zastosowanie technik specjalnych (FIN, XMAS, NULL)

Rys. 20. Błędny raport skanera nmap dokonującego badania faktycznie otwartego portu systemu Windows poprzez zastosowanie technik specjalnych (FIN, XMAS, NULL)

Rys.21. Ruch sieciowy podczas badania przez skaner nmap otwartego portu systemu Windows poprzez zastosowanie technik specjalnych (FIN, XMAS, NULL)

W sytuacjach przedstawionych wyżej należałoby bardziej zagłębić się w szczegóły implementacyjne stosów TCP/IP poszczególnych systemów operacyjnych. Niekiedy da się wówczas zaobserwować pewne prawidłowości, które można wykorzystać podczas interpretowania wyników skanowania portów. Polegają one na analizie pola określającego wielkość okna oraz pola TTL (time to live) otrzymanego pakietu RST. Niektóre systemy operacyjne, w przypadku portów zamkniętych zwracają pakiet RST z ustawionym polem TTL na wartość wyższą niż dla portów otwartych.

Sprawdzanie wielkości okna jest podobną techniką. W przypadku pokazanym na rys. 22 badanie polegało na wysyłaniu pakietów SYN/ACK do systemu OpenBSD przy pomocy programu hwing. W zwracanych (zaznaczonych) pakietach RST wielkość okna różna od zera oznacza otwarty port. Jest to prawdą np. dla systemów z rodziny BSD (FreeBSD, OpenBSD) oraz niektórych systemów Unix (AIX, HP-UX), choć pojawiły się łaty w ich ostatnich wersjach. W przykładzie pokazanym na rys. 22 pole TTL nie zdradza stanu portu. Natomiast dobre rezultaty daje analiza wielkości okna.

Rys.22. Detekcja otwartych portów 21 i 23 systemu OpenBSD poprzez analizę wartości pola WINDOW w odbieranych pakietach RST

Jak widać z załączonych przykładów poprawna interpretacja wyników uzyskanych przy pomocy opisanej metody wymaga wiedzy odnośnie systemu operacyjnego zainstalowanego na skanowanym komputerze. Dlatego też z reguły trzeba najpierw ustalić jego rodzaj.


3.4. Skanowanie UDP

W przypadku bezpołączeniowego protokołu UDP reakcja zdalnego systemu może być dwojaka. Aktywny system w momencie otrzymania datagramu UDP na zamknięty port powinien wysłać komunikat ICMP Destination Unreachable (typ 3) a dokładniej mówiąc ICMP Port Unreachable (typ 3, kod 3). Przypadek taki został przedstawiony na rys. 23 i 24.W przeciwnym przypadku, gdy port jest otwarty, nie należy się spodziewać odpowiedzi, gdyż w przypadku UDP nie występuje potwierdzanie odebrania pakietu. Taka sytuację można zobaczyć na rys. 25 i 2. Czasami można uzyskać odpowiedź z portu otwartego, gdy serwer usługi ulokowanej w tym porcie próbuje odpowiedzieć na domniemane żądanie. Zależeć to będzie przede wszystkim od sposobu budowania pakietu skanującego.

Rys. 23. Raport skanera nmap dokonującego detekcji zamkniętego portu 25 UDP

Rys.24. Ruch sieciowy podczas detekcji przez skaner nmap zamkniętego portu 25 UDP

Rys. 25. Raport skanera nmap dokonującego detekcji otwartego portu 445 UDP

Rys.26. Ruch sieciowy podczas detekcji przez skaner nmap otwartego portu 445 UDP

Jeżeli skanującemu zależy na zbadaniu osiągalności komputera a nie portu, to technika skanowania UDP również może znaleźć zastosowanie. Odpowiedź ICMP Port Unreachable (typ 3, kod 3) świadczy o osiągalności badanego węzła. Podobnie, z zastrzeżeniem uwag sformułowanych niżej, można by było interpretować brak odpowiedzi. Nieosiągalność węzła sygnalizowana może być przez ostatni przed badanym węzłem ruter, zwróceniem komunikatu ICMP Destination Unreachable (typ 3, kod 1).

Technika skanowania przy pomocy protokołu UDP nie należy do najskuteczniejszych ze względu na fakt, że wiele bramek (ściany ogniowe, rutery brzegowe) odfiltrowuje datagramy UDP skierowane na inne porty niż 53 (DNS). Datagramy UDP są łatwo wykrywalne, ze względu na ich małą popularność. Duża liczba systemów nie odpowiada prawidłowo na datagramy UDP, inne mają wprowadzone ograniczenia, np. co do ilości i częstości generowanych pakietów ICMP. Częste jest także filtrowanie pakietów ICMP przez zapory ogniowe oraz rutery. Dlatego brak odpowiedzi na datagram UDP o niczym nie świadczy. Niestety duża część dostępnych aktualnie skanerów brak odpowiedzi jednoznacznie interpretuje jako wykrycie portu otwartego, co oczywiście nie jest prawidłowym działaniem.


3.5. Inne techniki skanowania

Mapowanie odwrotne

Metodą wykrywania komputerów funkcjonujących w sieci może być wysyłanie pakietów z ustawioną flagą RST, tzw. inverse mapping. Metoda ta wykorzystywana jest z reguły do poznania topologii sieci - stwierdzenia, czy dany komputer istnieje czy nie. W typowym przypadku ruter po otrzymaniu pakietu skierowanego do hosta, który nie istnieje, wygeneruje komunikat ICMP host unreachable lub ICMP time exceeded. Dzieje się tak ponieważ ruter najpierw wyśle do podsieci zapytanie ARP o adres MAC komputera o zadanym adresie, a kiedy nie otrzyma odpowiedzi, zwróci komunikat o błędzie. Do rutera można wysłać dowolny pakiet, ale jeśli będzie on typowy (np.: ping - ICMP echo request lub SYN/ACK) to prawdopodobnie zostanie zapisany w logach. Jeśli natomiast będzie to pakiet z ustawioną flagą RST i losowym numerem ACK to istnieje duże prawdopodobieństwo, że zostanie zignorowany przez systemy ochrony, a wygeneruje komunikat interesujący osobę, która przeprowadza rozpoznanie. Sytuacja taka odpowiada zdarzeniu, kiedy zdalny system zamyka połączenie z hostem z chronionej sieci - nie ma więc powodów by takiego pakietu nie przyjąć. Dopóki zapory ogniowe lub inne programy ochronne nie będą śledzić wszystkich otwartych połączeń, skanowanie takie będzie skuteczne. Metoda ta pozwala jedynie stwierdzić, czy dany komputer nie jest aktywny. Brak odpowiedzi może oznaczać aktywność hosta, choć równie prawdopodobne jest to, że ruter nie wygenerował komunikatu ICMP, komunikat się zgubił, lub wysłany przez skanowanego pakiet został odfiltrowany w drodze powrotnej.

Mapowanie odwrotne z podszywaniem się

Odmianą powyższej metody jest tzw. spoofed inverse mapping, czyli skanowanie z ukryciem tożsamości (adresu) skanującego. Polega to na wykorzystaniu do skanowania jeszcze jednego komputera. Załóżmy, że komputerem skanującym jest A, komputerem pomocniczym B, a skanowaniu podlega komputer C. Ważne jest by wszystkie pakiety wysyłane z komputera B przechodziły przez A. W praktyce oznacza to, że A i B muszą znajdować się w jednym segmencie sieci.

Rys.27. Topologia sieci wymagana do przeprowadzenia skanowania metodą mapowania odwrotnego z podszywaniem się

Teraz postąpić można dwojako:

Wysyłać do komputera B pakiety z włączoną flagą ACK i sfałszowanym adresem źródłowym wskazującym na C. Komputer B odpowie na takie pakiety segmentami RST skierowanymi do hosta C. Ponieważ skanujący komputer A znajduje się po drodze do hosta B, będzie on w stanie wychwycić odpowiedź C na pakiety RST.

Aby nie zostawić śladu w logach na komputerze B można od razu wysyłać pakiety RST ze sfałszowanym adresem źródła (wskazującym na B) do komputera C. Jeśli bramka wyśle komunikat ICMP wskazujący na brak hosta C, to skanujący komputer A zobaczy go. Ujemną stroną takiego postępowania jest brak pewności pełnej anonimowości, bowiem podrobione pakiety zawierają pewne cechy identyfikujące konkretny system operacyjny.

Metoda idle scan

Metoda idle scan zależna jest od implementacji stosu TCP/IP konkretnego systemu operacyjnego. Wykorzystuje ona wcześniej opisaną technikę skanowania SYN - czyli nawiązywania połączenia TCP. Różnica polega na wykorzystaniu trzeciego komputera jako źródła pakietów, co pozwala na ukrycie przed skanowanym własnego adresu.

Aby skorzystać z tej techniki trzeba zlokalizować w sieci komputer, który nie wysyła i nie odbiera żadnych pakietów, tzw: host niemy (dumb). Scenariusz procesu skanowania zakłada udział trzech komputerów:

A - host skanujący,
B - host niemy,
C - host skanowany, czyli cel.

Rys.28. Topologia sieci wykorzystanej do zaprezentowania skanowania metodą idle scan

Technika ta wykorzystuje fakt, że wiele systemów operacyjnych umieszcza jako zawartość pola IP ID w nagłówku pakietu IP, liczby generowane w kolejności rosnącej, różniące się o stałą wartość. System Microsoft NT zwiększa to pole stopniowo o wartość 256, Linux o 1. Niektóre systemy (np. OpenBSD) losują te wartości, przez co nie można ich wykorzystać jako niemych hostów w tej metodzie.

Skanowanie zaczyna komputer A od wysyłania do komputera B pakietów ICMP Echo Request. W odbieranych pakietach ICMP Echo Reply analizowane są wartości pola IP ID. Wartości te powinny rosnąć w sposób regularny. Oznacza to, że komputer B nie wysyłał żadnych pakietów poza tymi, które stanowiły odpowiedź na pakiety przychodzące z komputera A. Przykład sekwencji takich odpowiedzi przedstawiono na rys. 29.

Rys.29. Odpowiedzi generowane przez host niemy

Równolegle z wysyłaniem i odbieraniem pakietów ICMP, komputer A wysyła do komputera C na badany port pakiet SYN (pierwsza faza nawiązywania połączenia TCP), ze sfałszowanym adresem nadawcy wskazującym na komputer B. Komputer C odpowie na taki pakiet w sposób zdefiniowany w RFC:

Wysyłanie przez skanującego pakietów SYN, kolejno do portów 79, 80, 81 komputera skanowanego zaprezentowano na rys. 30.

Rys. 30. Raport skanera hping2 dokonującego badania portów 79¸

Na komputerze A przez cały czas analizowane powinny być zmiany w polu IP ID pakietów przychodzących z hosta B. Jeśli nastąpiło zakłócenie regularności oznacza to, że komputer B odpowiedział pakietem RST na połączenie z komputera C zdradzając przez to, że badany port jest otwarty. Taki przypadek zaznaczono na rys. 31. Ruch pomiędzy komputerem niemym a skanowanym przedstawiono na rys. 32.

Rys. 31. Zakłócenie regularności w wartościach pola IP ID sygnalizujące port otwarty

Rys. 32. Ruch pomiędzy komputerem niemym (192.168.0.101) a skanowanym (192.168.0.106)

Technika ta w oczywisty sposób wymaga niemego hosta, by zminimalizować prawdopodobieństwo fałszywego rozpoznania. Fałszywe rozpoznanie może wystąpić wówczas, gdy komputer uważany za niemy nagle rozpocznie komunikację z jakimś innym hostem, którego skanujący nie brał pod uwagę. Generowanie większej liczby sfałszowanych pakietów do komputera C może być metodą również zmniejszenia prawdopodobieństwa popełnienia pomyłki. Skanowanie to może wykorzystywać inne metody nawiązywania połączenia niż SYN, np.: inverse mapping omijając ewentualne systemy IDS lub inne programy wyspecjalizowane w wykrywaniu skanowania.

Metoda FTP bounce

Metodą na ukrywanie tożsamości skanującego jest wykorzystanie techniki FTP Bounce Scanning. Wykorzystuje ona serwer FTP jako punkt pośredniczący - proxy. Metoda ta posługuje się właściwością protokołu FTP określoną przez RFC959, polegającą na tym, że serwer FTP może wysłać dane do innego komputera niż źródłowy czyli ten. z którego nawiązano połączenie. Właściwość ta określa się mianem FXP. Jest ona blokowana w wielu serwerach domyślnie, inne w ogóle jej nie posiadają. Czasami można zdefiniować, którzy użytkownicy serwera mogą korzystać z tej funkcji. Można na przykład pozwalać na takie transfery z określonego źródła, lub zabronić korzystania z tej funkcji użytkownikowi anonimowemu (anonymous).

Do skanowania wykorzystana zostaje komenda PORT określająca port docelowy oraz adres IP pod który należy wysyłać dane. Od tego momentu wyniki wszystkich poleceń wydanych serwerowi FTP przesłane zostaną do komputera skanowanego. Natomiast raporty dotyczące realizacji przesyłania danych kierowane są do skanującego.

Jeśli wyspecyfikowany port na komputerze skanowanym jest otwarty, to serwer FTP zwróci przeprowadzającemu skanowanie komunikat 150 i 226. W przeciwnym wypadku pojawi się komunikat 425 Can't build data connection: Connection refused.

Największą zaletą tej metody jest anonimowość (nie licząc logów serwera FTP). Osoba skanująca nie musi też posiadać uprawnień superużytkownika. Główną wadą tej metody jest jej powolność.

Na rys.33 przedstawiono topologię sieci wykorzystanej do przeprowadzenia opisywanego skanowania. Serwer FTP zainstalowany został na komputerze o adresie 192.168.0.101. Skanowanie przeprowadzano z komputera o adresie 192.168.0.104. Celem skanowania był komputer o adresie 192.18.0.106.

Rys.33. Topologia sieci zastosowana do przeprowadzenia skanowania FTP bounce

Na rys. 34 zobaczyć można raport uzyskiwany po stronie skanującego. Do skanowania wykorzystano standardowy program telnet. Skanowaniu podlegały porty 79¸ 82.

Na rys. 35 przedstawiono obraz ruchu sieciowego podczas testowania otwartego portu 80, na rys. 36 - obraz ruchu podczas testowania zamkniętego portu 79, a na rys. 37 - obraz ruchu podczas inicjowania sesji FTP pomiędzy skanującym a serwerem FTP. Dodatkowo na rys. 38 zamieszczono fragment logu serwera FTP, w którym można zauważyć zapisy dotyczące przeprowadzonego skanowania.

Rys.34. Raport po stronie skanującego

Rys. 35. Ruch sieciowy podczas detekcji otwartego portu 80 TCP

Rys.36. Ruch sieciowy podczas detekcji zamkniętego portu 79 TCP

Rys.37. Ruch sieciowy podczas inicjowania sesji FTP

Rys.38. Fragment zawartości logu serwera FTP z raportem dotyczącym przeprowadzonego skanowania


3.6. Ukrywanie skanowania

Istnieje szereg metod ukrywania faktu skanowania portów wybranych komputerów. Po pierwsze można użyć tych technik skanowania, które nie zostawiają śladu w standardowych logach systemu. Drugą przeszkodą są specjalistyczne systemy w tym IDS, które są wyczulone na tego typu działania. Wykorzystują one algorytmy, które stwierdzają, czy wykryta działalność jest skanowaniem czy zwykłym ruchem sieciowym. Znajomość tych algorytmów pozwala je ominąć.

Rys.39. Ruch sieciowy podczas skanowania połączeniowego z losową kolejnością portów

Rys.40. Ruch sieciowy podczas zalewu pakietów ukrywającego skanowanie


« poprzedni punkt