Website en applicatie hacks in vogelvlucht

  • ± 5 minuten

Je hebt hackers die niet zozeer programmeer-kennis hebben, zoals je ook programmeurs hebt die niet kunnen hacken. En alhoewel het beroepen op zichzelf zijn, is het in beide gevallen praktisch als je van beide aspecten kennis hebt.

Kennis van zowel programmeren c.q. software ontwikkeling als ook hacken, vergemakkelijkt je werkzaamheden. Weten wat er mogelijk is, betekent dat er op geanticipeerd kan worden. Als je weet hoe bijvoorbeeld HTML werkt, weet je ook hoe er beïnvloed moet worden om tot een kwaadaardig resultaat te komen. En als je weet hoe er beïnvloed kan worden als ook hoe hackers te werk gaan, kun je je software beter beveiligen.

Onderzoekstraject van een hacker

Dat hetgeen we in films zien ver van de werkelijkheid ligt, weten we (hopelijk) allemaal. In tegenstelling tot wat je op tv ziet, betreft hacken namelijk zelden een inspanning van enkele seconden of kwestie van enkele toetsaanslagen. Er gaat vaak veel onderzoek aan vooraf.

Wat is de zwakste schakel?

Is het netwerk, de applicatie, of zijn de gebruikers of de beheerders de zwakste schakel? In het geval van personen, laten ze informatie slingeren op social media kanalen, loggen alle beheerders met Two Factor Authenticatie in en bijvoorbeeld overige gebruikers niet? Zo ja, kunnen er vanuit deze overige gebruikersgroep schade worden berokkend?

Social engineering: gebruikers hacken

Indien blijkt dat er vanuit de gebruiker het beste aangevallen kan worden, zijn ze er happig op om kwaadaardige USB sticks of andere devices te koppelen aan hun computer? Bijvoorbeeld als het op een achtergelaten item lijkt en men de eigenaar wil achterhalen.

Of is men makkelijk over te halen om op een kwaadaardige link te klikken in een op het eerste gezicht betrouwbaar e-mailbericht of whatsapp/sms bericht? Bijvoorbeeld als het lijkt dat een bericht van de bank komt, of er een prijs is gewonnen.

Applicatie hacken

Middels verschillende tools valt te achterhalen of de applicatie een goed startpunt is om te hacken. Hiervoor zijn verschillende (fingerprinting) sniffing tools te vinden. Hiermee kun je gebruikte systemen en soms ook gebruikte versies, server en bijvoorbeeld PHP versie of geïnstalleerde plugins achterhalen. De OWASP Guide 4.0 kent er een uitgebreide toelichting voor hoe je dit handmatig kunt achterhalen.

Het is dus niet zonder reden dat er voor Wordpress al snel een handvol aan security-scans te vinden zijn. Een Wordpress website strooit al snel met informatie en voorspelbaarheden (uiteraard ook met de combinatie dat het open source is). Maar liefst 73% van de 40.000 populairste websites die Wordpress gebruiken, zijn ondertussen kwetsbaar voor aanvallen.

Wanneer security geborgd moet blijven, betekent het in bovenstaand scenario dat zowel de code, als ook thema's als ook elk individuele plugin up-to-date moet blijven. Dezelfde vlieger gaat uiteraard op voor hosting-specificaties, denk aan de PHP versie. Kies je voor een systeem vergelijkbaar met Wordpress, dan kies je voor verantwoordelijkheid van security en daarmee het up-to-date houden van de website.

Mogelijke kwetsbaarheden

Een paar handenvol bekende kwetsbaarheden zijn als volgt:

  • XSS, staat voor Cross Side Scripting.
    De lootjes-trekken case is hier een voorbeeld van, waarbij er code geïnjecteerd wordt in een applicatie. Een meer inhoudelijke toelichting tref je hier. Online zijn er lijsten van mogelijke uitbuitingen te vinden (zogenaamde xss cheat sheets). Een andere opvallende casus waarbij een hacker over zou kunnen gaan op XSS om al je LastPass wachtwoorden te achterhalen.
  • CSRF, staat voor Cross Site Request Forgery
    Het doel is om verzoeken (bijvoorbeeld een betaalopdracht) uit te laten voeren door een andere gebruiker. Door XSS hier aan vooraf te laten gaan, zou hiermee ineens geld van een gebruiker, overgemaakt kunnen worden naar een rekening naar keuze.
  • Path traversal
    Path traversal houdt in dat je met de URI van een website of applicatie speelt, bijvoorbeeld in het geval van upload of download-acties, om zo een bepaalde actie in gang te zetten. Dit kon bijvoorbeeld plaats vinden binnen het Monstra CMS, waarmee je bestanden kon downloaden waartoe je eigenlijk geen toegang zou moeten krijgen.
  • Brute forcing
    Brute forcing houdt in dat met brute kracht (middels veel verzoeken/pogingen om bijvoorbeeld in te loggen) gepoogd wordt een systeem binnen te komen. In een blog van twee jaar terug, vertelt iemand hoe hij iedereen zijn Facebook account binnen had kunnen komen.
  • SQL injection
    In het geval van SQL injection, wordt gepoogd om (al dan niet blind) met een hyperlink en eventuele parameters te puzzelen, om hiermee invloed uit te kunnen oefenen op database-queries. Hierdoor zou ongeautoriseerd data opgevraagd of bijvoorbeeld verwijderd kunnen worden.
    Een Uber website kende een WP FAQ module met een kwetsbaarheid.
  • Access tokens
    Access tokens worden bijvoorbeeld gebruikt om communicatie tussen twee systemen autoriseren. Een access token zou onderschept kunnen worden of zelf gegokt (gespoofed) kunnen worden, en kan bijvoorbeeld in combinatie met brute forcing ingezet worden
  • Live File Inclusion
    Via File Inclusion laadt je een bestand of script in binnen een website, waarmee schade berokkend kan worden. Hierbij kunnen externe bronnen worden ingeladen of bijvoorbeeld worden geupload, waarna je resultaten krijgt dat je als hacker meer informatie geeft voor vervolg-acties.
    Een white hat hacker kwelgeest van Facebook, wist hiermee in 2014 broncode van een third party boven water te krijgen.
  • Authentication bypass
    Authentication bypass houdt in dat het je lukt om in te loggen, zonder de daarvoor benodigde authenticatie stappen te doorlopen. Uiteraard betekent dit dat controle voor correcte toegang onvoldoende gedaan is, zoals in 2016 bij PayPal, waar iemand 2FA wist te omzeilen.
  • Header tampering
    Header tampering, houdt in dat verstuurde headers beinvloed worden, om zo tot resultaten te komen waarmee verdere schade kan worden berokkend. In 2017 wist iemand hiermee 10.000 USD bij Google los te krijgen, en iemand wist via Wordpress zogenaamde "wachtwoord vergeten" (en daarmee inlognaam en nieuw wachtwoord) in zijn mailbox te krijgen door de host-header aan te passen.

Hacks bij Pornhub.com

Veelal worden hacks in combinatie met elkaar gebruikt. Hackers hebben op pornhub.com misbruik weten te maken van een bekende lek in het unserializen van een string, om vervolgens remote code execution toe te kunnen passen. Uiteindelijk een long shot, maar zeer interessant.

Weliswaar een minder hoge vergoeding, maar minstens zo interessant, was een andere hack bij Pornhub.com, waarbij iemand zelfs inloggegevens van de database van Pornhub.com boven water wist te krijgen.

Meer kwetsbaarheden en hacks

Sprak bovenstaand tot de verbeelding, of juist niet? Hieronder heb ik verwijzingen naar opsommingen van meer theorie of hacks met achtergronden opgenomen.