dodany: 07.01.2013 | tagi: , ,

Autor:

nmap – porty. Podstawowe techniki skanowania

8

W poprzednim artykule opisaliśmy, jak zainstalować i w podstawowym zakresie używać nmapa, popularnego skanera sieciowego. Tak jak obiecaliśmy, w tym można będzie dowiedzieć się więcej o technikach skanowania oraz uzupełnić braki w podstawowej wiedzy.

W większości przypadków niewymagających specjalnego pomyślunku, w zupełności wystarcza domyślny typ skanowania. Typów jest aż 15, a jeden z nich pozwala pozbyć się ograniczenia w postaci predefiniowanych ustawień i umożliwia dostęp do wszelkich flag TCP. Zatem niedoświadczony użytkownik może próbować trafić w odpowiedni typ, ale prawdopodobieństwo, że przeprowadzi pomyślne skanowanie jest niewielkie. Prawdziwy ekspert od razu wybierze ten właściwy (ewentualnie kombinację) do postawionego zadania. Jako że nmap to darmowe oprogramowanie, jedyną przeszkodą jest wiedza (a właściwie jej brak).

Większość rodzajów skanowania (jak ten próbujący wykryć system operacyjny opisany w poprzedniej części) jest dostępna tylko dla uprzywilejowanych użytkowników. Wynika to z faktu, że nmap zazwyczaj operuje na niskopoziomowych pakietach (z ang. raw) – ze względu na budowę systemów uniksopochodnych dostęp do nich jest wręcz niemożliwy dla szarych użytkowników. Sytuacja wygląda podobnie na Windowsach: istnieje prawdopodobieństwo, że system skorzysta z biblioteki WinPcap i obędzie się bez praw administratora. Jednak nmap dopiero pokazuje swoją siłę i elastyczność na koncie bez ograniczeń, a więc warto odpowiednio skonfigurować swój system operacyjny.

Należy pamiętać, że chociaż nmap stara się podawać jak najdokładniejsze wyniki, to są one oparte na informacjach zwracanych przez skanowane systemy. Dlatego otrzymane informacje mogą nie być wiarygodne i wprowadzać skaner w błąd. Zawsze należy podchodzić z pewną rezerwą do otrzymanych danych.

 

Porty

Zanim jednak przejdziemy do części dotyczącej typów skanowania, wrócimy na chwilę do podstaw, to znaczy do portów. Chociaż większość alternatywnych skanerów rozróżnia tylko otwarte i zamknięte porty, nmap rozpoznaje aż sześć różnych stanów. Niekoniecznie reprezentują one faktyczny stan portu – opisują tylko jak widzi je nmap. Może zdarzyć się tak, że wynik jednego skanowania wskaże port 93 jako otwarty, a drugi serwer umiejscowiony w zupełnie innym miejscu uzna go za filtrowany.

 

  • Otwarty

Aplikacja nasłuchująca na porcie akceptuje połączenia TCP i pakiety UDP. Zazwyczaj odnalezienie tego typu portów jest głównym celem skanowania. Każdy otwarty port może okazać się celem ataku. Pentesterzy chcą je wykorzystać, a administratorzy zamknąć lub zabezpieczyć w sposób niezauważalny dla użytkowników. Otwarte porty są również ciekawe ze względu na to, że wskazują jakie usługi są dostępne na serwerze.

 

  • Zamknięty

Taki port jest dostępny, czyli odbiera i odpowiada na pakiety wysłane przez skaner, ale żadna aplikacja nie korzysta z tego portu. Zamknięte porty służą zwykle do sprawdzenia czy maszyna jest dostępna w sieci, bywają też pomocne przy wykrywaniu systemu operacyjnego. Istnieje prawdopodobieństwo, że takowy port jest tak naprawdę filtrowany.

 

  • Filtrowany

Nmap nie może określić czy port jest otwarty z powodu filtrowania pakietów. Owym filtrem może okazać się sprzętowy firewall, router albo odpowiednie oprogramowanie. Takie porty dostarczają minimalnego zestawu informacji. Czasem odpowiadają komunikatem ICMP typu 3 kod 13 (destination unreachable: communication administratively prohibited), ale zwykle nawet taka odpowiedź jest filtrowana. Brak jakiejkolwiek odpowiedzi bardzo spowalnia skanowanie.

 

  • Niefiltrowany

Taki port jest dostępny, ale nmap nie potrafi określić jego faktycznego stanu. (Tylko pozornie – więcej informacji w następnym artykule).

 

  • Otwarty/filtrowany

Nmap nie jest w stanie określić czy port jest otwarty, czy filtrowany, zazwyczaj przez to, że pakiet dociera do portu, ale skaner nie otrzymuje odpowiedzi. Może to znaczyć, że filtr zablokował połączenie albo odpowiedź.

 

  • Zamknięty/filtrowany

Analogicznie do powyższego opisu, z tą różnicą, że stan ten może wystąpić tylko podczas skanowania IP ID.

Tyle teorii. Podchodząc do tematu portów bardziej praktycznie, nmap oferuje 2 godne uwagi przełączniki. Jednym z nich jest -p, który służy do zdefiniowania konkretnego lub konkretnych portów. Poza podawaniem ich indywidualnie, można podać zakres jak w przypadku adresów IP, na przykład: -p 20-39 przeskanuje porty z zakresu od 20 do 39. Jeżeli parametrem będzie sam myślnik (-p-), nmap przeskanuje wszystkie porty od 1 do 65535.

Ponadto można określić konkretny protokół. T: dla TCP, U: dla UDP, S: dla SCTP oraz P: dla IP. Na przykład -p U:52,92,T:20-39,80 przeskanuje porty UDP 52 i 92 oraz TCP z zakresu 20-39 oraz 80. Do takiego skanowania należy jeszcze podać odpowiedni typ skanowania.

Kolejnym przełącznikiem jest -F, który na podstawie pliku nmap-services ogranicza liczbę skanowanych portów z 1000 najpopularniejszych do 100. Pozwala to bardzo przyśpieszyć skanowanie, ale skutkiem ubocznym może być pominięcie niestandardowego, chociaż otwartego portu. Coś za coś.

 

Podstawowe techniki skanowania

Z teoretyczną i praktyczną wiedzą dotyczącą portów można w końcu zapoznać się z różnymi technikami skanowania portów. Pominę techniki pozwalające ukryć IP użytkownika – w końcu wykonujemy skany maszyn/sieci za zgodą właściciela, nie ma powodów do krycia się, prawda?

Jedyna metoda, która nie wymaga praw administratora, to skanowanie TCP (przełącznik -sT). Jest ona wybierana automatycznie, jeżeli użytkownik nie ma uprawnień do wysyłania niskopoziomowych pakietów raw. W takim przypadku nmap używa systemowej funkcji connect(), czyli prosi system operacyjny o nawiązanie połączenia z określonym przez użytkownika celem. Zamiast odczytywać odpowiedzi “z kabla” używając niskopoziomowych odwołań, skaner używa do tego wysokopoziomowego interfejsu, tak jak większość sieciowych aplikacji, jakimi są przeglądarki internetowe albo programy P2P.

Nmap ma mniejszą kontrolę nad wywołaniami connect niż nad surowymi pakietami, przez co jest mniej wydajny. System operacyjny wykonuje pełne połączenie z portem. W efekcie skanowanie jest przeprowadzane wolniej, potrzebne jest więcej pakietów, aby otrzymać takie same dane co przy połowicznym otwieraniu połączeń (opisanym poniżej). Jest również bardziej prawdopodobne, że skanowana maszyna odnotuje nawiązanie połączenia w dzienniku systemowym.

Domyślnym i najpopularniejszym sposobem skanowanie jest skanowanie TCP SYN (przełącznik -sS). Nie jest tak bez powodu. Takie skanowanie jest przeprowadzone szybko – w sieci nieograniczonej zaporami nmap jest w stanie odpytać tysiące portów na sekundę. Ponadto działa z każdym stosem zgodnym z TCP. Dodatkowo jest ono względnie dyskretne i niezauważalne, bo skaner nigdy nie nawiązuje pełnego połączenia TCP.

Właśnie dlatego metoda ta bywa nazywana skanowaniem z połowicznym otwieraniem połączeń. Skaner wysyła pakiet SYN, zupełnie tak jak przy otwieraniu normalnego połączenia i czeka na odpowiedź. Jeżeli w odpowiedzi zostaje otrzymany pakiet SYN/ACK lub SYN (bez flagi ACK), znaczy to, że port jest otwarty – jeżeli RST (reset) to port jest zamknięty. Jeżeli nmap nie otrzymuje żadnej odpowiedzi po kilku zapytaniach lub otrzymuje błąd ICMP (unreachable error typu 3, kod 1, 2, 3, 9, 10 lub 13), port zostaje uznany za filtrowany.

Chociaż większość popularnych usług korzysta z protokołu TCP, usługi UDP (takie jak DNS albo DHCP) są równie często spotykane. Ponieważ skanowanie portów UDP jest wolniejsze i bardziej skomplikowane, niektórzy pentesterzy pomijają sprawdzanie ich. Jest to oczywiście błąd, bo usługi nasłuchujące na UDP bywają niezabezpieczone i bardzo wątpliwe, że atakujący sieć o nich zapomni. Na szczęście nmap umożliwia skanowanie również tych portów. Przełącznikiem uruchamiającym ten typ skanu jest -sU i może być on łączony ze skanami TCP (jak -sS), aby przeprowadzić jak najbardziej kompleksowy audyt.

Podczas skanowania portów UDP nmap wysyła pakiet do każdego określonego portu. Dla niektórych popularnych usług nasłuchujących na portach takich jak 53 i 161 zawierają one informacje specyficzne dla działającej usługi, jednak dla większości wysyłane są puste nagłówki. Jeżeli w odpowiedzi nmap otrzymuje błąd ICMP (unreachable error, typ 3, kod 3), port jest zamknięty, jeżeli typ3, kod 1, 2, 9, 10 lub 13 – port oznaczony jest jako filtrowany. Jeżeli nasłuchująca usługa odpowie pakietem UDP, port jest otwarty. Może się zdarzyć, że nmap przy kolejnym połączeniu nie otrzyma żadnej odpowiedzi – wtedy port jest oznaczony jako otwarty/filtrowany. W takim wypadku funkcja wykrywania usług (-sV) może pomóc zidentyfikować rzeczywisty stan portu.

Największym wyzwaniem podczas skanowania UDP jest przeprowadzenie go jak najszybciej. Otwarte i filtrowane porty rzadko jakkolwiek odpowiadają, przez co nmap jest zmuszony do oczekiwania na odpowiedź i wysłania kolejnych pakietów, aby upewnić się czy połączenie zostało przerwane. Zamknięte porty okazują się jeszcze większym problemem – zwykle w odpowiedzi wysyłany jest błąd ICMP, ale Linux i Solaris ograniczają szybkość wysyłania pakietów ICMP. Na przykład kernel Linuksa w wersji 2.4.20 ogranicza je do jednego na sekundę. Nmap potrafi wykrywać takie ograniczenia i celowo zwalnia skanowanie, aby zapobiec zaśmiecaniu celu zbędnymi pakietami. Niestety, przeskanowanie wszystkich portów UDP przy ograniczeniu do jednej odpowiedzi na sekundę powoduje, że pełny skan trwa ponad 18 godzin. Jedynym obejściem tego problemu jest skanowanie w pierwszej kolejności popularnych portów, skanowanie wielu maszyn równolegle lub użycie —host-timeout aby pominąć wolniejsze cele.

Skanowanie protokołu IP pozwala określić, jakie protokoły (TCP, ICMP, IGMP, itd.) są dostępne na docelowych maszynach. Technicznie rzecz biorąc nie jest to skanowanie portów, ponieważ nmap sprawdza kolejne numery protokołów zamiast portów TCP lub UDP. Jednak przełącznik -sO nadal umożliwia określenie poszczególnych numerów za pomocą -p i na tym cechy wspólne z portami się kończą.

Skanowanie protokołów działa analogicznie do skanowania UDP, lecz zamiast iteracji po kolejnych numerach portów, w nagłówkach pakietów zmienia się ośmiobitowy numer określający protokół. Poza tym nagłówki są zwykle puste, nie zawierają żadnych informacji, nawet poprawnych dla danego protokołu. Wyjątkami są TCP, UDP, ICMP, SCTP i IGMP. Część systemów nie wysłałaby pustego nagłówka przez wymienione protokoły. Zamiast oczekiwać na odpowiedź ICMP unreachable, nmap czeka na ICMP protocol unreachable error. Jeżeli otrzyma odpowiedź z danego protokołu, jest on otwarty, jeżeli błąd ICMP typu 3, kod 2 – zamknięty. W przypadku otrzymania błędu ICMP innego typu lub kodu, protokół oznaczony jest jako filtrowany (jednocześnie potwierdzają, że protokół ICMP jest otwarty). W przypadku braku odpowiedzi protokół jest otwarty/filtrowany.

Tak oto zapoznaliśmy się z najczęściej spotykanymi technikami skanowania (nie tylko) portów. W połączeniu z podstawowymi informacjami zawartymi w poprzednim artykule, wiedzy spokojnie wystarczy na podstawowy audyt własnej sieci lub sprzętu. Oczywiście nie są to wszystkie sposoby skanowania – istnieją bardziej pokrętne, wykorzystujące dosłownie informacje zawarte w RFC lub przeciwnie, używające informacji, których w opisanych standardach zabrakło. Ale o tym w następnym artykule.

avatar
WebSecurity.pl to największy w Polsce portal o bezpieczeństwie sieciowym.
WebSecurity.pl to codziennie aktualizowane źródło najnowszych informacji i interesujących artykułów z zakresu bezpieczeństwa IT. Na WebSecurity.pl dzielimy się z Wami wiedzą (know-how) i umiejętnościami (how-to), publikując pomocne wskazówki, porady, kursy i tutoriale. Na portalu znajdziecie także prezentacje sprzętu oraz recenzje oprogramowania. WebSecurity.pl to również baza najciekawszych i najważniejszych wydarzeń branżowych w Polsce i na świecie.

8 odpowiedzi na “nmap – porty. Podstawowe techniki skanowania”

  1. I took pleasure in reviewing your internet site, that is why i determined to leave a comment in your guestbook.

    Magnum opus! Keep it up.

  2. I am very motivated together with your ability as a copywriter and also with all the page layout as part of your website. Is this the given subject material or does one customize the item all by yourself? In any case stay the good high-quality composing, it is strange to search a great website exactly like it today.

  3. Hello there, I stumbled upon your blog by way of Bing when you are evaluating a connected matter, your internet site came up, it appears superior. I’ve bookmarked so that you can favourites|added to book marking.

  4. avatar stone island hoodie napisał(a):

    acheter stone island paris stone island store baby stone island in mazatlan http://www.ngxinteractive.com/stone/?stoneislando… black stone island jeans vigoss baby stone island clothes austin texas stone island polo shirt black stone island jeans 36 inseam http://www.ngxinteractive.com/stone/?stoneislando… boys stone island jacket baby stone island 89.5 stone island heat reactive jacket baby stone island uk store http://www.ngxinteractive.com/stone/?stoneislando… boys stone island 4n49 baby stone island clothes sale stone island duffle coat black stone island jeans history http://www.ngxinteractive.com/stone/?stoneislando… boys stone island jackets harley davidson baby stone island on ebay http://www.ngxinteractive.com/stone/?stoneislando… black stone island wooly hat baby stone island clothes in san diego stone island clearance black stone island jeans and a cute top shop http://www.ngxinteractive.com/stone/?stoneislando… boys stone island jackets 7xl baby stone island clothes 3d stone island bomber black stone island beanie http://www.ngxinteractive.com/stone/?stoneislando… boys stone island cap baby stone island coat xxl stone island black stone island jeans no back pockets http://www.ngxinteractive.com/stone/?stoneislando… boys stone island jackets parkas baby stone island 10k results stone island polo

  5. avatar Hyperlink napisał(a):

    Hyperlink My business is don’t optimistic the spot you’re getting your information, yet superior issue. I has to devote some time finding out more or even understanding much more. Thanks for amazing facts I’m hunting for this data in my vision.

  6. mont blanc pen discount singapore

  7. avatar ogłoszenia napisał(a):

    I believe this is one of the such a lot vital information for me.
    And i’m satisfied studying your article.
    However should remark on some basic things,
    The website style is ideal, the articles is really great
    : D. Good job, cheers

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *