Geschreven door: Bert Alting

Een must voor een succesvolle pentest

———–

Waar gaat deze blog over?

We behandelen in deze blog waarom OSCP belangrijk is in de security sector, welke voordelen het heeft voor een werknemer en werkgever en tips over het aanvliegen van deze cursus en het examen. Onze ethische hacker Bert Alting, die dit jaar zijn OSCP succesvol heeft afgerond, neemt u mee in zijn verhaal hoe hij deze cursus heeft beleefd en dat het nooit te laat is om van je hobby je werk te maken.

Even voorstellen

Mijn naam is Bert Alting, 39 jaar, sinds dit jaar in dienst bij Networking4all als ethical hacker / pentester en mijn grootste hobby is het hacken van heel veel eentjes en nulletjes. 

De jaren voor deze functie was ik actief in het uitzendwezen als senior accountmanager waarbij ik op de achtergrond in privésfeer, al vanaf mijn zesde jaar, continu met security/hacking aan de slag was.

Al die jaren bleef het mij inspireren hoe je met een combinatie van een aantal regels code een systeem kon binnendringen en daarnaast verbaast hoeveel schade je kunt aanrichten. 

Denk hierbij aan financiële en imagoschade.

Deze inspiratie is er nog steeds en zal naar mijn weten nooit verdwijnen. 

Pas vanaf januari 2019, op 38-jarige leeftijd, heb ik de keuze gemaakt om van mijn hobby mijn werk te maken. Een omscholing? Op die leeftijd nog? Jazeker!

Aan het begin van deze periode heb ik vele werkcoaches gesproken met één doel: “Ik wil graag systemen hacken en mensen helpen om deze gaten te dichten, kortom mijn hobby omzetten naar werk. Wat kunnen jullie voor mij doen?”

Vervolgens heb ik een succesvol traject van verschillende opleidingen en cursussen gevolgd met als eindpunt de CEH cursus, CEH staat voor ‘Certified Ethical Hacker’. In eerste instantie dacht ik met een CEH-certificaat op zak te hebben, een baan te vinden als ethical hacker. Al snel werd ik geadviseerd door een docent om het OSCP-certificaat te halen. Met dit certificaat kun je aantonen dat je daadwerkelijk systemen kunt hacken, met andere woorden: Een praktische cursus / examen. CEH is daarentegen meer gericht op methodieken en veelal theoretisch. 

Voor wie?

Dit certificaat is bedoeld voor mensen die een baan zoeken of reeds een baan hebben als ethical hacker om een pentest goed uit te voeren. Steeds meer bedrijven, maar ook opdrachtgevers, vragen om dit certificaat voor het uitvoeren van een pentest. Waar eerder CEH als standaard eis werd benoemd, zie ik toch een verschuiving richting het OSCP-certificaat als standaard. Ik zou OSCP niet aanraden als je geen basiskennis hebt van Linux, Windows, Python, Bash, PHP. Daarnaast moet je in het bezit zijn van een beste bak doorzettingsvermogen en om kunnen gaan met teleurstellingen, veel teleurstellingen. Tijdens de cursus kun je tegen dingen aanlopen waarbij je bijvoorbeeld een machine pas na een week hebt gehackt.

De zin “Try harder” van Offensive Security zul je dan vaak tegenkomen, daarover later meer…

Wat ga ik leren?

Bij deze cursus leer je echt hacken! Er zijn verschillende onderdelen waar aandacht aan wordt besteed. Hier een kleine greep uit vele onderwerpen die behandeld worden.Bash scripting

Pentest (Overview)
Passive / Active information gathering
Vulnerability scanning
Web application attacks
Buffer overflows (Windows / Linux)
Client-side attacks
Fixing exploits
Antivirus Evasions
Privilege escalation
Password attacks
XSS & SQL injections
En nog veel meer…

Door middel van het lab omgeving kun je al deze oefeningen in de praktijk brengen. 

Voorbereiding

Voordat ik ben begonnen met deze cursus, heb ik mij aangemeld bij HackTheBox. Dit is een platform waarin je systemen mag gaan hacken en praktische ervaring op kan doen. Dit heeft mij persoonlijk ontzettend geholpen om goed voorbereid te zijn op het OSCP avontuur.

Er is een lijst te vinden met HackTheBox systemen, die erg veel lijken op de OSCP systemen.

Ik adviseer om eerst deze systemen te gaan hacken op HackTheBox, voordat je gaat beginnen met de OSCP cursus. Deze lijst wordt periodiek bijgewerkt en is online te vinden. 

.

Zodra je bent aangemeld voor de OSCP cursus, ontvang je op de startdatum een mail met daarin alle benodigde materialen. Een video-course van 17 uur, PDF-naslagwerk van 850 pagina’s, VPN-verbinding met toegang tot de labs, toegang tot het forum en een voucher om je examen aan te vragen.

De cursus is aan te vragen met verschillende lengtes wat betreft labtijd (labtime)

30 dagen
60 dagen
90 dagen

De dagen tellen door, ook zodra je geen gebruik maakt van de labs. Er is een mogelijkheid om extra tijd te kopen. 

Vandaar dat ik adviseer om eerst te beginnen met HackTheBox, met daaropvolgend de OSCP cursus.

Ik ben begonnen bij de video-courses, deze video’s dekken namelijk het stof wat grotendeels in de PDF-naslagwerk te vinden is. Tijdens het bekijken van deze video’s, ben ik on-the-fly gaan notuleren in Cherrytree.CherryTree is een soort kladblok/notitieboek waarin je al je bevindingen kunt rapporteren. Alle modules, scripts, tools en methodieken kunnen later flink van pas komen in het examen. Dan is het handig als je dat snel terug kunt vinden in de notities.

Na het bekijken van de video-courses, ben ik begonnen met het hacken van systemen in het lab.

Lab access

Zodra een verbinding is gemaakt met de VPN van Offensive Security, krijg je toegang tot circa 70 systemen die elk unieke kwetsbaarheden hebben.

Deze systemen beginnen vanzelfsprekend met “makkelijke” kwetsbaarheden en des te hoger je zult gaan werken in de IP-range, des te moeilijker sommige systemen worden. 

Je leert hiermee alle facetten wat met hacken te maken hebben:

Verkennen (Reconnaissance)
Scannen (Scanning)
Toegang verkrijgen (Gaining access)
Toegang behouden (Maintaining access)
Sporen wissen (Clearing tracks)
Rapportage 

Tijdens het doorlopen van de hele IP-range kwam ik erachter dat gekraakte wachtwoorden op een ander systeem gebruikt kon worden. Ga gelijk bij het eerste systeem zoveel mogelijk wachtwoorden verzamelen, deze heb je misschien nodig op andere systemen.

Mocht je vastlopen en niet verder kunnen komen met een systeem, kun je het forum raadplegen.

In het forum staan geen oplossingen of write-ups hoe je een systeem kunt aanpakken, je ziet echter en alleen maar hele kleine hint. Je staat er wat dat betreft alleen voor.

Voor deze machines heb ik geprobeerd om Metasploit niet te gebruiken. Metasploit mag namelijk beperkt worden gebruikt tijdens het examen. Metasploit is een tool in die het uitvoeren van exploits heel simpel tot bijna automatisch kan maken.

Tip: maak voor jezelf, tijdens het hacken van deze systemen gelijk notities, screenshots en write-ups. Deze komen van pas voor je lab-report waar ik het verderop over ga hebben.

Inplannen en voorbereiding examen

Het examen heb ik 2 weken na het einde van mijn cursus ingepland. Als advies zou ik daar niet te lang mee wachten, de materie zit namelijk nog vers in je geheugen.

Het examen duurt een slopende 48 uur. 24 Uur voor het hacken van een 5 systemen en 24 uur om een uitgebreid en technisch rapport te schrijven. Het examen had ik om 9 uur in de ochtend ingepland, zodat ik de uren efficiënt kon gebruiken. Achteraf had ik het liever om 8 uur in de morgen ingepland. Zorg dat je goed hebt geslapen, ontbijt goed en plan je pauzes slim in, bijvoorbeeld tijdens een scan die loopt. Zorg er tijdens je examen ook voor dat je geen last hebt van omgevingsgeluiden of medebewoners. Dit bevorderd de concentratie.

Examen

Eindelijk, 2 weken gewacht en vandaag is het dan zover.

Hiervoor had ik geadviseerd om goed te slapen, maar door gezonde spanning is daar niet veel van gekomen. Piekeren over; ‘Ben ik iets vergeten’, ‘Ben ik wel goed voorbereid?’, ‘Wat voor systemen zullen het zijn?’. Dat soort dingen ga je toch aan denken. 

Na een goed ontbijt nog een sterk kop koffie gezet en daarmee gaan zitten voor mijn computer.

15 minuten voor aanvang van het examen worden instructies verstuurd met daarin een nieuwe VPN-verbinding, waarmee je toegang krijgt tot de systemen die gehackt moeten worden.

Het examen is “proctored”, dat betekent dat een examinator of docent continu met je meekijkt door middel van je scherm te delen met hem of haar. Dit is inclusief jouw webcam zonder audio. 

Elke actie die je uitvoert op je systeem zal namelijk gemonitord worden. 

Na het tonen van mijn paspoort en het testen van diverse systemen, is mijn examen officieel om 9:15 uur begonnen.

Er is een chatbox beschikbaar om te communiceren met de docent. De chatbox kun je gebruiken om bijvoorbeeld aan te geven dat je naar het toilet moet of dat je een langere pauze wil gaan nemen. Je mag je computer dan ook niet verlaten zonder toestemming van de docent. Na een akkoord mag je je pauze nemen. Je mag zo vaak en zo lang pauze nemen als je wil.

Tijdens de pauze is het verboden om je computer aan te raken om toch nog even iets te doen op je systeem of voor je examen. De kans is zeer groot dat je hierdoor niet slaagt. Helaas heb ik mensen om mij heen zien falen voor dit examen, doordat men toch nog even tussendoor doet met de computer tijdens een pauze. De regels worden strikt nageleefd en ze zijn keihard.

De regels kun je hier alvast nalezen: https://help.offensive-security.com/hc/en-us/articles/360040165632-OSCP-Exam-Guide

Na een pauze geef je de docent een seintje dat je het examen weer wil hervatten, na akkoord mag je weer verder, eerder absoluut niet.

Een kleine opsomming wat strikt verboden is tijdens het examen:

Langdurige telefoongesprekken;
Niet “zomaar” pauze nemen zonder akkoord;
Tijdens pauze niet werken aan je examen. (bepaalde scripts en poortscans mogen best blijven draaien)
Chatprogramma’s op je computer om hulp te vragen; (Denk aan Discord, WhatsApp, e.d.)
Het examen afleggen in een drukke omgeving;
Vulnerability scanners (Nessus, OpenVAS, Canvas, Core Impact, Saint etc);
Automatische exploitation tools (SQLmap, SQLninja, db_autopwn, browser_autopwn);
Metasploit PRO en Burpsuite PRO;
Spoofing (IP, ARP, DNS, NBNS, etc.);

Mag ik een telefoon gebruiken? Ja dat mag maar maak er geen potje van. Krijg je bijvoorbeeld een bericht of telefoon, mag je deze gerust opnemen.

Ik krijg vaak de vraag: “Hoe het precies zit met Metasploit tijdens het examen?”

De regels hiervoor zijn dat je Auxiliary, Exploit of Post modules van Metasploit op 1 van de 5 systemen mag gaan gebruiken. Zelfs als het niet is gelukt om het systeem te hacken met 1 van deze modules, is het niet toegestaan dat je het nog een keer probeert op een ander systeem.

Multi handler, msfvenom, pattern_create.rb en pattern_offset mogen daarentegen wel ongelimiteerd en op meerdere systemen worden gebruikt.

Het eerste deel (24 uur) van het examen is dat je zoveel mogelijk systemen gaat hacken. In de systemen staan zogenaamde vlaggen (flags), local.txt en proof.txt. Local.txt wordt gebruikt zodra je als gebruiker binnen bent gekomen en proof.txt zodra je als root of administrator de controle over het systeem weet te bemachtigen.

De inhoud van deze tekst bestanden moet worden ingevoerd in een examen dashboard. Hiermee bevestig je dat je een systeem hebt gehackt.

Elk systeem heeft een eigen puntentelling:

1x Buffer overflow (25 pnt)
1x Easy box (10 pnt)
2x Medium box (20 pnt)
1x Hard box (25 pnt)

Mijn strategie was om te beginnen met de buffer overflow en vanaf daar verder te gaan met de 10, 20, 20 en 25.

Tussenstand 0 punten (9:15)

De meeste mensen schrikken van een buffer overflow, terwijl dat eigenlijk niet nodig is. Het zijn een paar logische stappen die in het lesmateriaal helder worden verteld en uitgelegd. Hou je aan deze stappen en je kunt de eerste 25 punten binnen 30-40 minuten halen.

Wat mij enorm heeft geholpen, zijn de video’s van CyberMentor. Deze stappen zijn namelijk exact dezelfde, die je tijdens het examen ook moet volgen.

CyberMentor Buffer Overflow: https://www.youtube.com/watch?v=qSnPayW6F7U

Tussenstand 25 punten (9:45)

Verder met het 10 punten systeem, dit systeem is vrij makkelijk te hacken. Zelfs voor beginnende hackers.

Bij het scannen is het vooral goed kijken naar versienummers van bepaalde services, waarna online genoeg informatie te vinden is en een exploit te gebruiken die bruikbaar is voor dit systeem.

Bij het verkrijgen van een shell op dit systeem heb je vrijwel direct root of administrator rechten, waarna ik een proof.txt heb weten te bemachtigen. Yes, weer 10 punten erbij.

Tussenstand 35 punten (10:30)

Verder met het 20 punten systeem, deze werd al iets pittiger. Helaas kan ik niet vertellen welke kwetsbaarheid ik hier heb gevonden, maar na enumeration en scanning is er toch een lekje gevonden waarbij ik na een 1,5 uur als user een shell wist te bemachtigen. Local.txt bestand ingeleverd en door om als administrator rechten te krijgen. Privilege escalation speelt hierbij een grote rol. Diverse technieken worden hiervoor gebruikt en vrij snel na een uur was ik binnen. Yes, 20 punten erbij.

Tijd voor een pauze van 30 minuten.

Tussenstand 55 punten (13:30)

“Dit gaat lekker en als het zo doorgaat ben ik zo klaar!”………..dacht ik.

Volgende systeem: medium 20 punten.

User had ik na 2,5 uurtjes zoeken en verschillende dingen te hebben geprobeerd. Mooi zo, nu snel verder met adminrechten, dan heb ik mijn benodigde punten binnen.

Vanaf dit punt ben ik volledig de mist ingegaan. Tijdens het scannen van dit systeem kwam ik op een bepaalde service uit met een versie die kwetsbaar was. Hiervoor moest ik een exploit in C code gaan compilen. Na een aantal uren geprobeerd te hebben om een shell te krijgen lukte het mij maar niet. Iedereen die ervaring heeft met het hacken van systemen of met HackTheBox kent de term: rabbithole. Rabbithole wordt gebruikt als je uit jezelf zeker weet dat wat je hebt gevonden, zeker moet werken maar het uiteindelijk toch niet is wat het moet zijn. Ik zat uren vast in een rabbithole en dat heeft mij ontzettend veel tijd gekost. Het was inmiddels 21:00 uur en nog steeds zat ik vast op die ene kwetsbaarheid waarvan ik zeker wist dat het zou moeten werken. Het zou me toch niet gebeuren dat ik op dit punt vastloop en niet zal slagen?

Op verschillende forums wordt verteld dat de punten worden gehalveerd zodra je alleen user hebt en geen administration-rechten, Bij dit systeem zou het dan uitkomen op 10 punten. 

Dit heb ik nagevraagd bij de proctor en per mail aan Offensive security, de punten worden NIET gehalveerd. Inmiddels was het 23:00 uur en de frustraties liepen vrij hoog op. 

Op een gegeven moment heb ik een wat langere pauze genomen, alles op een rij gezet waarom dit systeem niet wou lukken. Wat heb ik gemist? Wat doe ik fout?

Vervolgens de applicatie laten liggen, waarvan ik dacht dat hij kwetsbaar was en helemaal opnieuw begonnen met handmatige checks van het systeem. Achteraf bleek het een heel andere kwetsbaarheid te zijn dan waar ik in eerste instantie zo overtuigd van was. 

Eindelijk was ik binnen. 1:00 uur en 75 punten!

Nu werd bij mij duidelijk wat Offensive Security bedoelde met: Try Harder. Na uren vast te hebben gezeten bij een kwetsbaarheid, heb ik 2 stappen terug gedaan, alles op een rij gezet en het weer geprobeerd. Kortom: Try harder!

Tussenstand 75 punten (1:00)

1 systeem van 25 punten was er nog te gaan. 

Het was inmiddels vrij laat aan het worden. Je wordt moe, maar daarentegen wel voldaan en opgelucht dat het is gelukt. Ik had inmiddels 75 punten waar ik genoeg aan had. Daarnaast had ik het lab-report ook gemaakt, waar je 5 punten extra voor kan krijgen.

Daardoor besloot ik om de docent te vertellen dat het examen afgesloten kan worden zodat ik morgen uitgerust aan het rapport kan gaan werken, want we zijn er namelijk nog lang niet.

Rapporteren

Het rapporteren weegt net zo zwaar mee voor het examen als de systemen die gehackt moeten worden.

Deze cursus hamert niet alleen op om systemen te hacken maar ook om goed te kunnen rapporteren en adviezen te kunnen geven. Begrijpelijk voor een functie als ethisch hacker op een pentest uit te voeren.

Persoonlijk ken ik mensen die alle systemen hebben gehackt maar alsnog zijn gezakt omdat het rapport niet deugde. 

Offensive Security heeft op haar website een report-template beschikbaar gesteld. Deze template mag ook gebruikt worden voor het examen.

Na een goede nachtrust begon ik met de rapportage. Ik heb alle notities en screenshots verzameld en hiervan een degelijk rapport geschreven.

Het rapport heb ik zo opgesteld dat elke stap, elke screenshot en elke commando werd omschreven.

Bronnen van eventuele exploits moeten ook worden vermeld. Scripts die je hebt gebruikt, moeten alleen in het rapport worden vermeld zodra je het hebt aangepast. Ze willen het liefst graag zien met arceringen wat je hebt veranderd. 

Scripts die niet zijn bewerkt, van bijvoorbeeld GitHub, is een link naar de exploit al voldoende.

In het rapport zullen alle bemachtigde flags (local.txt / proof.txt) ook getoond moeten worden. Tot slot, bij elk systeem een screenshot met het IP-adres, welke rechten je hebt (whoami), hostname en proof.txt

5 extra punten

Je kunt 5 extra punten halen door een lab-report te maken. Dit rapport stuur je samen op met het exam-report. De lab-report mag voor het examen al gemaakt worden. In dit rapport mag je zelf 10 systemen uit het lab omgeving kiezen en hiervan een rapport gaan schrijven.

Dit is zeker een aanrader omdat je dan een feeling krijgt hoe je tijdens het examen moet gaan rapporteren. De systemen moeten uniek zijn en kwetsbaarheden moeten variëren. Zodra 10 systemen zijn gerapporteerd, vraagt Offensive Security om alle opdrachten (exercises) uit het PDF-naslagwerk te gaan doen en eveneens te gaan rapporten in hetzelfde lab-report. Dit vraagt veel tijd, maar je steekt er zeker veel van op. 

Kortom: Het hoeft niet, maar ik zou het absoluut adviseren om te gaan doen.

Klein dingetje nog, het rapport moet volledig in het Engels worden geschreven. Technisch Engels welteverstaan. Het zal verstandig zijn om, vooral, een grammaticale check te gaan uitvoeren op de rapporten. Hier zijn verschillende gratis tools voor te downloaden.

Afronden en wachten maar

Na ongeveer 6 uur rapporteren en alles 4 keer te hebben gecontroleerd, kunnen de rapporten (lab / exam) worden verstuurd. Offensive Security wil graag alle bestanden in een .7z file gestopt hebben met als wachtwoord jouw studentennummer (OSID-nr). 

Je krijgt keurig een mail terug dat alle documenten in goede orde zijn ontvangen met de mededeling dat je binnen 10 werkdagen uitslag kan krijgen.

Deze 10 dagen duren dan vanzelfsprekend ontzettend lang.

Eindelijk op 26 februari een mail ontvangen met daarin het verlossende antwoord: Geslaagd!!

Uiteraard ontzettend blij en trots. Het fysieke certificaat heeft even op zich moeten laten wachten in verband met corona, maar in augustus ontving ik post van Offensive Security met daarin het certificaat vermeldt met de mooie tekst: ‘I tried harder, congratulations!’

Het was een heel avontuur om deze cursus te mogen doen. Ik heb het afgelegd in 30 dagen waarbij ik elke dag ongeveer 10 tot 14 uur heb besteed aan deze cursus.

Voor iedereen die nog geen OSCP heeft gehaald en als ethical hacker aan slag wil gaan of al aan de slag is als ethisch hacker, zou ik deze cursus absoluut aanraden. Met dit certificaat laat je echt zien wat je in huis hebt. Voor de werkgever zijn er ook voordelen, hij of zij kan laten zien dat personeel gecertificeerd is. De kans is groter om opdrachten te krijgen waarbij klanten steeds meer vragen om dit certificaat.

Het is een monster van een examen, maar zeker niet onverslaanbaar. Try harder!

Volgende uitdaging? OSWE Offensive Security Web Expert. Wordt vervolgd…

Links:

https://www.hackthebox.eu

https://www.offensive-security.com/pwk-oscp/

Photo by Milo Bauman on Unsplash


Deel artikel via: