Leren “hacken”

Je hoort het vaak in het nieuws: er is weer een datalek bij groot bedrijf XYZ, en er liggen allerlei gegevens op straat, namen, e-mail adressen, passwords of zelfs creditcard nummers kunnen zomaar gestolen worden. Je vraagt je misschien af hoe dit kan en hoe dat nou werkt. Het gaat in feite om het “inbreken” op de computers / het netwerk van een bedrijf of instelling. In de volksmond ook wel “hacken” genoemd.

Let op: Het is belangrijk om te weten dat inbreken op andermans systemen illegaal is! Er staan hoge boetes en/of celstraffen op, doe dit dus nooit zonder dat degene die je aanvalt hier expliciet toestemming voor heeft gegeven! Zelfs dan is het nog een erg grijs gebied en is uiterste voorzichtigheid geboden. Bij twijfel: niet doen!

Hoe kun je leren hacken?

Als je ondanks bovenstaande waarschuwing toch eens wat meer wilt weten over hacken en hoe je dat doet, zijn er gelukkig plekken waar je kunt oefenen en leren, onder andere bij DJO!

Om goed te kunnen hacken moet je eerst van een aantal zaken goed weten hoe ze werken. Hier een lijstje van essentiële zaken die je zult moeten leren:

  • TCP/IP en DNS: De basis van het internet. O.a. wat is een IP adres, hoe vinden computers op internet elkaar, wat is een poort en hoe je verbinding maakt met andere systemen. Dit youtube fimpje is een goed begin.
  • Het HTTP/HTTPS protocol: Dit is het protocol dat wordt gebruikt tussen je browser en een website, om alle pagina’s, script, etc. te laden. Een systeem is soms via een niet goed beveiligde website binnen te dringen, maar dan moet je wel weten hoe het protocol werkt. Wil je er alles over weten: kijk dan deze video op youtube
  • HTML en JavaScript en PHP: Om websites goed te kunnen begrijpen, heb je deze kennis nodig, zodat je weet waar je kunt zoeken naar zwakheden. JavaScript en PHP zijn zeer veel gebruikte talen op het web en essentieel om in elk geval te kunnen lezen als je goed wilt kunnen hacken.
  • SSH, Secure Shell: Dit protocol is essentieel om te kennen. Hiermee kun je namelijk inloggen op een ander (linux / unix) systeem over het internet en een ‘shell’ openen om commando’s te sturen. Het hacken van een systeem is vaak geslaagd als je toegang tot een shell kunt krijgen als de ‘root’ gebruiker: je kunt dan alles met dat systeem doen wat je wilt. Ook hier een filmpje!
  • Bash / Linux command line: Je zult bij het hacken gebruik maken van een heleboel tools die vaak alleen op linux beschikbaar zijn. Enige ervaring met linux en de commandline is dan ook wel handig. Ook als je eenmaal op een systeem binnen bent, zul je op een shell belanden waar je dan wel moet weten wat je er mee kunt.. Filmpjes!

    Voor het opdoen van ervaring met linux commando’s door middel van het spelen van een online spel, kun je ook eens naar https://overthewire.org/wargames/ kijken. Voor heel veel gedetailleerde informatie over “hacken” is het Youtube kanaal van “LiveOverflow” heel interessant om te bekijken.

Voorbereiden

Om je voor te bereiden op een hack, heb je eerst een set aan tools nodig. Gelukkig is er een Linux distributie waarin heel veel van deze tools standaard aanwezig zijn, genaamd Kali Linux. Je kunt het gratis downloaden en installeren op je laptop/pc. Dat is gelijk een goede oefening van je Linux skills 🙂 Zie ook het artikel over Linux Installeren.

Nadat je Kali hebt geïnstalleerd, kun je door naar stap 2: toegang krijgen tot een omgeving waarin je ‘legaal’ mag hacken.

Hack The Box

Om je hack-skills te gaan ontwikkelen is er gelukkig een plek waar je dit naar hartenlust kunt doen, zonder dat je bang hoeft zijn dat de FBI voor je deur staat. Er is een website genaamd ‘hackthebox.eu‘, waar je een VPN kunt starten naar een Lab-omgeving met daarin allemaal hackbare servers. Deze zijn speciaal bedoeld om te hacken en van te leren en ze kunnen dus ook allemaal gegarandeerd gehacked worden.

Om toegang te krijgen tot deze site en de VPN, zul je je eerste hack moeten uitvoeren… Ga naar de volgende link:
https://www.hackthebox.eu/invite
Zoals je ziet moet je een ‘invite code’ zien te achterhalen. Deze moet je echter zien te ‘hacken’. Veel succes! Kom je er niet uit, vraag het mij (Ronald) dan even tijdens DJO.

VPN

Als je toegang hebt, kun je als je wilt je account naam even doorgeven, dan voeg ik je toe aan het DJO Amersfoort team. Daarna moet je in het menu aan de linkerkant onder ‘access’ je account omschakelen naar de ‘EU Free’ regio. Je kunt dan op diezelfde pagina je ‘connection pack’ downloaden. Dit is een OpenVPN configuratie bestand waarmee je een VPN verbinding naar de LAB omgeving kunt maken. Installeer dus openvpn, en tik ‘openvpn <bestandsnaam>’ in om verbinding te maken.

De pagina met je VPN profiel

Aan de slag!

Nu je verbinding hebt kun je aan de slag! Aan de linkerkant in het menu vind je de optie ‘Machines’ en daaronder ‘All’. Je ziet nu een lijst met machines. Op het moment van schrijven ziet deze er zo uit:

De machines

Zoals je ziet is er een kolom ‘difficulty’: hier kun je aan zien hoe moeilijk een machine te hacken is. Als je net begint, raad ik je aan om er een te kiezen die als ‘zeer makkelijk’ wordt gezien.

Hoe werkt het?

De bedoeling is dat je het IP adres van een machine kiest, en probeert op deze machine een ‘user’ en ‘root’ shell te krijgen. Vaak moet je hiervoor een web-applicatie hacken, sql injection toepassen of een zwakte (CVE) in een tool of server uitbuiten, of een combinatie hiervan. Je zult hiervoor diverse tools nodig hebben. Hieronder een lijstje met tools en wat ze doen, zodat je een goede start kunt maken.

  • Nmap: Met nmap kun je een portscan doen, om te zien welke poorten open zijn en waar je dus je aanval kunt starten.
  • curl: Een command-line http/https tool, waarmee je elk gewenst HTTP request kun sturen. Essentieel om te kennen / hebben.
  • dirb/dirbuster: Hiermee kun je een ‘brute-force’ lijst van directories en/of files achterhalen, vaak om verborgen portals en sites te ontdekken.
  • Metaspolit: Een exploit framework waarmee je exploits voor bekende security issues kunt vinden en uitvoeren.
  • Hydra: Te gebruiken voor het brute-force aanvallen van authenticatie portals (http basic authenticatie) of form-based logins. Kali heeft veel meegeleverde password lijsten in /usr/share/wordlists/*
  • sqlmap: Een zeer krachtige tool om SQL injections mee uit te voeren en een shell / payload injection mee uit te voeren.
  • Nikto2: een website scanner waarmee je snel ‘verdachte’ zaken op een website kunt vinden
  • OWASP Zap: Een tool die je in je browser kunt gebruiken om zwaktes in een website snel te vinden.

Als het je lukt om een shell te krijgen, staat er in de home-directory van de gebruiker een ‘token.txt’, met daarin een ‘hash’. Als je deze hash op de hackthebox website achter de machine invult, krijg je hiervoor punten en wordt je ‘status’ verhoogd. Je begint als ‘noob’ en kunt als ‘expert hacker’ eindigen. Hoe meer je hackt, hoe meer punten je krijgt.

Let op: machines bestaan niet oneindig lang! Na een maand of 2/3 verdwijnen ze naar de ‘retired’ lijst en komen er weer nieuwe machines voor in de plaats. Je raakt dan je punten die je voor deze machine had, kwijt. Je status blijft echter wel hetzelfde. Zo is er altijd een nieuwe uitdaging beschikbaar!

Veel hackplezier! Mocht je hulp willen, of een keer samen een machine proberen te hacken, aarzel en vraag het!