OSEP – Offensive Security Expert PenTester – Examen en Ervaringen
Hallo lief dagboek. Het is ondertussen ongeveer 6 maanden geleden dat ik voor het laatst iets in je heb opgeschreven. Hoewel de vaste lezer hier misschien niet veel van gemerkt heeft omdat ik periodiek slechts een pagina publiceer. Maar het is echt een tijd geleden dat ik voor het laatst een post gemaakt heb en dat heeft verschillende redenen. In-the-end is het natuurlijk altijd een kwestie van (priori)tijd. En de prioritijd lag de laatste tijd elders waardoor tijd om te schrijven ook tot een minimum beperkt was. Zo was ik de laatste tijd druk met werk, een verbouwing en nog diverse privé perikelen. Alsof dat allemaal niet genoeg was heb ik me de laatste maanden verdiept in de OSEP (Offensive Security Expert PenTester) course. Na het behalen van mijn OSCP vorig jaar was deze relatief nieuwe course voor mij een logisch vervolg. Het opstapje van “Professional” naar “Expert”. En hoewel ik minder probeer te schrijven en meer op video probeer vast te leggen weet ik zeker dat jullie “new skills learned” zeker hier gaan lezen en uiteraard nog meer gaan zien op video. Op deze pagina’s wil ik jullie mijn ervaringen vertellen met de OSEP course.
De officiële course pagina van OSEP is “https://www.offensive-security.com/pen300-osep/#course-info”. De nadruk van deze course ligt op “Evasion Techniques and Breaching Defenses: Advanced Pentesting Training”. In de praktijk betekend dit in essentie dat je al je OSCP skills nodig hebt en dat je leert om deze technieken toe te passen op volledig gepatchte systemen. Denk hier aan up-to-date Windows machines met up-to-date antivirus scanners en toegepaste security mechanismes. Je leert om security mechanismes te omzeilen en te kijken naar zaken waar zelfs een up-to-date systeem vulnerable voor is. De course aanduiding van Offensive Security is “PEN300”. OSCP staat bekend als “PEN200”. Courses van Offensive Security worden gerangschkt in 3 moeilijkheidsklassen waarbij 100 “het makkelijkste” is en “300” het moeilijkste. OSCP zat hier dus tussenin en OSEP wordt gewaardeerd op relatief moeilijk. Je OSCP certificering en wat ervaring is hier dan ook zeker mooi meegenomen want om zonder voorkennis aan de stof te beginnen is relatief moeilijk.
Dit gedeelte van de tekst schrijf ik voordat ik op 27 juli 2021 mijn examen heb gedaan. Het laatste stuk van dit artikel dat wat dieper ingaat op het examen schrijf ik daarna. Op dit moment kan ik dus alleen vertellen over de stof, opgedane kennis, voorbereiding en mijn ervaringen tot nu toe.
Net als bij OSCP kun je de cursus afnemen incl. 1,2 of 3 maanden lab-tijd. Ik heb gekozen voor 3 maanden omdat ik wist dat dit een hele drukke periode ging worden. Ik ben blij met die gemaakte keuze.Het boek zelf bestaat uit +/- 800 pagina’s waarin alle informatie wordt uitgelegd. Alle onderwerpen komen aan bod en wanneer je deze onderwerpen machtig bent kun je zeker het examen halen. Het punt is nog altijd de “ Try Harder” mentaliteit van Offensive Security. Het boek behandeld vaak de stof globaal en wilt dat de lezer deze onderwerpen op zijn eigen manier verder uitdiept. Op veel momenten miste ik een stukje context of achtergrondinformatie waardoor dat het verhaal (voor mij) soms niet meer duidelijk was. Natuurlijk ga je vervolgens zelf Googlen en research doen. Zo merkte ik dat kennis van de C# taal ontzettend waardevol is tijdens de cursus en dus heb ik er een C# cursus naast gedaan. Al met al zul je dus meer lezen dan slechts 800 pagina’s alvorens je de stof machtig bent.
Wat wel helpt in het boek zijn de opdrachten. En dat zijn er net als bij OSCP aardig wat. Alleen zijn deze opdrachten vaak wat uitgebreider van aard waardoor dat ze simpelweg meer tijd kosten. En dan zijn er nog de zogenaamde “extra mile” opdrachten. Deze opdrachten gebruiken de leerstof en vragen van de lezer deze toe te passen op een alternatieve / unieke manier. Vooral de “extra mile” opdrachten zorgen ervoor dat je research moet doen en dat je jezelf de stof nog beter “eigen” maakt. In eerste instantie heb ik me alleen op de “extra mile” opdrachten en de lesstof gefocust. Pas nu, een week voor mijn examen ben ik begonnen aan de “normale” opdrachten welke je eigenlijk vragen op de uitgelegde stof “na te doen”. En dat is natuurlijk relatief simpel omdat ik al door de labs geakkerd ben.
Ah ja… de labs. Daar moeten we het zeker even over hebben.
OSEP Labs
In totaal kent de OSEP course (nu) 6 labs. Dat klinkt als “weinig” maar dat valt best mee. Van mij hadden het er ook best 8 of 10 mogen zijn want man, man, man wat zijn ze leuk. Een lab is meer dan een machine bij OSCP. De OSCP course kent veel machines maar deze vormen slechts heel beperkt samen een bedrijfsnetwerk. Bij OSEP is elke lab een virtueel bedrijfsnetwerk waarbij je uiteindelijk de machines, variërend van 3 tot 8 per lab moet exploiten om uiteindelijk domain admin te zijn. En bij het allereerste lab liep ik meteen vast. Dat was frustrerend. Wat nog frustrerender was is dat de oplossing niet zo erg moeilijk was. En dat er ook erg lastig hulp te krijgen is. Zowel op het forum en op het Discord kanaal zijn er maar weinig participanten om cursisten in nood te helpen. Uiteindelijk is dit wel gelukt en heb ik op mijn beurt heel veel cursisten op weg geholpen. De labs zijn namelijk niet makkelijk. Gemiddeld ben je 1 tot 2 dagen per lab bezig wat ongeveer betekend dat je een 2 weken full-time totaal op de labs zult stoeien. Voor mij hadden er best meer labs mogen zijn. De labs komen overeen met de lesstof en elk lab leert je weer nieuwe dingen (en gebruikt kennis uit voorgaande labs). Na 6 labs had ik er nog best 4 willen doen. Ter compensatie heb ik de Cybernetics Pro-Lab van HackTheBox (https://app.hackthebox.eu/prolabs/overview/cybernetics) gebruikt als oefening. Deze sluit heel erg goed aan op de stof en is een zeer goede aanvullende oefening (zelfs moeilijker dan OSEP)! Maar wees gerust, de labs geven je namelijk voldoende kennis dat je zelfverzekerd kunt beginnen aan het examen en zijn wat mij betreft een absolute must.
OSEP Cursus
Helaas kan ik niet veel vertellen over de inhoud van de cursus of het examen. Door dit te doen zou mijn certificering ingetrokken kunnen worden. Maar wellicht kan ik globaal wel wat toelichten want ook in de syllabus staat wat openbare informatie. Het doel van de cursus is namelijk om je diverse technieken te leren waarmee je security mechanismes kunt omzeilen en hoe je op full-patched systemen te werk kunt gaan. Je leert dus malicious code zo te optimaliseren dat virusscanneer deze niet herkennen. Ook leer je andere security mechanismes omzeilen zoals AppLocker, Constrained Language Mode en AMSI. Daarnaast gaat de stof uitgebreid in op Active Directory aanvallen, MS SQL exploitation en het schrijven van macro’s, toepassen van domain fronting, KIOSK computer breakout etc. Je leert dus veel over verschillende topics en 95% van de stof is Windows-based. Je kunt merken dat deze course heel erg geschreven is op de praktijk. De overige 5% is Linux-based en geeft nieuwe / uitgebriede aanvalsvectoren dan de OSCP course. Denk aan nieuwe technieken t.b.v. SSH, VIM en applicaties zoals ANSIBLE. Na het eigen maken van de stof heb je heel erg veel munitie om in veel praktijksituaties security mechanismes en zwakheden te kunnen uitbuiten waardoor je uiteindelijk een gedegen pentest uit kunt voeren op netwerken en systemen.
Wanneer je door de “Try Harder” mentaliteit heen kijkt en deze omarmt dan zul je merken dat de leerstof in deze course je voldoende munitie geeft om een interessante en zinvolle pentest uit te kunnen voeren binnen de meeste kantoor omgevingen! Nu op naar het examen en kijken of ik voldoende voorbereid was…
2 weken later….
Het Examen
Zoals beloofd schrijf ik dit stuk nu ik mijn examen heb afgerond. Ik zal meteen met het heugelijke nieuws beginnen dat ik hiervoor geslaagd ben 🙂 Het OSEP examen is een pittig examen. In zijn totaal krijg je 72 uur voor het examen. 48 uur hiervan is praktijk en als je deze succesvol hebt afgerond dan heb je daarna nog 24 uur voor je rapportage. In deze periode moet je dus zelf je breaks en slaapmomenten inplannen. 48 uur aan een stuk doorgaan wordt niet aanbevolen omdat je op een gegeven moment moe wordt, je concentratie verliest en zeker niet meer scherp bent. Eigenlijk gelden qua tijdsindeling dezelfde tips die ik ook heb gegeven in mijn OSCP artikel (https://jarnobaselier.nl/oscp-certified-ervaring-cursus-en-examen/). Je moet deze tips alleen wat uurtjes langer aanhouden dan tijdens je OSCP. Eerlijk is eerlijk, ik vond de 48 uur beter te doen dan de 24 uur. Je kunt namelijk eventueel 24 uur zonder slaap en dus loop je met je OSCP examen te wikken en te wegen om wel-of-niet te gaan slapen. 48 uur zonder slaap is vele malen lastiger en dus ben je verplicht om een goed slaapmoment in te lassen. En zo gezegd… zo gedaan.
Ik begon het examen om 11:00 ’s ochtends. Ik had liever om 9:00 begonnen maar dat tijdstip was niet meer beschikbaar. Om half 1 ben ik gaan lunchen en had ik niet niets bereikt. Ik had wel een idee van de initial foothold… maar ik was er nog niet doorheen. Na de lunch ging dit een stuk beter. Relatief snel had ik door hoe ik ik werkelijk het “zakelijke” netwerk op kon komen. Helaas kan ik weinig kwijt over de inhoud van het netwerk. Maar het was een groter netwerk dan in de labs. En dat is ook te begrijpen aangezien er 2 wegen zijn om je einddoel te halen. Er is namelijk een server in het netwerk die je moet bereiken. Wanneer dit lukt en je de secret flag vindt dan heb je eigenlijk het praktische gedeelte van je examen erop zitten. En er gaan dus 2 wegen naar deze server toe. Het netwerk bevat ook componenten welke je niet aanraakt op pad 1 maar wel op pad 2 (en visa versa). Dus ondanks dat het een groot netwerk is wil dit niet zeggen dat je veel meer werkt hebt om het einddoel te behalen dan in de grotere labs.
Na de initial foothold ging het wat beter en rond de avond had ik het idee al de nodige stappen in het netwerk te zitten. Daarna stagneerde het weer een beetje en rond 2:30 in de nacht toch maar besloten om even wat slaap te pakken. En slaap blijkt inderdaad te helpen want in de ochtend zag ik dingen die ik ’s nachts absoluut over het hoofd gezien had. Dat hielp me om verder te komen. Kort na de lunch bereikte ik dan ook het einddoel. Al met al (zonder breaks) ongeveer binnen 15 tot 16 uur. Dat was snel. Maar ondanks dat ik de challenge voltooid had wilde ik graag ook het 2e alternatieve pad vinden en exploiten. Het probleem is… waar begint dit 2e pad? Betekend 2 paden dat je ook 2 verschillende footholds hebt en dus eigenlijk start op 2 verschillende machines? Of splitst het pad zich pas halverwege? Dat weet je niet. Na lange tijd een andere potentiële exploit gevonden om het tweede pad binnen te komen. Maar omdat mijn einddoel al behaald was vond ik dat ik om 1:00 ’s nachts wel een beter nacht kon pakken dan de nacht ervoor. Om 6:00 zat ik weet achter mijn computer. Ik had nog 5 uur. Helaas waren deze 5 uur onvoldoende om het volledige 2e pad te exploiten. Maar het begin was gemaakt. Niet volledig tevreden maar wel blij ben ik in de middag nog even gaan bij-slapen om ’s avonds fris en fruitig aan mijn rapportage te beginnen. Gelukkig hou ik hele nette en meteen bruikbare notities bij tijdens het werken en dus was ik binnen 4 uurtjes klaar met mijn 120-pagina tellende rapportage. Nadat ik deze ingediend had kon het 10 werkdagen duren alvorens ik de uitslag had. En hoewel je hoopt inderdaad geslaagd te zijn… weet je het pas zeker als je ook werkelijk de bevestiging gekregen hebt.
En deze kwam dan ook relatief snel. Binnen 24 uur kreeg ik onderstaande bericht… ik mag mezelf officieel OSEP noemen. YES!
Het examen is een “proctored examen”. Dit betekend dat je tijdens het examen gevolgd wordt. Net als bij de OSCP proctored examen. Een webcam is dus verplicht. Ook je beeldschermen worden in de gaten gehouden. Ik kende dit al van het OSCP examen en heb dit op geen enkel moment als storend ervaren. Je moet wel laten weten wanneer je een break neemt en hoe lang je ongeveer weg bent. Ook moet je laten weten wanneer je weer terug bent. Dit alles gebeurt via de chat en de mensen zijn allemaal ontzettend vriendelijk. Wat mij betreft is een “proctored” examen relaxter dan een on-site examen omdat je gewoon in je eigen vertrouwde omgeving zit.
Natuurlijk speelt de “examen druk” en het “lang achter elkaar doorgaan” wel een rol. Je gaat op een gegeven moment toch “te moeilijk” denken. En ook denk je gewoon soms niet aan dingen die je heel erg goed weet. Hieronder een aantal tips die mij erg goed geholpen hebben. Misschien heb jij er ook iets aan?
OSEP Tips
Wil je aan OSEP beginnen of sta je al voor het examen dan zijn dit een 8-tal “ gouden” tips die ik je graag wil meegeven.
1. Keep your cool
Het eerste en misschien wel belangrijkste punt voor dit examen is “hou je hoofd erbij en laat je niet gek maken”. Je hebt de lesstof geleerd, de labs gedaan en misschien ook wel alle oefeningen doorlopen. Jij kunt dit! Het examen geeft je echt meer dan voldoende tijd en er zijn meerdere “paden” die je kunt nemen. Als het niet lukt dan neem je een stapje terug en bekijk je het geheel even rustig. Je vindt dan vast een nieuwe methode of een alternatieve route om toch verder te komen. Ook is de moeilijkheidsgraad niet heel veel moeilijker dan de labs. Offensive Security zorgt dat je goed voorbereid bent!
2. Enumeratie is koning
Maar dat wist je natuurlijk al? Enumeratie is de basis van je pentest. Goede enumeratie laat je zien welke potentiële paden er zijn. En als het even niet lukt keer je terug naar enumeratie. Het kan zijn dat je simpelweg de resultaten uit vorige scan’s nogmaals moet nakijken om een ander patroon te ontdekken. Misschien moet je meerdere enumeraties met elkaar correleren om de juiste route te vinden. En in sommige gevallen moet je meer enumereren. Zorg ervoor dat je een specifieke methodologie ontwikkeld zodat je deze manier van enumereren iedere keer kunt toepassen wanneer je toegang krijgt tot een nieuwe machine. Als je de weg kwijt bent is enumeratie je licht in de duisternis. Vergeet niet dit lichtje te laten branden…
3. Hou je boek erbij
Je bent tijdens het examen vrij om het internet te gebruiken of om je boek erbij te houden. Alle informatie die je moet kennen staat in je boek. Misschien heel summier maar hij staat er zeker in. Het kan ook zijn dat je iets moet doen wat in een “extra mile” opdracht aan je gevraagd is. Dus zit je vast of wil het even niet lukken kijk dan nog eens in je boek wat er precies over geschreven is. Het antwoord is vast wel ergens te vinden…
4. Zorg dat je tools en resources op orde zijn
Goed gereedschap is het halve werk toch. Zorg dat je het examen dan ook met een volle gereedschapskist ingaat. Zorg dat je alle scripts uit het boek paraat en getest hebt. Weet hoe je deze scripts toe moet passen en weet hoe je ze moet aanpassen. Het paraat hebben van de juiste tools kan veel tijd schelen. Hetzelfde geld voor het paraat hebben van internetresources die je misschien nodig hebt. Een aantal interessante resources voor mij waren o.a.:
- https://2020.romhack.io/dl-2020/RH2020-slides-Cocomazzi.pdf
- https://www.blackhillsinfosec.com/wp-content/uploads/2020/12/SLIDES_MoveAsideScriptKiddies.pdf
- https://github.com/mvelazc0/defcon27_csharp_workshop
- https://github.com/purpl3f0xsecur1ty/useful_random_stuff
- https://github.com/nullg0re/Experienced-Pentester-OSEP
5. Neem die periodieke breaks en slaapmomenten
Nogmaals, het examen geeft je meer dan voldoende tijd om dit ter doen. Een periodieke break en op tijd slapen is belangrijk. Wanneer je te lang staart naar iets gaat het duizelen. Door die benodigde break kom je vaak wel op het antwoord dat je zoekt. Eet en drink normaal en bezoek tijdig het toilet. Door deze normale dingen gewoon te doen hou je op de focusmomenten ook de juiste focus.
6. C# blijft belangrijk
C# of C-Sharp is een belangrijk onderdeel. Je hoeft geen C# programmeur te zijn maar zorg dat je C# begrijpt, kunt lezen en kunt troubleshooten. Dit geeft rust omdat het niet-gericht troubleshooten veel tijd in beslag kan nemen tijdens het examen. Weet wanneer je een specifiek script moet gebruiken, hoe je deze moet compilen en aanroepen.
7. Ken je Active Directory en MS SQL technieken
Het boek leert de lezer vele Active Directory en MS SQL technieken. Weet waar je moet zoeken, welke technieken bij welke exploit horen en vooral hoe je Bloodhound leest. Aangezien de lesstof voor 95% Microsoft-based is kun je er vrijwel zeker van zijn dat je deze technieken eenmaal of vaker moet toepassen. Zorg dat je goed weet wat je doet.
8. Maak notities
Je kunt alleen terugpakken op opgedane kennis wanneer deze geborgd is. Maak tijdens je study goede notities, maak write-ups van je labs en maak tijdens je examen ook goede en complete notities. Zorg dat je terug kunt pakken op informatie die je al eerder verzameld had. Daarnaast zorgen de juiste notities ervoor dat je een gedegen examen rapportage kunt opleveren.
Is OSEP het waard?
Op deze vraag kan ik alleen maar volmondig beantwoorden met een “JA”. OSCP enthousiasmeert om meer te leren en beter te worden. OSEP geeft je kennis een boost en vervult dit enthousiasme. OSEP zorgt er echt voor dat je een betere pentester wordt. Na het volgen van de OSEP course ben je jezelf nog beter bewust van de omgeving en de mogelijkheden die er zijn ook al lijkt het dat je door veiligheidsmechanismes die in-place zijn vastloopt tijdens een pentest. OSEP geeft je de handvatten en tools om een realistische pentest uit te voeren. Absoluut een aanrader en wat mij betreft een van de mooiste courses momenteel beschikbaar in “security-land”.