Skeniranje sustava (engl. scanning and enumeration) drugi je korak faze prikupljanja podataka. Ovaj korak obično se sastoji od identifikacije aktivnih računala, identifikacije pronađenih otvorenih portova i servisa koji su pokrenuti na njima, te identifikacije instaliranog operacijskog sustava i sl. U ovom koraku provodi se aktivno skeniranje ciljanog sustava. Skeniranje se obavlja nad svim pronađenim računalima (pronađene IP adrese) u prethodnom koraku. Rezultat provođenja ovog koraka je lista svih pronađenih aktivnih računala, te otvorenih portova na njima, servisa pokrenutih na tim portovima i informacije o instaliranim operacijskim sustavima.
Tijekom skeniranja potrebno je biti oprezan. Samo skeniranje ako se ne provede ispravno može opteretiti ciljani sustav s nepotrebnim prometom. Ne odgovaraju sve tehnike svakoj vrsti sustava, pa treba biti oprezan pri odabiru tehnike skeniranja nad sustavom. Odabirom krive tehnike ili alata može se izazvati neželjeni DoS napad i sustav može postati neupotrebljiv u tom trenutku. Svi alati za skeniranje trebali bi prije skeniranja ciljanog sustava biti isprobani na nekom testnom sustavu, kako bi se utvrdila njihova ispravnost i bezazlenost za ciljani sustav.
Izvođenje ovog koraka može se podijeliti na dva dijela:
Otkrivanje aktivnih sustava prvi je korak skeniranja sustava. Kao alat u ovom koraku koriste se različiti port skeneri (engl. port scanners). Većina njih je besplatna i dostupna na Internetu, a neki popularniji su:
Port skeneri za identifikaciju aktivnih sustava koriste različite metode. Jedna od najviše korištenih metoda je obično pinganje računala korištenje ICMP-a (Internet Control Message Protocol). Koriste se paketi ICMP ECHO i ICMP ECHO_REPLY. Skeniranje se obavlja tako da se pošalje ICMP ECHO paket prema željenom računalu (željenoj IP adresi), te ukoliko to računalo odgovori s paketom ICMP ECHO_REPLY ono je aktivno na mrežu. Ukoliko se ne dobije odgovor znači da se to računalo s tom IP adresom ne nalazi na mreži. [2]
Ukoliko je iz sigurnosnih razloga ping zabranjen na mreži koja se skenira, koriste se neke druge metode (npr. TCP ping) za otkrivanje aktivnih računala na mreži.
I u ovom koraku koriste se razni port skeneri za detektiranje otvorenih portova, servisa pokrenutim na otvorenim portovima (engl. banner grabbing) i instaliranih operacijskih sustava (engl. fingerprinting). [3]
Na Internetu su dostupni različiti besplatni port skeneri, a neki od njih su:
Nakon što su pronađena aktivna računala na mreži sada se skeniraju kako bi se otkrili otvoreni TCP (Transport Control Protocol) i UDP (User Datagram Protocol) portovi. Port skeneri koriste različite dostupne metode skeniranja koje imaju svoje prednosti i mane. Neke metode dobre su za skeniranje kroz vatrozidove, dok su neke druge metode dobre za skeniranje mreže unutar vatrozida. Da bi se razumjelo na koji način točno rade port skeneri potrebno je razumjeti metode koje se koriste za skeniranje. Najpoznatija je metoda SYN SCAN. Ukoliko SYN SCAN metoda ne zadovoljava potrebe postoje još i FIN SCAN, XMAS Tree SCAN i NULL SCAN metode. Sve navedene metode koriste TCP pakete, ali svaka metoda postavlja različite zastavice unutar samog TCP paketa i na osnovu odgovora zaključuje se je li port otvoren ili zatvoren. [2]
U SYN SCAN metodi postavlja se SYN zastavicu unutar TCP paketa i taj se paket šalje meti skeniranja na različite portove. Ovisno o odgovoru zaključuje se je li port otvoren ili zatvoren. Port je zatvoren ukoliko meta skeniranja odgovori s postavljenom zastavicom RST. Port je otvoren ukoliko meta skeniranja odgovori s postavljenim zastavicama SYN i ACK. U slučaju otvorenog porta na dobiveni odgovor odgovara se slanjem paketa s postavljenom zastavicom RST. [9] (Slika 4.1)
U FIN SCAN metodi postavlja se FIN zastavicu unutar TCP paketa i taj se paket šalje meti skeniranja na različite portove. Port je zatvoren ukoliko meta skeniranja odgovori s postavljenom zastavicom RST. Port je otvoren ukoliko meta skeniranja ne pošalje nikakav odgovor na poslani paket. [9] (Slika 4.2)
U XMAS Tree SCAN metodi postavljaju se FIN, URG i PUSH zastavicu unutar TCP paketa i taj se paket šalje meti skeniranja na različite portove. Port je zatvoren ukoliko meta skeniranja odgovori s postavljenom zastavicom RST. Port je otvoren ukoliko meta skeniranja ne pošalje nikakav odgovor na poslani paket. [9] (Slika 4.3)
U NULL SCAN metodi postavlja ne postavlja se nijedna od zastavica unutar TCP paketa i taj se paket šalje meti skeniranja na različite portove. Port je zatvoren ukoliko meta skeniranja odgovori s postavljenom zastavicom RST. Port je otvoren ukoliko meta skeniranja ne pošalje nikakav odgovor na poslani paket. [9] (Slika 4.4)
Osim što port skeneri mogu otkriti otvorene portove na računalu mogu pomoći pri otkrivanju procesa pokrenutog na otvorenom portu. Npr. ako je otkriveno da je otvoren port 80, obično to je znak da je na tom portu pokrenuta neka vrsta Web poslužitelja. Kako postoji veliki broj različitih Web poslužitelja, a svaki ima različite sigurnosne propuste, to nije dovoljna informacija. Proces je moguće identificirati prema informacijama (engl. banner) koje sam proces šalje na određeni upit. Npr. HTTP zaglavlje daje puno informacija o sustavu s kojeg je poslano. Šalje detaljne informacije o pokrenutom poslužitelju s kojeg je zaglavlje poslano.
Svi port skeneri daju informacije o otkrivenim otvorenom portovima koje su pronašli, ali neki port skeneri nude dodatne informacije. Obično se tijekom skeniranja portova može dobiti i informacija o operacijskom sustavu koji se nalazi na računalu koje se skenira. O kojem operacijskom sustavu se radi moguće je saznati iz različitih informacija koje se prikupljaju tijekom skeniranja portova.
Ako je npr. skeniranjem portova utvrđeno da su otvoreni TCP portovi 135 i 139 može se zaključiti da se radi o operacijskom sustavu Windows, jer su to standardni portovi za njega. TTL (Time To Live) polje unutar TCP paketa isto tako može koristiti za identifikaciju operacijskog sustava, jer svaki operacijski sustav ima karakterističan odgovor na različite pakete.
Bitno je napomenuti da identifikacija operacijskog sustava ne mora uvijek biti točna. Vatrozidovi mogu blokirati dio portova i filtrirati promet i na taj način "sakriti" neke određene portove. Ili administrator sustava može postaviti sustav tako da šalje nestandardne odgovore kako bi zakamuflirao operacijski sustav.
Nmap je najpopularniji besplatan, otvorenog koda port skener. Dostupan je za većinu operacijskih sustava (Linux, Windows i Mac OS X). Standardno sučelje je komandno-linijsko sučelje, ali ima i opcionalno grafičko sučelje (NmapFE). Koristi se za otkrivanje aktivnih računala, identificiranje pokrenutih servisa na otvorenim portovima, te identificiranje operacijskog sustava. Podržava velik broj različitih tipova skeniranja od kojih svako ima svoje prednosti i mane. Podržava sve do sada navedene metode skeniranja (SYN SCAN, FIN SCAN, XMAS Tree SCAN i NULL SCAN). [2]
Nmap se koristi na sljedeći način: nmap [tip skeniranja] [dodatne opcije] < IP adresa ili raspon IP adresa >
Kao prvi argument predaje se tip skeniranja. Nmap omogućuje kombiniranje različitih tipova skeniranja. Nakon toga, kao drugi argument, postavljaju se dodatne opcije skeniranja (oblik ispisa rezultata, ispis rezultata u datoteku, portovi koji se skeniraju i sl.). Kao zadnji argument predaje se IP adresa ili raspon IP adresa koji se skenira. Ovisno o željenom načinu skeniranja i rezultatu koriste se različite raspoložive opcije. [15]
Za otkrivanje aktivnih računala Nmap može koristiti obični ping (opcije –sP i –P0) ili može koristiti TCP ping (opcije -PS, -PA i -PU). (Slika 4.5)
Za identificiranje pokrenutih servisa i njihovih potpunih naziva i verzija na otvorenim portovima koristi se opcija -sV uz kombiniranje nekog od tipova skeniranja (npr. –sS za SYN SCAN metodu). (Slika 4.5)
Za identifikaciju operacijskog sustava koristi se opcija –O uz kombinaciju nekog od raspoloživih tipova skeniranja. U većini slučajeva i iz rezultata identificiranja pokrenutih servisa može se zaključiti o kojem operacijskom sustavu se radi.
![]() |
![]() |
![]() |