ID.nl logo
Leren hacken met CTF challenges / Capture the flag
© Reshift Digital
Huis

Leren hacken met CTF challenges / Capture the flag

Hacken kun je leren, maar dit lukt alleen door veel proberen en experimenteren. Door hacken op de juiste manier, bij de juiste organisaties en in een veilige omgeving, help je mee om cybercrime tegen te gaan en mogelijk zelfs op te lossen, zonder de wet te overtreden. Eén van die manieren is een capture the flag-hackcompetitie. Lees hier meer overCTF challenges.

Security CTF’s oftewel capture the flag-competities hebben in deze context niks te maken met schietspelletjes op de computer of met het veroveren van de vlag bij het paintballen. Het zijn uitdagende opdrachten, ook wel challenges genoemd, waarbij je nieuwe hackingtechnieken kunt leren.

Vaak vinden CTF’s plaats tijdens een van de vele securityconferenties over de hele wereld. Al in 1996 werd er een CTF georganiseerd tijdens Def Con, een grote en bekende cyberbeveiligingconferentie die jaarlijks wordt gehouden in Las Vegas. Naarmate het internet groeide, groeide ook de CTF-competities en kon ook het internet gebruikt worden om waar dan ook ter wereld mee te doen. Tegenwoordig zijn CTF’s voor iedereen en overal bereikbaar en kun je online direct deelnemen.

In dit artikel leggen we je uit welke challenges er zijn en hoe je zelf CTF’s kunt vinden om te spelen, zowel online als offline.

Deelnemen aan een CTF

De meeste deelnemers aan CTF’s zijn hackers of hebben ervaring met hacken. Maar er komen ook veel studenten die een IT-opleiding volgen, al dan niet in de richting van security. Uiteraard is er ook niks mis mee om als volledige nieuweling mee te doen aan CTF’s, er is altijd wel iemand die je wil helpen of waar je bij kunt aanschuiven om mee te kijken en wat van kunt leren.

Uiteindelijk leer je wel het meest door het zelf te doen en proberen. Maar in het begin is het erg lastig, je weet niks en het lukt je maar niet om de challenges op te lossen. Maar aan het einde van elke CTF worden er write-ups gemaakt door de deelnemers, een volledige beschrijving van hoe anderen een challenge hebben weten op te lossen. Vaak voorzien van de gebruikte exploitcode, korte video’s of een complete stap-voor-stap YouTube-video. Deze zijn heel leerzaam en het beste kun je in het begin veel van deze beschrijvingen lezen en video’s bekijken om het zelf proberen na te doen, zodat je begrijpt hoe het moet en hoe het kan, en je daarna zelf mee aan de slag kunt.

Vaak zijn er aan de online CTF’s ook forums en IRC-kanalen verbonden. Hier worden de verschillende challenges besproken, maar altijd zonder dat er echt een hint of antwoord wordt prijsgegeven. Vragen naar flags, oplossingen of hints is niet netjes en vaak zelfs niet toegestaan. Zeker niet wanneer het voor anderen ook te lezen is.

Benodigdheden

Om mee te kunnen doen aan de online CTF’s, moet je weten waar ze te vinden zijn, vaak moet je een account aanmaken om in te kunnen loggen zodat ook je scores bijgehouden kunnen worden. Voor de Jeopardy stijl-challenges (uitleg verderop) heb je vaak niet meer nodig dan je computer of laptop en toegang tot de website. Bij de attack/defense- of penetratie-challenges heb je vaak een installatie van Kali nodig, het besturingssysteem voor hackingdoeleinden. Daarop zijn dan ook veel programma’s en tools te vinden die je nodig hebt. Overige tools kun je downloaden van bijvoorbeeld Github op het moment dat je ze nodig hebt.

Bekende tools zijn Nmap voor een eerste scan om informatie over porten en services te vinden, het Linux-tooltje smbclient voor meer informatie over samba shares, Wireshark voor het analyseren van netwerkverkeer, Nikto om webservers te scannen, hashcat voor het decoderen van wachtwoorden en sqlmap om geautomatiseerd SQL-injections te ontdekken.

©PXimport

Je kunt ook een volledige virtuele machine om mee te oefenen downloaden, die worden vaak als iso-bestand aangeboden. De machine is al helemaal voorbereid en je kunt hem op je eigen computer of laptop draaien. Zo heb je de beschikking over je eigen kwetsbare server, waar geen andere deelnemers op zitten. Deze downloadbare kwetsbare machines vind je bijvoorbeeld op de website vulnhub.com, hier staan inmiddels meer dan driehonderd .iso-bestanden op die elk hun eigen uitdaging en moeilijkheid hebben.

Soorten CFT challenges

Er zijn verschillende soorten challenges. Bij reverse engineering krijg je meestal een bestand, een uitvoerbaar programma, dat je lokaal kunt draaien. Met de juiste input voor het programma wordt uiteindelijk de flag onthuld. Door het reverse engineeren van het programma leer je hoe het algoritme werkt en weet je welke input je moet geven om de flag te vinden.

Bij cryptochallenges gaat het om cryptografie, vaak uiteenlopend van simpele of zelfgemaakte encryptie tot zwakke random generators. Maar het kan ook heel geavanceerd en wiskundig worden, waarbij je snel het spoor bijster bent als je niet volledig van dit soort technieken op de hoogte bent.

Bij pwning challenges krijg je meestal ook een uitvoerbaar programma, maar ook een ip-adres en een poort waar het programma op een server draait. Met het uitvoerbare bestand kun je lokaal proberen om het programma te exploiten en zo remote code execution te krijgen. Vervolgens gebruik je je ontwikkelde exploit code om op afstand een toepassing binnen te dringen en een actie uit te voeren. Als je op de server gekomen bent, kun je het bestand met de flag vinden en uitlezen. Vaak lopen deze challenges uiteen van een simpele buffer overflow tot erg geavanceerde heap overflows.

Een forensics challenge kent allerlei varianten. Bij een memory dump is het de bedoeling om een bestand te analyseren en bijvoorbeeld alle gebruikersnamen en wachtwoorden die op het moment van de dump in het geheugen van die computer waren geladen, eruit te halen. Bij netwerk packet analyse moet je analyseren hoe de communicatie tussen twee servers eruitzag en moet je bijvoorbeeld een gebruikersnaam en wachtwoord die in deze communicatie werd meegestuurd, vinden. De flag kun je vinden door de verborgen informatie uit de bestanden te lezen, alsof je een forensisch onderzoek aan het doen bent. Voor beginners zijn deze challenges vaak lastig.

Web challenges werken aan de hand van URL’s en kennen challenges zoals authenticatie bypass; het omzeilen van het inloggen met een gebruikersnaam en wachtwoord, en SQL- of XML-injections.

De IoT- (Internet Of Things) challenges zul je vaker bij een bedrijf of organisatie op kantoor vinden, omdat je hiervoor fysiek toegang tot het IoT-apparaat nodig hebt. Vaak is dit een combinatie van een web challenge, omdat er een administrator interface op zit, reverse engineering, omdat de firmware onderzocht kan worden, en een hardwarehack via bijvoorbeeld de netwerkaansluiting of UART, een seriële poort op een IoT-apparaat.

©PXimport

Er zijn eigenlijk twee veelvoorkomende soorten CTF’s. Namelijk Jeopardy-stijl CTF’s en attack/defense-CTF’s. Er zijn CTF’s die meer lijken op een werkelijke security penetratietest en er zijn gemengde competities; een combinatie van meerdere soorten CTF’s.

Bij de Jeopardy-stijl CTF is het de bedoeling om verschillende opdrachten (challenges) op te lossen van verschillende categorieën. Vaak kun je jezelf door het oplossen van de challenges toegang verschaffen tot een server, waar je dan een bepaalde tekst kunt vinden, die vlag (flag) heet. Vandaar ook de naam ‘capture the flag’. Deze flag kun je vervolgens uploaden als bewijs dat je de challenge gehaald hebt. Hiermee verdien je punten voor jezelf of je team.

De attack-/defense- CTF’s werken anders. Vaak worden ze gespeeld in teamverband. Elk team heeft zijn eigen kwetsbare servers en services. Als team moet je je eigen systeem verdedigen tegen andere teams die jouw systeem aanvallen. Tegelijkertijd kun je als team de server van andere teams proberen aan te vallen.

Bij de penetratietest-CTF probeer je individueel of met een team via vooraf bepaalde kwetsbaarheden een systeem binnen te komen. Een aantal veelvoorkomende kwetsbaarheden zijn het gebruik van zwakke wachtwoorden, gedeelde harde schijven zonder de juiste ACL’s, gesimuleerde eindgebruikers of bufferoverflows. Ook bij deze vorm van CTF is het niet toegestaan om elkaar aan te vallen, maar alleen de machines die voor de CTF beschikbaar zijn gemaakt.

De Jeopardy-stijl CTF’s gaan vaak over meer dan security alleen. Er komen ook veel raadsels en wiskundige breinkrakers in voor. De verschillende categorieën waarin challenges voorkomen zijn onder meer reverse engineering, cryptografie, pwning, forensics, web, IoT enzovoort. Hoe meer challenges je weet op te lossen, hoe moeilijker ze zullen worden. Moeilijker challenges leveren meer punten op. Degene met de meeste punten wint. Het is bij de Jeopardy-stijl CTF overigens niet toegestaan om elkaar aan te vallen, iedereen gebruikt over het algemeen zijn eigen laptop en logt in op de server of servers waar de challenges op staan.

Online CTF’s

Wil je zelf aan de slag met CTF, dan is een online-variant het makkelijkst om mee te beginnen. Er zijn wel honderden voorbeelden te noemen van websites die CTF’s hosten. Hier noemen we een aantal van de grootste en meestgebruikte websites.

Google heeft een CTF waarbij de beste tien teams na een online kwalificatieronde uitgenodigd worden om onsite de finale te spelen. En hier zijn leuke prijzen te winnen, maar het begint wel eerst online en daar kan iedereen aan mee doen.

CTF time is gemaakt door de CTF-community voor de CTF-community. Hier vind je CTF’s zowel online als offline, die binnenkort zullen plaatsvinden. Hoe en waar je je kunt inschrijven staat er ook, net als historische CTF-events en onder meer de ranglijst van deelnemende CTF-teams.

Overthewire is een verzameling van zogenoemde wargames. Elke challenge is te bereiken via een eigen ssh-poort. Er zijn verschillende levels die steeds moeilijker worden naarmate je verder komt. De Bandit-challenge is uitermate geschikt voor iedereen die net begint.

©PXimport

W3challs is een trainingsplatform met verschillende realistische challenges met verschillende moeilijkheidsgraden (easy, medium, hard). Deze heeft ook een forum waar je met andere deelnemers over de challenges kunt discussiëren.

Root-Me heeft meer dan 200 hack-challenges en ook nog 50 virtuele omgevingen waar je je skills kunt oefenen.

Op Hackthebox staan zowel kwetsbare servers als challenges in verschillende categorieën. Toegang krijgen tot de website is al een challenge op zich. Er zijn teams en ruim 150.000 mensen van over de hele wereld die dagelijks proberen de challenges te kraken.

Onsite CTF’s

Nog leuker is het natuurlijk om een on-site CTF bij te wonen of zelf aan deel te nemen. Er is een aantal bekende CTF’s. Secure by design organiseert elk jaar een CTF waar ongeveer 250 deelnemers op afkomen. Afgelopen jaren was het een uitgebreide penetratietest-stijl CTF in een studio in Hilversum.

Het Platform voor InformatieBeveiliging organiseert ook jaarlijks een CTF in Jeopardy-stijl. Aan meedoen zitten wel wat kosten verbonden, tenzij je lid bent, maar daarvoor krijg je wel een gezellige avond waar veel mensen aan deelnemen.

Hack in the box is een jaarlijkse hackingconferentie in Nederland, waar naast de conferentie ook een CTF wordt georganiseerd. Tijdens het tweedaags evenement wordt in teamverband geprobeerd de Jeopardy-stijl CTF te hacken.

Nog leuker is meedoen aan de CTF tijdens een van de hackingconferentie in de Verenigde Staten, zoals het eerder genoemde Def Con. Hiervoor moet je wel naar de VS, maar naast de CTF kun je ook de conferentie zelf bezoeken en er zijn leuke prijzen te winnen.

Tekst:Joost van ‘t Zand

▼ Volgende artikel
Waarom je tv-beeld onnatuurlijk oogt (en hoe je dat oplost)
© DC Studio
Huis

Waarom je tv-beeld onnatuurlijk oogt (en hoe je dat oplost)

Je hebt net een klein fortuin uitgegeven aan een gloednieuwe 4K- of zelfs 8K-televisie. Je installeert hem, start je favoriete filmklassieker en zakt onderuit op de bank. Maar in plaats van een bioscoopervaring bekruipt je het gevoel dat je naar een goedkope soapserie of een homevideo zit te kijken. De acteurs bewegen vreemd soepel, de actiescènes lijken versneld en de magie is ver te zoeken. Geen zorgen, je televisie is niet stuk. Hij doet eigenlijk iets te goed zijn best.

Dit fenomeen is zo wijdverspreid dat er een officiële term voor is: het 'soap opera effect'. In technische kringen wordt dit ook wel bewegingsinterpolatie of 'motion smoothing' genoemd. Hoewel fabrikanten deze functie met de beste bedoelingen in hun televisies bouwen, is het voor filmfanaten vaak een doorn in het oog. Gelukkig is het eenvoudig op te lossen... als je tenminste weet waar je moet zoeken.

Nooit meer te veel betalen? Check
Kieskeurig.nl/prijsdalers!

Wat is het 'soap opera effect' precies?

Om te begrijpen wat er misgaat, moeten we kijken naar hoe films worden gemaakt. De meeste bioscoopfilms en veel dramaseries worden opgenomen met 24 beelden per seconde. Die snelheid geeft films hun karakteristieke, dromerige uitstraling. Een beetje bewegingsonscherpte hoort daarbij; dat is wat onze hersenen associëren met 'cinema'. Moderne televisies verversen hun beeld echter veel vaker: meestal 60 of zelfs 120 keer per seconde.

Om dat verschil te overbruggen, verzint je slimme televisie er zelf beelden bij. De software kijkt naar beeld A en beeld B, en berekent vervolgens hoe een tussenliggend beeld eruit zou moeten zien. Dit voegt de tv toe aan de stroom. Het resultaat is een supervloeiend beeld waarin elke hapering is gladgestreken.

Voor een voetbalwedstrijd of een live-uitzending is dat geweldig, omdat je de bal en spelers scherper kunt volgen. Maar bij een film zorgt die kunstmatige soepelheid ervoor dat het lijkt alsof je naar een achter de schermen-video zit te kijken, of dus naar een soapserie zoals Goede Tijden, Slechte Tijden, die traditioneel met een hogere beeldsnelheid werd opgenomen. De filmische illusie wordt hierdoor verbroken.

©ER | ID.nl

De winkelmodus is ook een boosdoener

Naast beweging is er nog een reden waarom het beeld er thuis soms onnatuurlijk uitziet: de beeldinstellingen staan nog op standje zonnebank. Veel televisies staan standaard in een modus die 'Levendig' of 'Dynamisch' heet. Deze stand is ontworpen om in een felverlichte winkel de aandacht te trekken met knallende, bijna neon-achtige kleuren en een extreem hoge helderheid. Bovendien is de kleurtemperatuur vaak nogal koel en blauw, omdat dat witter en frisser oogt onder tl-licht. In je sfeervol verlichte woonkamer zorgt dat echter voor een onrustig beeld waarbij huidtinten er onnatuurlijk uitzien en details in felle vlakken verloren gaan.

Hoe krijg je de magie terug?

Het goede nieuws is dat je deze 'verbeteringen' gewoon kunt uitzetten. De snelste manier om van het soap opera effect en de neonkleuren af te komen, is door in het menu van je televisie de beeldmodus te wijzigen. Zoek naar een instelling die Film, Movie, Cinema of Bioscoop heet. In deze modus worden de meeste kunstmatige bewerkingen, zoals bewegingsinterpolatie en overdreven kleurversterking, direct uitgeschakeld of geminimaliseerd. Het beeld wordt misschien iets donkerder en warmer van kleur, maar dat is veel dichter bij wat de regisseur voor ogen had.

Sinds kort hebben veel moderne televisies ook de zogeheten Filmmaker-modus. Dat is de heilige graal voor puristen. Als je deze modus activeert, zet de tv met één druk op de knop alle onnodige nabewerkingen uit en respecteert hij de originele beeldsnelheid, kleuren en beeldverhouding van de film.

Wil je de beeldmodus niet volledig veranderen, maar alleen dat vreemde, soepele effect kwijt? Dan moet je in de geavanceerde instellingen duiken. Elke fabrikant geeft het beestje een andere naam. Bij Samsung zoek je naar Auto Motion Plus of Picture Clarity, bij LG-televisies ga je naar TruMotion, bij Sony naar Motionflow en bij Philips naar Perfect Natural Motion. Door deze functies uit te schakelen of op de laagste stand te zetten, verdwijnt het goedkope video-effect en krijgt je film zijn bioscoopwaardige uitstraling weer terug.

▼ Volgende artikel
Chrome Remote Desktop: ideaal voor ondersteuning op afstand
© ER | ID.nl
Huis

Chrome Remote Desktop: ideaal voor ondersteuning op afstand

Een apparaat op afstand bedienen hoeft geen geld te kosten en is verrassend eenvoudig. Of je nu bestanden wilt openen, technische problemen wilt oplossen of meerdere toestellen wilt beheren: met Chrome Remote Desktop kan het allemaal, gratis en zonder gedoe.

De helper begint

Een groot voordeel van Chrome Remote Desktop is de brede compatibiliteit: het werkt met Windows, macOS, Linux en ChromeOS. Bovendien is het veilig – verbindingen worden versleuteld – en je hebt alleen een Chrome-browser nodig. We beginnen aan de kant van degene die op afstand toegang wilt tot een andere computer, degene die ondersteuning biedt vanaf computer A. Op computer A opent de gebruiker Chrome en surft naar https://remotedesktop.google.com. Daar verschijnen twee opties: Dit scherm delen en Verbinding maken met een andere computer. Omdat computer A support wil geven aan een extern apparaat, kiest de gebruiker voor de tweede optie. In dat scherm verschijnt een veld om een toegangscode in te geven, de code volgt zo meteen.

Degene die support geeft, gebruikt het onderste vak.

Acties voor de hulpvrager

Op computer B, de computer die toegang zal verlenen, moet de gebruiker ook in Chrome surfen naar dezelfde website. Daar kiest hij voor de optie Dit scherm delen. Voordat dat mogelijk is, moet Chrome Remote Desktop eerst worden gedownload en geïnstalleerd. De gebruiker klikt daarvoor op de ronde blauwe knop met het witte downloadpijltje. Hiermee wordt een Chrome-extensie geïnstalleerd. Na de installatie verschijnt in het vak Dit scherm delen een blauwe knop met de tekst Code genereren. Wanneer de gebruiker daarop klikt, wordt een toegangscode van 12 cijfers aangemaakt. Die code geeft hij of zij door aan gebruiker A.

Wie support krijgt, moet de code via een berichtje of telefoontje doorgeven.

Scherm delen

Op computer A geeft de gebruiker de code op in Chrome Remote Desktop. Vervolgens wacht hij tot gebruiker B bevestigt dat A toegang mag krijgen tot zijn scherm. Zodra dat is gebeurd, verschijnt het volledige bureaublad van computer B in een nieuw Chrome-venster op computer A. Door dit venster schermvullend weer te geven, kan A probleemloos handelingen uitvoeren op de pc van B. Voor de veiligheid beschikken beide gebruikers over een knop om de sessie op elk moment te beëindigen. Uiteraard is een stabiele internetverbinding noodzakelijk. Daarnaast krijgen beide partijen de melding dat ze klembordsynchronisatie kunnen inschakelen. Hiermee wordt het mogelijk om eenvoudig tekst of bestanden te kopiëren en te plakken tussen beide apparaten.

Gebruiker A krijgt het volledige scherm van B in een Chrome-venster te zien.