Android

Hoe te controleren (scannen) op open poorten in Linux

Scanning Ports With Nmap In Kali Linux

Scanning Ports With Nmap In Kali Linux

Inhoudsopgave:

Anonim

Of u nu problemen met de netwerkverbinding oplost of een firewall configureert, een van de eerste dingen die u moet controleren, is welke poorten daadwerkelijk op uw systeem worden geopend.

Dit artikel beschrijft verschillende benaderingen om erachter te komen welke poorten naar buiten worden geopend op uw Linux-systeem.

Wat is Open Port

Een luisterpoort is een netwerkpoort waarnaar een toepassing luistert. U kunt een lijst van de luisterpoorten op uw systeem krijgen door de netwerkstapel te bevragen met commando's zoals ss , netstat of lsof . Elke luisterpoort kan open of gesloten zijn (gefilterd) met behulp van een firewall.

In het algemeen is een open poort een netwerkpoort die inkomende pakketten van externe locaties accepteert.

Als u bijvoorbeeld een webserver gebruikt die luistert op poorten 80 en 443 en die poorten op uw firewall zijn geopend, kan iedereen (behalve geblokkeerde ips) met zijn browser toegang krijgen tot websites die op uw webserver worden gehost. In dit geval zijn zowel 80 als 443 open poorten.

Open poorten kunnen een beveiligingsrisico vormen, omdat elke open poort door aanvallers kan worden gebruikt om misbruik te maken van een kwetsbaarheid of een ander type aanval uit te voeren. Stel alleen de poorten bloot die nodig zijn voor de functionaliteit van uw toepassing en sluit alle andere poorten.

Vink Open Ports met nmap

Nmap is een krachtig netwerkscanprogramma dat afzonderlijke hosts en grote netwerken kan scannen. Het wordt voornamelijk gebruikt voor beveiligingsaudits en penetratietests.

Indien beschikbaar, zou nmap uw eerste hulpmiddel moeten zijn als het gaat om poortscannen. Naast poortscannen kan nmap ook Mac-adres, OS-type, kernelversies en nog veel meer detecteren.

De volgende opdracht van de console bepaalt welke poorten luisteren naar TCP-verbindingen vanuit het netwerk:

sudo nmap -sT -p- 10.10.8.8

De -sT vertelt nmap om te scannen op TCP-poorten en -p- om te scannen op alle 65535-poorten. Als -p- niet wordt gebruikt, scant nmap slechts 1000 poorten.

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

De bovenstaande output laat zien dat alleen poorten 22 , 80 en 8069 op het doelsysteem zijn geopend.

Om te scannen op UDP-poorten gebruikt u -sU plaats van -sT :

sudo nmap -sU -p- 10.10.8.8

Voor meer informatie bezoek de nmap man-pagina en lees over alle andere krachtige opties van deze tool.

Vink Open Ports aan met netcat

Netcat (of nc ) is een opdrachtregelprogramma dat gegevens over netwerkverbindingen kan lezen en schrijven met behulp van de TCP- of UDP-protocollen.

Met netcat kunt u een enkele poort of een poortbereik scannen.

Als u bijvoorbeeld wilt scannen naar open TCP-poorten op een externe machine met IP-adres 10.10.8.8 in het bereik 20-80 u de volgende opdracht:

nc -z -v 10.10.8.8 20-80

De optie -z vertelt nc om alleen naar open poorten te scannen, zonder gegevens te verzenden en de -v is voor meer uitgebreide informatie.

De uitvoer ziet er ongeveer zo uit:

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!

Om te scannen op UDP-poorten geeft u de optie -u aan de opdracht nc :

nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded

Schakel Open Ports in met Bash Pseudo Device

Een andere manier om te controleren of een bepaalde poort open of gesloten is, is door de Bash-shell /dev/tcp/.. of /dev/udp/.. pseudo-apparaat te gebruiken.

Bij het uitvoeren van een opdracht op een /dev/$PROTOCOL/$HOST/$IP pseudo-apparaat, opent Bash een TCP- of UDP-verbinding met de opgegeven host op de opgegeven poort.

De volgende if..else-instructie controleert of poort 443 op kernel.org open is:

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

Hoe werkt de bovenstaande code?

De standaardtime-out bij het verbinden met een poort met behulp van een pseudo-apparaat is enorm, dus we gebruiken de timeout outopdracht om de testopdracht na 5 seconden te doden. Als de verbinding tot stand is gebracht met kernel.org poort 443 , retourneert het kernel.org true.

U kunt ook de for-lus gebruiken om te controleren op een poortbereik:

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

De uitvoer ziet er ongeveer zo uit:

port 22 is open port 80 is open

Conclusie

We hebben u verschillende hulpmiddelen laten zien die u kunt gebruiken om te scannen op open poorten. Er zijn ook andere hulpprogramma's en methoden om te controleren op open poorten, u kunt bijvoorbeeld de Python- socket , curl , telnet of wget .

terminal