Poorten zijn een van de belangrijkste redenen waarom datapakketten hun weg naar de gewenste bestemming kunnen vinden. Ze fungeren als interfaces tussen computers en systeemservices of programma’s en worden gebruikt door de TCP- en UDP-net werkprotocollen. Samen met het IP-adres kunnen besturingssystemen achterhalen naar welke computer en applicatie ze gegevens moeten verzenden.

Wat is poortscannen? Een korte uitleg

Poortscannen verwijst naar het gerichte proces van het controleren van open poorten in een computersysteem met behulp van speciale tools. Voordat we ingaan op wat poortscannen precies is, is het misschien handig om eerst te kijken wat poorten zijn. Poorten fungeren als een interface tussen actieve programma’s en het internet. Ze worden gebruikt om inkomende en uitgaande datapakketten naar de juiste applicaties te leiden en worden beheerd door besturingssystemen.

Opmerking

Om via een poort te kunnen communiceren, moet deze worden geopend. Het openen van poorten brengt echter risico’s met zich mee. Als een van de applicaties die de poort gebruikt beveiligingslekken heeft, kan de poort dienen als een potentieel toegangspunt voor aanvallers. Om het risico op een aanval te minimaliseren, moet u altijd weten welke poorten op uw systeem open zijn en welke applicaties daarmee zijn gekoppeld.

U hoeft niet ingelogd te zijn op het doelsysteem om er een poortscan op uit te voeren. U hoeft alleen maar via een lokaal netwerk of internet verbonden te zijn met het systeem. Met behulp van poortscanners kunt u speciale datapakketten als test naar verschillende poorten sturen. U ontvangt dan antwoorden of foutmeldingen, die door de tool die u gebruikt worden geanalyseerd. Afhankelijk van het functiebereik van het scanprogramma kunt u informatie verkrijgen over welke poorten open en welke gesloten zijn. U kunt ook gegevens ontvangen over welke diensten en/of toepassingen de betreffende poorten gebruiken.

Poortscannen biedt systeembeheerders een zeer efficiënte manier om het dataverkeer in een netwerk te monitoren. Met poortscannen kunnen potentiële zwakke plekken worden gefilterd en kan het aanvalsoppervlak van het systeem worden verkleind. In sommige gevallen kan het beheerders helpen om concrete netwerkproblemen op te lossen. Bovendien hebben de tools geen merkbare invloed op de prestaties van de systemen die ze scannen. Daardoor kunnen ze worden gebruikt voor beveiligingsmaatregelen zonder dat men zich zorgen hoeft te maken over onbedoelde effecten op de prestaties van het systeem.

Poortscanners zijn ook nuttig voor thuiscomputers. Zodra u applicaties gaat gebruiken die een internetverbinding vereisen, worden er automatisch poorten geopend, tenzij uw firewall dit verhindert. Een poortscan kan u helpen om een overzicht te behouden en laat u zien welke poorten niet langer nodig zijn. U kunt deze vervolgens sluiten om veiligheidsrisico’s te verminderen.

Hoe werkt poortscannen?

Poortscanners bieden veel verschillende methoden. De meeste daarvan maken echter gebruik van het verbindingsgeoriënteerde protocol TCP. Om de basisprocessen te begrijpen die tijdens het scannen van poorten plaatsvinden, is het nuttig om de algemene structuur van TCP-verbindingen te bekijken:

  • Dit proces, ook wel bekend als een drieweghanddruk, begint wanneer de client een SYN-pakket (synchroniseren) naar de bestemmingspoort stuurt.
  • Zodra het pakket een applicatie bereikt, ontvangt de client een gecombineerd SYN/ACK-pakket (synchronise/acknowledge), waarmee wordt bevestigd dat de verbinding tot stand is gebracht.
  • Als derde en laatste stap stuurt de client een ACK-pakket (acknowledge), waarmee de verbinding tot stand wordt gebracht en de gegevensuitwisseling kan beginnen.

Als er contact wordt gemaakt met een gesloten poort, ontvangt de client tijdens de tweede stap een RST-pakket (reset), waarmee de handshake wordt beëindigd.

Aangezien het moeilijk en tijdrovend zou zijn om gegevens uit te wisselen met verschillende soorten applicaties, blijft het scannen van poorten beperkt tot eenvoudige pogingen om verbindingen tot stand te brengen, zoals blijkt uit de volgende scanmethoden.

TCP-SYN-scan

Het doel van een TCP-SYN-scan is niet om een volledige TCP-verbinding tot stand te brengen. Daarom wordt dit type scan vaak een halfopen poortscan genoemd. Met behulp van de poortscanner stuurt deze methode typische SYN-pakketten naar individuele poorten en wacht op een antwoord van de doelhost. Als de host een SYN/ACK-pakket terugstuurt, geeft dit aan dat de betreffende poort open is en dat het mogelijk is om een verbinding tot stand te brengen. Als het antwoord een RST-pakket is, betekent dit dat de poort gesloten is. Als er geen antwoord is, kan dit waarschijnlijk worden teruggevoerd op een pakketfilter (bijv. een firewall) die zich stroomopwaarts bevindt.

TCP-SYN-scans zijn niet zichtbaar voor de applicaties die worden beoordeeld en genereren daarom geen loggegevens. Daarom worden ze ook wel stealth-scans genoemd.

TCP-verbindingsscan

Als u een connect-scan uitvoert met uw poortscanner, genereert en verstuurt u niet zelf het gegevenspakket. In plaats daarvan gebruikt u de systeemaanroep connect. Deze is beschikbaar op bijna elk besturingssysteem. Als een verbindingspoging succesvol is, betekent dit dat de poort open is. Als de verbindingspoging mislukt, betekent dit dat de poort gesloten is. Als er met succes een verbinding tot stand is gebracht (d.w.z. een poort was open), kunt u in de logbestanden van de applicatie zien dat deze scantechniek is gebruikt. Er wordt echter geen informatie verstrekt over de gebruikte filterprogramma’s. Als u niet over de rechten beschikt om onbewerkte gegevenspakketten te verzenden, kan de TCP connect-scan een nuttig alternatief zijn voor SYN-scans.

TCP-FIN-, Xmas- en Null-scans

Met deze drie methoden voor het scannen van poorten kunt u ook onderscheid maken tussen open en gesloten poorten. Hierbij worden twee basisconcepten gebruikt, die zijn gedocumenteerd in RFC 793:

  1. Gesloten poorten moeten altijd pakketten beantwoorden (zolang het geen RST-pakketten zijn) met hun eigen RST-pakket.
  2. Open poorten moeten alle pakketten negeren die niet zijn gemarkeerd als SYN, RST of ACK.

Bij het scannen van RCF-compatibele systemen maken deze scanmethoden gebruik van deze principes met behulp van hun eigen pakketten:

  • De Null-scan maakt geen gebruik van speciale markeringen.
  • Bij FIN-scans verstuurt de poortscanner FIN-pakketten (finish).
  • Xmas- scans gebruiken een combinatie van FIN-, PSH- (push) en URG-markeringen (urgent), waardoor de pakketten oplichten als een kerstboom.

Alle drie de scanmethoden werken op dezelfde manier. Vanwege de RCF-regels zorgen de testpakketten ervoor dat gesloten poorten reageren met RST-pakketten en dat open poorten geen reactie geven. Niet alle routers sturen foutmeldingen als een poort wordt gefilterd, wat zou kunnen betekenen dat er sprake is van een gefilterde poort als er geen melding verschijnt (naast de mogelijkheid dat het een open poort is). Hoewel deze methode veel discreter is dan SYN-scans, werkt deze mogelijk niet goed als systemen zich niet volledig aan RFC 793 houden. Een bekend voorbeeld hiervan is Windows.

UDP-scan

Bij UPD-scans worden lege UDP-headers zonder gegevens naar alle lege poorten gestuurd. Als een service met een UDP-pakket antwoordt, is de bijbehorende poort open. Als de poortscanner de foutmelding ‘Poort onbereikbaar’ van de router ontvangt (type 3, code 3), herkent hij de poort als gesloten. Andere foutmeldingen dienen om gebruikers te informeren dat pakketfilters verantwoordelijk zijn voor het blokkeren van poorten. Het probleem met UDP-poorttesten is dat het enorm veel tijd kost. Dit komt omdat het bij veel systemen om veiligheidsredenen lang kan duren voordat er foutmeldingen worden gegeven. Bovendien reageren veel van deze systemen slechts sporadisch op poorten. De Linux-kernel beperkt het aantal rapporten per seconde, wat betekent dat het ongeveer 18 uur zou duren om 65.535 poorten volledig te scannen.

Welke poortscanners zijn er?

Er zijn veel verschillende scanners die verschillen in het scala aan functies dat ze bieden. De meeste van deze tools zijn beschikbaar als freeware of open-source opties. Veel daarvan beschikken over klassieke opdrachtregelprogramma’s die via afzonderlijke grafische interfaces kunnen worden gebruikt. Bovendien zijn er veel online oplossingen waarmee gebruikers poorten rechtstreeks in een browser kunnen scannen. Diensten zoals de poortscanner van DNS-tools zijn beperkt in hun functionaliteit en bieden alleen de mogelijkheid om afzonderlijke poorten te controleren. Daarom zijn ze zeer geschikt voor het uitvoeren van snelle controles op pc’s.

Netcat

Netcat (afgekort: nc) werd in 1996 gepubliceerd door een anonieme ontwikkelaar die bekend staat als ‘Hobbit’. Oorspronkelijk geschreven voor Unix-platforms, zijn er nu veel portingopties voor systemen zoals Windows en andere uitbreidingen zoals GNU Netcat, OpenBSD Netcat, Cryptcat en Netcat6 (ondersteunt ook IPv6), die standaard in veel Linux-distributies zijn opgenomen. De basisversie van het opdrachtregelprogramma is in de eerste plaats ontworpen om gegevens te verzenden of te lezen via TCP- en UDP-netwerkverbindingen. Het kan echter ook worden gebruikt voor eenvoudige poortscanningtaken. Hiermee kunnen gebruikers de status van poorten 20 tot 30 op een bepaald systeem controleren met eenvoudige opdrachten zoals:

nc -zv localhost 20-30
bash

Voor het controleren van UDP-poorten is de extra parameter*-u* vereist. U kunt ook de hostnaam of het IP-adres van een extern systeem (als u dat weet) gebruiken in plaats van localhost.

Nmap

Een aanzienlijk krachtiger hulpmiddel, dat vooral handig is voor het scannen van poorten, is Network Mapper, vaak Nmap genoemd. Nmap is ontworpen voor Unix-achtige systemen, heeft een GPL-licentie en is sinds 2000 beschikbaar voor Windows-systemen (zij het met beperkingen). Dit betekent dat TCP Connect-scans onevenredig veel tijd in beslag nemen en dat het scannen van uw eigen systeempoorten alleen mogelijk is via indirecte paden. Over het algemeen kan Nmap via een opdrachtregel worden bediend. Zenmap daarentegen beschikt over een krachtige grafische interface waarmee gebruikers het netwerkprogramma gemakkelijk kunnen gebruiken.

De maker van Nmap, Gordon Lyon, en het ontwikkelteam van Nmap zijn verantwoordelijk voor de verdere ontwikkeling van het programma en de poortscanfuncties ervan. Met name technologieën zoals OS-fingerprinting (d.w.z. het herkennen van het besturingssysteem van een doelhost) en het uitlezen van services die zich achter poorten verschuilen, maken Nmap tot een van de populairste poortscanneroplossingen. De volgende tabel toont de verschillende methoden die dit programma te bieden heeft:

Poortscanmethoden Nmap-commando Beschrijving
TCP connect-scan nmap -sT host Klassieke controle voor niet-beheerders
TCP Syn-scan nmap -sS host Snelle, onopgemerkte inspectiemethoden voor beheerders.
TCP FIN-/XMAS-/Null-scan nmap -sF host nmap -sX host nmap -sN host Methoden die firewalls kunnen omzeilen
TCP ping -scan nmap -sP host Voor traditionele poortscans; helpt bij het controleren van de beschikbaarheid van een host.
TCP ACK-scan nmap -sA host Bepaalt geleverde poorten, maar maakt geen onderscheid tussen open en gesloten poorten
TCP Window-scan nmap -sW host Vergelijkbaar met de ACK-scan; kan sommige open en gesloten poorten verifiëren.
TCP Maimon-scan nmap -sM host Combinatie van FIN- en ACK-scans.
TCP idle scan nmap -sI zombie host host Minst opvallende, meest complexe en dus traagste scanmethode; wordt uitgevoerd via een derde computer die door Nmap als ‘zombie’ wordt aangeduid.
UDP-scan nmap -sU host Scanmethoden voor verbindingsloze UDP-poorten
SCTP init-scan nmap -sY host Poortscan met SCTP, een alternatief voor TCP en UDP
IP-protocolscan nmap -sO host Geen poortscan; controleert welk IP-gebaseerd protocol wordt ondersteund op het doelsysteem

U kunt zowel Nmap als de interface Zenmap voor uw besturingssysteem downloaden op de officiële website van Nmap. Zowel de huidige (stabiele) versie als een bètaversie (ontwikkeling) zijn beschikbaar.

Waarom poortscannen niet altijd legaal is

Het controleren van poorten is niet altijd legaal. Zodra er een poging totexploitatie wordt ondernomen (de term die door cybersecurityprofessionals wordt gebruikt om te verwijzen naar het misbruiken van een beveiligingslek of -gat), kan de persoon of groep die hiervoor verantwoordelijk is, te maken krijgen met mogelijke juridische gevolgen.

Het is echter minder duidelijk wat de juridische situatie is wanneer een computersysteem tot stilstand komt als gevolg van intensieve poortscanning. Door de hoge frequentie van verbindingsverzoeken kunnen dergelijke monitoringmethoden uitdagingen vormen voor het doelsysteem, wat soms kan leiden tot het crashen van het systeem. Bovendien kunnen beheerders van het systeem dat het doelwit is, zich vóór de crash bewust worden van de activiteiten van de aanvallers en deze acties interpreteren als de eerste stappen van een aanval.

In dergelijke gevallen is het belangrijk om juridische gevolgen niet uit te sluiten. Als het beoogde systeem opzettelijk wordt overbelast, kan dit worden beschouwd als een DDoS-aanval, wat ertoe kan leiden dat het slachtoffer van de aanval juridische stappen onderneemt.

U moet er altijd voor zorgen dat u bevoegd bent om een poortscan op een systeem uit te voeren en deze techniek alleen gebruiken voor beveiligingsdoeleinden en niet alleen om uw nieuwsgierigheid te bevredigen. De hier besproken poortscanmethoden benadrukken hoe belangrijk het is om de poorten en netwerkcomputers van uw eigen systeem in de gaten te houden, evenals de services die er toegang toe hebben.

Ga naar hoofdmenu