Android

Kako provjeriti (skenirati) otvorene portove u Linuxu

OWASP Zed Attack Proxy - Overview

OWASP Zed Attack Proxy - Overview

Sadržaj:

Anonim

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 .

terminal