Podstawy skanowania portów
Przez lata funkcjonalność Nmapa była sukcesywnie powiększana,
z początku był tylko efektywnym skanerem portów i to nadal pozostaje
jego główną funkcją. Prosta komenda nmap
<target>
skanuje ponad 1660 portów
TCP na wybranym <celu skanowania>
. Podczas
kiedy większość skanerów tradycyjnie zalicza wszystkie porty do
kategorii otwarty lub zamknięty, Nmap jest dużo dokładniejszy.
Rozróżnia sześć możliwych stanów każdego portu:
otwarty
,
zamknięty
,
filtrowany
,
niefiltrowany
,
otwarty|filtrowany
, or
zamknięty|filtrowany
.
Te stany nie są rzeczywistymi stanami portów, opisują jak Nmap je widzi.
Na przykład, skanowanie Nmapa z wnętrza sieci pokazuje port 135/TCP jako
otwarty, podczas kiedy skanowanie przez Internet może określić stan portu
jako filtrowany
.
- otwarty
Aplikacja aktywnie akceptuje na tym porcie połączenia TCP lub pakiety UDP. Znalezienie takich portów jest głównym celem skanowania. Osoby obeznane z bezpieczeństwem wiedzą, że każdy otwarty port to potencjalny cel ataku. Atakujący i wykonujący testy penetracyjne chcą wykorzystać luki w oprogramowaniu poprzez otwarte porty, podczas gdy administratorzy starają się zamykać lub chronić je za pomocą systemów zaporowych przed niepożądanymi użytkownikami. Otwarte porty są także interesujące przy skanowaniach nie związanych z oceną bezpieczeństwa, ponieważ pokazują usługi dostępne w sieci.
- zamknięty
Zamknięty port jest dostępny (odbiera i odpowiada na pakiety Nmapa), ale nie ma żadnej aplikacji, która by obsłużyła połaczenie. Porty te mogą być pomocne przy sprawdzaniu czy host jest aktywny (wykrywanie hostów lub skanowanie Ping) oraz przy wykrywaniu systemu operacyjnego. Ponieważ są dostępne zamknięte porty, warto skanować dalej w poszukiwaniu otwartych. Administratorzy mogą chcieć blokować takie porty za pomocą systemów zaporowych, wtedy ich stan zostanie określony jako filtrowany, opisany dalej.
- filtrowany
Nmap nie może określić czy port jest otwarty z powodu filtrowania komunikacji. Filtrowanie może być przeprowadzane na dedykowanym urządzeniu, za pomocą reguł routera lub programowego firewalla na hoście. Takie porty są frustrujące dla atakujących, ponieważ dostarczają znikomych ilości informacji. Porty czasami odpowiadają komunikatami ICMP takim jak typ 3 kod 13 (destination unreachable: communication administratively prohibited), ale filtry blokują wysyłanie takiego komunikatu bez wysyłania typowej odpowiedzi. Takie zachowanie zmusza Nmapa do kilkukrotnego powtarzania pakietów na wypadek ich zaginięcia na przykład na skutek przeciążenia sieci, co spowalnia skanowanie w sposób drastyczny.
- niefiltrowany
Stan niefiltrowane oznacza że port jest dostępny, ale Nmap nie jest w stanie ustalić czy port jest otwarty czy zamknięty. Tylko skanowanie ACK, które jest używane do mapowania reguł firewalla, może przypisać portom taki stan. Skanowanie niefiltrowanych portów za pomocą innych typów skanowania takich jak Window, SYN czy FIN może pomóc określić czy port jest otwarty czy zamknięty.
- otwarty|filtrowany
Nmap podaje taki stan w przypadku portów, dla których nie jest w stanie określić czy port jest otwarty, czy filtrowany. Taki zachowanie występuje podczas typów skanowania, przy których porty nie dają odpowiedzi. Brak odpowiedzi może również oznaczać, że filtr pakietów zablokował połączenie lub wysyłaną odpowiedź. Z tego powodu Nmap nie ma pewności czy port jest otwarty, czy filtrowany. W ten sposób klasyfikują porty skanowania UDP, FIN, Null, Xmas i skanowanie protokołów.
- zamknięty|filtrowany
Ten stan jest używany przez Nmapa do oznaczania portów, dla których nie jest możliwe ustalenie czy port jest zamknięty czy filtrowany. Taki stan może się pojawiać tylko podczas skanowania IPID Idle.