Scanning Ports With Nmap In Kali Linux
Inhoudsopgave:
- Wat is Open Port
- Vink Open Ports met
nmap
- Vink Open Ports aan met
netcat
- Schakel Open Ports in met Bash Pseudo Device
- Conclusie
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
.
Intel-poorten Linux Netbook OS naar desktops
Intel heeft het Moblin OS overgezet van netbooks naar desktop-schermen.
Gebruik schijf controleren (chkdsk) in Windows om te controleren op fouten in de harde schijf
Leer hoe u Check Disk (chkdsk) in Windows gebruikt om te controleren op fouten in de harde schijf.
Hoe te controleren op luisterpoorten in Linux (poorten in gebruik)
In dit artikel wordt uitgelegd hoe u de gebruikte poorten kunt vinden en welke services luisteren naar welke poorten de opdrachten netstat, ss en lsof gebruiken. De instructies zijn van toepassing op alle Linux- en Unix-gebaseerde besturingssystemen zoals macOS.