OWASP Zed Attack Proxy - Overview
Sadržaj:
- Što je Open Port
- Provjerite Otvorene portove s
nmap
- Provjerite Otvorene portove s
netcat
- Provjerite otvorene portove pomoću Bash Pseudo uređaja
- Zaključak
Bilo da rješavate probleme s mrežnim povezivanjem ili konfigurirate vatrozid, jedna je od prvih stvari koja treba provjeriti jesu li portovi zapravo otvoreni u vašem sustavu.
Ovaj članak opisuje nekoliko pristupa kako biste saznali koji su portovi otvoreni prema van na vašem Linux sustavu.
Što je Open Port
Port za slušanje je mrežni ulaz koji aplikacija sluša. Popis portova za preslušavanje na vašem sustavu možete dobiti
lsof
s naredbama kao što su
ss
,
netstat
ili
lsof
. Svaki ulaz za slušanje može se otvoriti ili zatvoriti (filtrirati) pomoću vatrozida.
Općenito govoreći, otvoreni port je mrežni port koji prihvaća dolazne pakete s udaljenih mjesta.
Na primjer, ako pokrećete web poslužitelj koji sluša portove
80
i
443
a ti su portovi otvoreni na vašem vatrozidu, svatko (osim blokiranih ips) može pristupiti web stranicama koje se nalaze na vašem web poslužitelju putem njegovog preglednika. U ovom su slučaju i
80
i
443
otvoreni portovi.
Otvoreni portovi mogu predstavljati sigurnosni rizik jer napadači mogu koristiti svaki otvoreni port da iskoriste ranjivost ili izvrše bilo koju drugu vrstu napada. Izložite samo one portove potrebne za funkcionalnost vaše aplikacije i zatvorite sve ostale portove.
Provjerite Otvorene portove s
nmap
Nmap je moćan mrežni alat za skeniranje koji može skenirati pojedinačne domaćine i velike mreže. Koristi se uglavnom za provjere sigurnosti i probojnost.
Ako je dostupan,
nmap
bi trebao biti vaš prvi alat kada je u pitanju skeniranje portova. Osim skeniranja portova
nmap
može otkriti i Mac adresu, vrstu OS-a, verzije kernela i još mnogo toga.
Sljedeća naredba izdana s konzole određuje koji portovi slušaju TCP veze s mreže:
sudo nmap -sT -p- 10.10.8.8
-sT
govori
nmap
za skeniranje TCP portova i
-p-
za skeniranje za sve 65535 portove. Ako se ne koristi
-p-
nmap
će skenirati samo 1000 portova.
Starting Nmap 7.60 (https://nmap.org) at 2019-07-09 23:10 CEST Nmap scan report for 10.10.8.8 Host is up (0.0012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds
Izlazni ishod pokazuje da se u ciljanom sustavu otvaraju samo portovi
22
,
80
i
8069
.
Za skeniranje UDP portova koristite
-sU
umjesto
-sT
:
sudo nmap -sU -p- 10.10.8.8
Za više informacija posjetite stranicu nmap man i pročitajte o svim ostalim moćnim opcijama ovog alata.
Provjerite Otvorene portove s
netcat
Netcat (ili
nc
) je alat naredbenog retka koji može čitati i pisati podatke putem mrežnih veza, koristeći TCP ili UDP protokole.
Pomoću
netcat
možete skenirati jedan ulaz ili raspon priključaka.
Na primjer, za skeniranje otvorenih TCP portova na udaljenom računalu s IP adresom
10.10.8.8
u rasponu
20-80
upotrijebili biste sljedeću naredbu:
nc -z -v 10.10.8.8 20-80
Opcija
-z
nalaže
nc
da skenira samo za otvorene portove, bez slanja bilo kakvih podataka, a
-v
je za više detaljnih informacija.
Izlaz će izgledati ovako:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded!… Connection to 10.10.8.8 80 port succeeded!
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!
Za skeniranje UDP portova proslijedite opciju
-u
naredbi
nc
:
nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded
Provjerite otvorene portove pomoću Bash Pseudo uređaja
Drugi način provjere je li određeni port otvoren ili zatvoren je pomoću Bash shell
/dev/tcp/..
ili
/dev/udp/..
pseudo uređaja.
Prilikom izvršavanja naredbe na pseudo uređaju
/dev/$PROTOCOL/$HOST/$IP
, Bash će otvoriti TCP ili UDP vezu s navedenim hostom na navedenom priključku.
Sljedeća će izjava if..else provjeriti je li port
443
na
kernel.org
otvoren:
if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi
if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi
Port is open
Kako djeluje gornji kod?
Zadani vremenski period pri povezivanju s priključkom pomoću pseudo uređaja je ogroman, pa koristimo naredbu
timeout
da ubijemo testnu naredbu nakon 5 sekundi. Ako se uspostavi veza s
kernel.org
443
, naredba ispitivanja vratit će se na istinu.
Također možete upotrijebiti petlju za provjeru raspona vrata:
for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done
for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done
Izlaz će izgledati ovako:
port 22 is open port 80 is open
Zaključak
Pokazali smo vam nekoliko alata pomoću kojih možete skenirati otvorene portove. Postoje i druge alate i metode za provjeru postoje li otvoreni portovi, na primjer, možete koristiti Python
socket
modul,
curl
,
telnet
ili
wget
.
Kako provjeriti slušanje portova u Linuxu (portovi koji se koriste)

Ovaj članak objašnjava kako pronaći portove koji se koriste i koje usluge slušaju koji portovi koriste naredbe netstat, ss i lsof. Upute su primjenjive za sve operativne sustave temeljene na Linuxu i Unixu, poput macOS-a.
Kako provjeriti prostor na disku u Linuxu pomoću naredbe df

Koliko prostora mi je ostalo na tvrdom disku? Na Linux-temeljenim sustavima možete koristiti naredbu df da biste dobili detaljno izvješće o upotrebi diskovnog prostora u sustavu.
Kako provjeriti verziju kernela u Linuxu

Kernel je glavna komponenta operativnog sustava. U ovom ćemo vam vodiču pokazati nekoliko različitih načina da saznate koja verzija Linux kernela radi na vašem sustavu.