Disclaimer: Welkom bij onze TechBlog!
Dit is een artikel in ons TechBlog. Ons Techblog bevat artikelen, geschreven door onze developers, over dingen die ze zijn tegengekomen tijdens hun werkzaamheden. Deze artikelen gaan (meestal) over een technisch onderwerp, en zijn met name bedoeld om te vermaken en (soms) te informeren. Dit artikel is veilig om te lezen, in tegenstelling tot de e-mails die het team verstuurde.

vr. 17 okt. Auteurs: Jochem van de Berg, Jeroen Mimpen

Hackathon 2025 - Phishing Attack

Het phishing team

Het phishing team

Wat is phishing?

Misschien is het eerst goed om uit te leggen wat phishing is. Inmiddels is waarschijnlijk iedereen in Nederland, bewust of onbewust, weleens in aanraking gekomen met phishing. Phishing is een vorm van internetfraude waarbij oplichters zich voordoen als bijvoorbeeld een bank of bedrijf, en mensen proberen te misleiden om vertrouwelijke gegevens, zoals wachtwoorden of bankgegevens, af te staan via valse berichten of nagemaakte websites.

Het doel

Het doel van het bovenstaande team was dus om de slachtoffers (de deelnemers van de hackathon) naar een nep-website te lokken en ze daar 'gevoelige' gegevens te laten achterhalen. Op deze manier willen we de oplettendheid van de deelnemers testen.

Het idee

Wij willen een e-mail sturen naar de hackathon-deelnemers die moeilijk te onderscheiden is van "echte" Webenable-communicatie. We doen daarmee de pet op van een hacker-groep, die middels sociale media (of iets vergelijkbaars) erachter is gekomen dat er vandaag een Hackathon-event plaatsvindt. Wij vroegen ons af in hoeverre wij in één dag een phishingaanval kunnen opzetten als groep "buitenstaanders" (niet als medewerkers van Webenable).

Restricties

Omdat wij acteren als hacker-groep van buitenaf en in principe geen toegang hebben tot interne data en technologie van Webenable, zijn we gebonden aan een aantal restricties. Met uitzondering van de e-maillijst van hackathon-deelnemers gebruiken we alleen gegevens die publiek beschikbaar zijn over Webenable.

Een voorbeeld hiervan is de huisstijl van Webenable, te vinden op de huidige website: https://www.webenable.nl/styles.

We maken voor dit project ook geen gebruik van de Github-repositories van Webenable die onderdeel uitmaken van het .NET Hydrazine-pakket (Bootstrapper, Dommel, etc.).

Uitdaging in matching van de stijl

Nadat we de HTML-broncode van webenable.nl hadden gekopieerd en deze in ons nieuwe project hadden opgevoerd, liepen we tegen een aantal errors aan m.b.t. ontbrekende bestanden, zoals: fonts, css en JavaScript-bestanden. Deze zijn nodig omdat webenable.nl die bestanden gebruikt voor haar visualisaties.

Deze bestanden zijn publiek beschikbaar, mits je weet waar ze staan.

In de view-source van de website is dit te zien. Ergens in die code staat bijvoorbeeld deze script-tag: <script data-cookieconsent="ignore" src="https://www.webenable.nl/js/webenable.273c99c0.js"></script> Via deze link kun je het JavaScript-bestand webenable.273c99c0.js downloaden.

Via de (Chrome) developer tools zijn alle bronbestanden ook te zien onder het tabblad Sources.

Domeinregistratie

Om mensen om de tuin te leiden wilden we voor de nep-website een domeinnaamregistratie die zoveel mogelijk op webenable.nl lijkt. Wij hadden gekozen voor webeneble.nl.

Registreren van het domein ging gemakkelijk via TransIP. Echter, wij wilden ook graag (automatisch) e-mails verzenden via dit domein. Daarvoor was dus ook een e-mailadres nodig, bijvoorbeeld info@webeneble.nl.

Voor dit doel hebben wij een aantal onderdelen nodig, namelijk:

  • Een e-mailadres
    Wij hebben hierbij gekozen om een tijdelijk (14 dagen gratis) Google Workspace account aan te maken.
  • Een e-mailprovider
    Het doel van deze provider is de geautomatiseerde verzending van e-mails. We hebben gekozen voor een opzet via Mailgun.
  • Een (cloud) hostingprovider
    Voor het serveren van de nep-website, die ook de automatische mails verstuurt.

Nadat het domein is aangeschaft kunnen de andere onderdelen aangeschaft worden. De verificatie van alle onderdelen gaat namelijk ook via het aangeschafte domein door middel van het instellen van DNS-records. De Google Workspace, Mailgun en Google Cloud-documentatie, die je bij alle stappen doorloopt, hielpen bij de opzet van alle DNS-records en verificatie daarvan.

Het snode plan

Een grote uitdaging was het vinden van het juiste onderwerp en content voor de e-mail. Hoe organiseren we een e-mail die echt genoeg lijkt en niet als “vreemd” of “verdacht” registreert bij de Hackathon-deelnemers?

Het thema voor onze e-mail waar wij op uitkwamen was: vragen een feedbackformulier in te vullen over de Hackathon.

In de e-mail, opgezet in de huisstijl van Webenable, motiveren we deelnemers door ze te vragen hoe ze de hackathon hebben ervaren en of ze misschien feedback achter willen laten door op een linkje in de e-mail te klikken. Dit linkje verwees naar een pagina op de nep-website. Op deze pagina stond inderdaad een, door ons gemaakt, feedbackformulier, waarbij de volgende gegevens werden opgevraagd:

  • Naam
  • Telefoonnummer
  • Feedback

De nep-website slaat deze gegevens op samen met het IP-adres en het type browser (door het uitlezen van de requestheaders) waarmee de gebruiker dit had ingevuld.

Jochem tijdens het uitvoeren van snode plannen

Jochem tijdens het uitvoeren van snode plannen

Onverwachte technische uitdagingen

Het opzetten van een werkende CRUD-applicatie zonder gebruik te maken van Dommel en Bootstrapper bleek lastiger dan verwacht. Het maken van een databaseverbinding, die verbinding open houden zolang dat nodig is en dan weer afsluiten, de gegevens daadwerkelijk ophalen en opslaan. Al deze dingen worden voor ontwikkelaars ontzettend vereenvoudigd door gebruik te maken van bovengenoemde repositories. Het was best een uitdaging om de website functioneel werkzaam te krijgen zonder gebruik te maken van deze tools.

Je bouwt een flinke eetlust op na een dag van persoonsgegevens stelen!

Je bouwt een flinke eetlust op na een dag van persoonsgegevens stelen!

Demo

Demonstreren van de app bleek nog niet zo eenvoudig, want hoe demonstreer je iets zonder weg te geven dat we iedereen eigenlijk proberen te hacken? Om deze reden hadden wij het feedbackverzoek al eerder gemaild dan toen de demonstraties begonnen. Hierdoor had één van de deelnemers, voor de start van de demonstraties, al op het linkje in de e-mail geklikt en konden we dat laten zien op het hiervoor ontwikkelde dashboard op de nep-website.

Wat ook interessant bleek is dat veel van de ontvangers, ondanks dat ze het formulier niet invulden, eigenlijk niet doorhadden dat dit een nep-e-mail was. Zelfs de mensen die ons hielpen met het opzetten van de domeinen en e-mailaccounts, en enkele uren later deze e-mail kregen, hadden op dat moment niet de link gelegd. De e-mail bleek dus behoorlijk overtuigend en effectief, en dit heeft bij veel mensen waarschijnlijk wel een stukje extra gewaarwording gebracht rondom de gevaren van dit soort aanvallen.

Op het gebouwde dashboard was te zien welke slachtoffers geklikt hadden op de link in de mail

Op het gebouwde dashboard was te zien welke slachtoffers geklikt hadden op de link in de mail

Ik trapte er ook in!

Ik (Jeroen) kan bovenstaande stuk totaal beamen.

Ondanks dat developers minder vatbaar voor dit soort aanvallen zijn dan de gemiddelde gebruiker kunnen, bij een combinatie van voldoende geraffineerdheid en een moment van onoplettendheid, ook wij hier soms intrappen. Slechts drie dagen eerder was het groot nieuws rondom de NPM malware / supply chain attacks, die het resultaat waren van een slim uitgedachte phishing attacks.

Ondanks dat ik hier dus recent vrij veel over had gelezen, en ondanks dat ik wist dat ze met dit project bezig waren, had ik het totaal niet door. Toen ik deze e-mail in mijn inbox zag, rond een uur of 19:00, met de opmerking dat de hackathon helaas weer voorbij was en of ik feedback wilde achterlaten, was het eerste wat ik dacht: "Oh, Casper zal de e-mail wel iets te vroeg hebben verstuurd. Typisch Casper! Hij moet dit soort dingen ook eigenlijk niet doen hè, hij heeft het hier veel te druk voor. Ik zal hem hier binnenkort wel weer even over op zijn kop geven!". Kortom: de e-mail was echt totaal overtuigend!

Ik vind het dus ook heel knap wat dit team heeft kunnen bedenken en uitvoeren, binnen één dag, met deze restricties. Ik hoop dat Jochem, Michaël en Dicky niet besluiten om hier hun dagelijkse werk van te gaan maken, want ik vrees dat we dan in de nabije toekomst nog veel NPM-malware-achtige praktijken gaan ondervinden.

Publicatie en video

Wil je het phishingteam in actie zien? Neem dan een kijkje naar onze video van de hackathon, waar het bewijs in beeld is gebracht, en waar ook alle andere hackathon-projecten onder de aandacht komen. Je kunt de aftermovie van de hackathon hier bekijken!

Benieuwd naar de andere projecten van de hackathon? Lees dan onze publicatie over deze hackathon, en hou ons techblog de komende weken in de gaten.