In dit artikel8

Wat zijn pentest-tools en waarvoor gebruik je ze?

Bij security testing hoort de penetration test. Volgens NIST SP 800-115 is dat beveiligingstesten waarbij beoordelaars echte aanvallen nabootsen om manieren te vinden om beveiligingsmaatregelen van een applicatie, systeem of netwerk te omzeilen. Het gaat vaak om echte aanvallen op echte systemen en gegevens, met technieken die aanvallers ook gebruiken. Volgens NIST zoeken de meeste pentests naar combinaties van kwetsbaarheden, waarmee je meer toegang krijgt dan met één kwetsbaarheid alleen.

Een tool is een hulpmiddel binnen die methode. De waarde van een pentest zit in het plannen, in het kiezen van wat je doet en in het rapporteren, niet in het aanzetten van een tool. Scannen op kwetsbaarheden is iets anders dan een pentest, zie vulnerability management. De vier tools kijken elk naar iets anders:

Tool

Waar het op kijkt

Wat het oplevert

Nmap

Het netwerk

Een lijst van hosts, poorten en services met een status. Daarmee weet je wat er bereikbaar is.

Burp Suite

Webverkeer tussen browser en applicatie

Je ziet en wijzigt verzoeken en antwoorden. Daarmee test je hoe een webapplicatie omgaat met ongewone invoer.

Metasploit

Het gebruiken van kwetsbaarheden

Gecontroleerde aanvallen met modules. Daarmee laat je zien dat een kwetsbaarheid echt misbruikt kan worden.

Wireshark

Het verkeer zelf

Je ziet welke pakketten over een interface gaan en kunt protocollen uitpluizen.

Wanneer mag je deze tools gebruiken?

Artikel 138ab lid 1 van het Wetboek van Strafrecht stelt computervredebreuk strafbaar. Wie opzettelijk en wederrechtelijk binnendringt in een geautomatiseerd werk of een deel daarvan, kan worden gestraft met gevangenisstraf van ten hoogste twee jaren of een geldboete van de vierde categorie. Een goede bedoeling verandert daar niets aan.

Het Nmap-boek schrijft dat de beste manier om controverse te vermijden is altijd schriftelijke toestemming te krijgen. Bij pentests hoort die toestemming volgens het boek in de Statement of Work. Het boek zegt ook dat de wetgeving rond poortscans ingewikkeld is en per rechtsgebied verschilt, en raadt aan een bevoegde jurist in je eigen rechtsgebied te raadplegen. Hetzelfde boek schrijft dat beheerders van gescande systemen kunnen klagen en dat het daarom vaak verstandig is om toestemming te vragen, ook voor een lichte scan van een netwerk.

NIST zet de afspraken vooraf in de eerste fase van een pentest. In de planningsfase worden de regels vastgesteld, wordt de goedkeuring van het management afgerond en vastgelegd en worden de doelen bepaald. In die fase test je nog niet.

Een scope is de lijst van systemen, adressen en handelingen waarvoor toestemming is. Alles wat niet in de scope staat, test je niet, ook niet "even kijken". Een goede opdracht legt vast welke adressen, welke periode, welke technieken en wie bij een probleem gebeld wordt. Wel scannen en geen denial of service is zo'n afspraak. Toestemming komt van iemand die over het systeem mag beslissen. Bij een systeem van een klant is dat niet altijd de contactpersoon die je opdracht gaf, en dat is een aandachtspunt om vooraf na te gaan.

Dit is geen juridisch advies. Of een concrete situatie mag, beantwoordt een jurist die de feiten kent. Oefenen kan op je eigen lab of op speciaal bedoelde oefenplatformen. Het Nmap-project stelt ook de host scanme.nmap.org beschikbaar voor testdoeleinden, maar die toestemming geldt alleen voor scannen met Nmap en niet voor het testen van exploits of denial-of-serviceaanvallen.

Wat doet Nmap?

Nmap is een open-sourcetool voor netwerkverkenning en beveiligingsaudits. Het gebruikt ruwe IP-pakketten om vast te stellen welke hosts beschikbaar zijn, welke services ze aanbieden met applicatienaam en versie, welk besturingssysteem ze draaien en welk soort pakketfilters of firewalls er in gebruik is. Systeem- en netwerkbeheerders gebruiken Nmap ook voor netwerkinventarisatie en het bewaken van uptime. Het hoort bij netwerkbeveiliging.

Nmap meldt de status van elke poort:

  • open: een applicatie luistert op de poort.
  • filtered: een firewall of filter blokkeert de poort, zodat Nmap niet kan zien of hij open of dicht is.
  • closed: geen applicatie luistert, al kan dat veranderen.
  • unfiltered: de poort reageert, maar Nmap kan niet bepalen of hij open of dicht is.

Bij twijfel meldt Nmap ook de combinaties open|filtered en closed|filtered.

De Nmap Scripting Engine (NSE) laat je scripts gebruiken voor netwerktaken, zoals netwerkdetectie, uitgebreidere versiedetectie en het opsporen van kwetsbaarheden. Scripts vallen in categorieën zoals safe, version, vuln en intrusive. De categorie intrusive is voor scripts die niet als safe gelden, omdat de risico's te groot zijn dat ze het doelsysteem laten crashen, veel middelen gebruiken of door beheerders als kwaadaardig worden gezien.

De documentatie gebruikt als voorbeeld het commando nmap -A -T4 scanme.nmap.org. De optie -A schakelt detectie van besturingssysteem en versie, scriptscanning en traceroute in, en -T4 zorgt voor snellere uitvoering. Gebruik zo'n commando alleen op een doel waarvoor je toestemming hebt.

De uitkomst van Nmap is een startpunt. Een open poort op een server is niet vanzelf een probleem. Het gaat erom of de dienst daar hoort te staan en of hij bijgewerkt is. Beheerders gebruiken dezelfde uitkomst om te zien wat er echt bereikbaar is.

Wat doet Burp Suite?

Burp Suite is volgens de PortSwigger-documentatie een uitgebreide verzameling tools voor het testen van de beveiliging van webapplicaties. Er is een Community Edition, die PortSwigger omschrijft als de handmatige tools waarmee je kunt beginnen, en een Professional-editie. Enkele onderdelen, zoals het draaien van scans en Collaborator, zijn alleen in Professional beschikbaar. Webapplicaties testen hoort bij application security en de OWASP Top 10.

Burp Suite bestaat uit meerdere onderdelen. Burp Proxy is een webproxyserver tussen de browser en de doelapplicatie. Burp Repeater laat je een HTTP- of WebSocket-bericht aanpassen en opnieuw versturen. Burp Intruder automatiseert aangepaste aanvallen op webapplicaties; de documentatie noemt onder meer fuzzing en het opsommen van identifiers als typische toepassingen.

In Burp bepaalt de target scope welke hosts en URL's binnen de scope vallen voor het huidige project. Dat verandert het gedrag van tools in heel Burp. Burp kan verzoeken buiten de scope ook weggooien. Meer staat in de documentatie over de scope-instelling.

In de praktijk zie je het zo: je laat je browser via Burp Proxy lopen, bekijkt een inlogverzoek, stuurt het met Repeater opnieuw met een gewijzigde waarde en kijkt hoe de applicatie reageert. Een formulier dat veel invoer toelaat, kun je met Intruder met veel varianten testen. Stel daarom de scope in voordat je begint.

Wat doet Metasploit?

Het Metasploit Framework is open source. Volgens de README op GitHub valt het onder een BSD-achtige licentie. Het is een raamwerk met modules die je kunt kiezen en uitvoeren. De Metasploit-documentatie onderscheidt onder meer deze modules:

  • auxiliary: modules die een doel niet uitbuiten, maar gegevens verzamelen of beheertaken uitvoeren.
  • exploit: modules die een kwetsbaarheid gebruiken, zodat het framework code op de doelhost kan uitvoeren.
  • payload: code die op een doel wordt uitgevoerd, voor taken zoals gebruikers aanmaken of een shell openen.
  • post: modules die je na een compromittering gebruikt.

Metasploit start je met msfconsole. Met search zoek je een module, met use kies je die, met show options zie je de opties en met set stel je ze in. Met run voer je de module uit, bij een exploit-module met exploit.

Metasploit is het meest ingrijpende van de vier tools. Een exploit kan op een productiesysteem een dienst laten crashen. De kunst is te weten of een module past bij wat je ziet en wat de gevolgen zijn. Daarom spreek je vooraf af wat wel en niet mag, en wegen scope en toestemming hier extra zwaar.

Wat doet Wireshark?

Wireshark is volgens de gebruikersgids een netwerkpakketanalyzer die vastgelegde pakketgegevens zo gedetailleerd mogelijk toont. Het kan live pakketgegevens van een netwerkinterface vastleggen, onder meer van Ethernet, draadloos LAN, Bluetooth en USB, afhankelijk van hardware en besturingssysteem. Dissectors zorgen voor gedetailleerde protocolinformatie bij veel protocollen. Je kunt opnamebestanden openen en opslaan, en pakketten filteren en doorzoeken. Wireshark is vrijgegeven onder de GNU General Public License (GPL). Meer over de vaardigheid staat op de skillpagina voor Wireshark.

Volgens NIST is network sniffing een passieve techniek. Het bewaakt netwerkcommunicatie, decodeert protocollen en onderzoekt headers en payloads. Redenen om te sniffen zijn onder meer het herkennen van besturingssystemen, applicaties en services en het verzamelen van informatie zoals niet-versleutelde gebruikersnamen en wachtwoorden. NIST merkt op dat sniffing weinig impact heeft op systemen en netwerken, met als meest merkbare effect bandbreedte of rekenkracht.

Wireshark wordt ook buiten pentests gebruikt, bijvoorbeeld om te begrijpen waarom een verbinding mislukt of om te zien of verkeer versleuteld is. Je ziet alleen het verkeer dat langs jouw netwerkinterface komt. Dat geldt ook op je eigen netwerk of lab. Wie op andermans netwerk meekijkt zonder toestemming, loopt hetzelfde risico als bij scannen zonder toestemming.

Hoe werken de tools samen in een pentest?

Volgens NIST SP 800-115 verloopt een penetratietest als voorbeeld in vier fasen: planning, discovery, attack en reporting. NIST merkt op dat er meerdere acceptabele manieren zijn om de acties over die fasen te verdelen.

Een fictief voorbeeld: een webshop huurt een pentester in.

  1. Planning. De pentester en het bedrijf leggen vast welke adressen en welke dagen in de test vallen, wat niet mag (geen denial of service) en wie bereikbaar is. Het management keurt dit goed en dat wordt vastgelegd.
  2. Discovery. Met Nmap kijkt de pentester welke poorten en services bereikbaar zijn. Met Wireshark bekijkt hij wat er over het netwerk gaat, bijvoorbeeld of gevoelige gegevens onversleuteld worden verzonden.
  3. Attack. Met Burp onderzoekt de pentester hoe de webshop omgaat met ongewone invoer. Staat er bij een dienst een bekende kwetsbaarheid, dan kan een Metasploit-module laten zien dat misbruik echt mogelijk is, binnen de afgesproken grenzen.
  4. Reporting. De pentester beschrijft wat is gevonden, hoe het is aangetoond en wat de oplossing is.

Welke functies werken met deze tools?

Penetration testers en ethical hackers werken in opdracht met deze tools. Red team specialists gebruiken ze in bredere en langere oefeningen. Security engineers en SOC-analisten gebruiken Nmap en Wireshark soms in het dagelijks onderzoek, bijvoorbeeld om het verkeer achter een melding te bekijken.

Pentesten is onderdeel van cybersecurity. Op de werkgeverspagina voor penetration testers zie je welke werkgevers deze functie hebben. De route naar het beroep staat in hoe word je ethical hacker, en het beroep van penetration tester beschrijft de carrieregids. Voor certificeringen zie de artikelen over OSCP en CEH. Alle artikelen staan in de kennisbank.

Wat doet Nmap?

Nmap stelt vast welke hosts beschikbaar zijn, welke services ze aanbieden en welk besturingssysteem ze draaien. Voor elke poort meldt het een status: open, filtered, closed of unfiltered. Daarmee weet je wat er bereikbaar is. Of dat zo hoort te zijn, beoordeel je daarna zelf.

Wat is het verschil tussen Burp Suite Community en Professional?

De Community Edition bevat de handmatige tools waarmee je kunt beginnen. Enkele onderdelen, zoals het draaien van scans en Collaborator, zitten alleen in Professional.

Mag je deze tools op elk systeem gebruiken?

Nee, alleen op systemen waarvoor je toestemming hebt. Binnendringen zonder recht is strafbaar onder artikel 138ab, en voor een pentest leg je scope en toestemming vooraf vast. Ook de toestemming voor scanme.nmap.org geldt alleen voor scannen. Dit is geen juridisch advies, dus een jurist beantwoordt de vraag voor een concrete situatie.

Is Metasploit hetzelfde als een pentest?

Nee. Een pentest is een methode met fasen en afspraken vooraf. Metasploit is een raamwerk met modules die in de aanvalsfase van die methode passen, binnen de grenzen die vooraf zijn afgesproken.

Waarmee kun je veilig oefenen?

Oefen op je eigen systemen of een eigen lab, of op speciaal bedoelde oefenomgevingen. De host scanme.nmap.org mag je alleen scannen met Nmap, niet voor exploits of denial of service.