Eerste hulp bij hacken. Zo kom je iemand anders’ computer binnen

Dimitri Tokmetzis
Correspondent Surveillance & Technologie
Illustratie: Rob van Barneveld (voor De Correspondent)

Als je andermans computer wilt binnenkomen, moet je een ingang zien te vinden. In de tweede les over hacken gaan we informatie vergaren, poorten scannen en fingerprints van besturingssystemen verzamelen.

Je wilt onopgemerkt een kantoor binnenkomen. De hoofdingang sla je dus maar over. Om het gebouw heen lopend, zoek je naar deuren en ramen die niet goed afgesloten zijn. Je morrelt wat aan klinken, in de hoop dat iemand slordig is geweest.

Daar staat iemand een sigaretje te roken. Een werknemer? Hopelijk laat die je binnen. Dan zie je daar wel hoe je andere dichte deuren kunt omzeilen, of je mensen moet bedotten, toegangspasjes afhandig dient te maken. Alles om tot de boardroom door te dringen, vanwaaruit je het bedrijf over kunt nemen.

Als je een computer wilt binnendringen, doe je eigenlijk hetzelfde. Je morrelt aan de poorten en probeert de software zo gek te krijgen je erin te laten. Als dat eenmaal gelukt is, probeer je steeds meer macht te verzamelen. Totdat je de machine geheel onder controle krijgt.

Op zoek naar kwetsbaarheden

Met een hackgroep van twintig Correspondentlezers is de eerste stap al gezet. De groep kreeg een simpele opdracht: vind op de redactie van De Correspondent mijn server. Zoek uit welke programma’s op die server staan. Als je dat weet, kun je namelijk op zoek naar kwetsbaarheden.

We gebruiken een besturingssysteem Kali Linux biedt mogelijkheden voor het scannen van andere computers, het vinden van kwetsbaarheden in software, het exploiteren van die kwetsbaarheden, het onderscheppen van netwerkverkeer en meer.

Vimeo plaatst cookies bij het bekijken van deze video Vimeo
In deze teaser van de zojuist uitgebrachte tweede versie van Kali Linux krijg je een idee wat het besturingssysteem zoal kan.

Stap 1. De server vinden

Op ons netwerk zijn soms tientallen computers aangesloten - laptops, smartphones, de printer. Onze router geeft ieder apparaat een intern IP-adres, vaak iets in de trant van 192.168.178.xxx, waarbij de x het unieke nummer is op ons netwerk.

Maar hoe vinden we het IP-adres van ons doelwit? Daarvoor heb ik op mijn smartphone die met één druk op de knop het hele netwerk scant, rapporteert welke apparaten hij tegenkomt en hoe die heten.

Een stel onverlaten verandert ondertussen het wachtwoord, dat ik blijkbaar niet goed beveiligd had

Kali Linux heeft ook een aantal programma’s dat we kunnen gebruiken. De belangrijkste is Nmap, een heel populair opensourceprogramma. Ik kom zo nog uitgebreid terug op wat dit wonderbaarlijke stuk software allemaal kan. Voor nu is het belangrijk dat we met een simpel commando het hele netwerk in kaart kunnen brengen:

nmap -sL 192.168.1.0/24 | grep "("

Waar die zin voor staat?

  • nmap: Start het programma Nmap.
  • -sL: Zoek de hostnames op het netwerk dat ik zo ga geven. Een hostname is de naam van een verbonden apparaat.
  • 192.168.1.0/24: zoek alle adressen op ons netwerk.
  • | grep "(": ik wil geen lijst met alle mogelijke IP-adressen (255 stuks) maar alleen van verbonden apparaten. Zoek daarom op zinnen waar een ( in staat. Niet de meest charmante oplossing, maar wel effectief.

De output laat een aantal apparaten zien. Voornamelijk pc’s en smartphones, maar ook de router (een stel onverlaten verandert ondertussen het wachtwoord, dat ik blijkbaar niet goed beveiligd had), de printer (en laten die meteen maar even wat prints met ‘hello correspondent’ uitbraken) en mijn server genaamd

We hebben ’m gevonden.

Stap 2. Zoek uit welke software op de server draait

Maar hoe?

Ook hier biedt Nmap uitkomst. Maar dan moet je eerst weten wat een poortscanner doet.

Met Nmap kun je die poorten stuk voor stuk afgaan. Dat werkt zo.

Ik test dit op mijn server.

Ik ga eerst op zoek naar het IP-adres van de server, dus:

nmap -sL 192.168.1.0/24

De server blijkt op 192.168.1.37 te zitten. Dan ga ik wat commando’s proberen, maar eigenlijk is het meteen al raak.

Ik schrijf:

  • nmap -sV -v 192.168.1.37 en zeg eigenlijk:
  • nmap: start nmap op.
  • -sV: als je een open poort vindt, zoek dan voor me uit wat voor software daarachter
  • -v: staat voor verbose, dus vertel me stap voor stap wat je aan het doen bent.
  • en dan het IP-adres.

Na 47 seconden krijg ik deze informatie terug:

De uitvoer van mijn commando in Nmap.

Wat zien we hier?

Nmap wordt gestart en gaat op zoek naar hosts en vindt een aantal open poorten. Tegen het einde zien we een overzichtje met PORT, STATE, SERVICE en VERSION. Dit zijn de poorten die openstaan. De service die erachter draait is vooral http (dus webverkeer), maar ook ssh (beveiligde toegang op afstand) en ssl/http (beveiligd webverkeer).

Ik zie ook een lijst met soorten software, zoals OpenSSH, versie 6.0p1. Mijn server is ook een webserver, gezien het gebruik van Apache. Er zit een torrentclient op poort 9091 en Webmin (ook beheer op afstand) op poort 10000.

Met deze informatie kan ik op zoek gaan in verschillende Ik vul dan bijvoorbeeld Apache 2.2.22 in en zie of er bepaalde zwakheden bekend zijn waar ik gebruik van kan maken.

Mijn server geeft al snel zijn geheimen prijs. Ik heb er geen goede op zitten (er staan alleen twee op). Een beetje systeembeheerder beschermt zijn servers wel wat beter.

Maar hoe kom je daar dan binnen?

Je kunt bijvoorbeeld kiezen wat voor soort poorten je scant, UDP of TCP.

Maar je kunt ook net doen alsof je vanaf een heel andere computer scant (IP-spoofing). Je kunt in plaats van een ‘SYN’-bericht (zie strip hierboven) een ‘ACK’-berichtje sturen, waardoor sommige firewalls denken dat de verbinding al is geaccepteerd. Je kunt ook heel specifiek op een poort scannen, bijvoorbeeld op poort 23 (telnet). Én je kunt complete scripts schrijven met wat er moet gebeuren als een bepaalde software wordt ontdekt. Nmap is zo krachtig dat het programma zelfs wordt gebruikt om het hele internet in

Voor de goede orde: het scannen van poorten en het achterhalen welke software er op een server draait, is maar een van de manieren om kwetsbaarheden te vinden. Je kunt ook de systeembeheerder bellen met een smoes, of een werknemer een sturen. Waarbij ik even wil opmerken dat je dit dus niet moet doen, want illegaal, onethisch, etc.

Nu we de structuur van ons lokale netwerk in kaart hebben gebracht en mijn server zijn binnengekomen, wordt het tijd om de software te kraken. Zitten er kwetsbaarheden in? Daarover meer in de volgende aflevering van deze reeks.

Illustraties door Met dank aan Bert van der Lingen en Stefan van der Wal voor hun nuttige adviezen.

Eerder in deze serie: