Bij Onvio krijgt iedereen de mogelijkheid om op vrijdag een eigen onderzoek te doen. Dit kan variëren van het onderzoeken/hacken van een IoT device tot aan het creëren van recon scripts voor Pentesten. In december ben ik (Joep) begonnen met een onderzoek naar kwetsbaarheden in overheidsdomeinen, geheel conform het CVD beleid van het NCSC. Gedurende dit onderzoek heb ik verschillende domeinen van de overheid handmatig getest op injecties, misconfiguraties en andere kwetsbaarheden. In deze blog ga ik je uitleggen hoe ik de Nederlandse Overheid heb kunnen hacken.

Note: Zolang de CVD policy wordt nageleefd, zijn er geen gevolgen voor uitgevoerde acties.

Vrijdag | 03-12-2021

Op vrijdag 3 december 2021 begon ik aan het onderzoek. De dag begon met het lezen van het CVD beleid, wat is er toegestaan en wat niet? Het is altijd goed om even te lezen wat de regels omtrent het beleid zijn, omdat je anders vervolgd kan worden, terwijl je goede intenties hebt (zie “Hacker Frank (15) wilde maar één ding: dat ‘lousy’ T-shirt verdienen”). Na het zorgvuldig lezen van het beleid ging ik aan de slag; het domeinenregister in kaart brengen. Het doen van wat research leverde een github repository op met daarin de domeinen van de Nederlandse Overheid. De targets waren duidelijk, waarna ik bovenaan de lijst begon met testen. Elk domein testte ik handmatig op injecties, zoals XSS en SQLi, maar ook op misconfiguraties in het CMS of login mechanisme en meer. Deze domeinen worden vaak getest, waardoor ik wist dat het een uitdaging zou gaan worden om een kwetsbaarheid te vinden.

Vrijdag | 10-12-2021

Op vrijdag 10 december 2021 begon ik de dag met wat onderzoek naar Content Management Systemen (CMS), omdat veel domeinen van de Nederlandse Overheid gebouwd zijn op dit soort systemen. Het onderzoek was gericht op het vinden van default credentials, interessante pagina’s en admin login pagina’s. Na het in kaart brengen van deze gegevens, voor diverse Content Management Systemen (CMS), was het tijd om de domeinen onder de loep te nemen. Welke CMS draait er op dit domein? Welke versie? Is er een admin login pagina publiek bereikbaar? Zijn de default credentials wel gewijzigd? Allemaal vragen die ik mijzelf stelde bij elk domein dat ik testte. Na een paar uur testen kwam ik op een domein terecht waar gebruik werd gemaakt van ‘Hippo CMS’. De versie van het CMS was verouderd, maar helaas zaten er geen bekende kwetsbaarheden in. Na het doornemen van de verzamelde documentatie van dit CMS, zag ik dat ‘Hippo CMS’ gebruik maakt van een beheerpagina op de locatie /cms. In de documentatie van dit CMS kwam ik ook tot de ontdekking dat er niet gebruik gemaakt werd van één set default credentials, maar drie. Ik probeerde in te loggen met admin/admin, dit werkte niet, waardoor ik het gevoel kreeg dat alle default credentials waarschijnlijk aangepast of uitgeschakeld waren. Echter was dit niet zo, want de overige default credentials werkten wel, waardoor ik zowaar binnen was gedrongen in het CMS en het login mechanisme had omzeilt. De valide credentials hadden overigens dezelfde rechten als de admin gebruiker, waardoor ik volledig toegang had tot het CMS!

Het is belangrijk om niks in het binnengedrongen systeem aan te passen, omdat je anders buiten het CVD beleid gaat. Na het vinden van deze kwetsbaarheid was het zaak om dit veilig te melden. Dit is mogelijk via het CVD-report-form van het NCSC. Hierbij is het belangrijk om gedetailleerd de stappen van de kwetsbaarheid te beschrijven, zodat het NCSC de kwetsbaarheid zo snel mogelijk kan verhelpen. Eenmaal verstuurd, kreeg ik al snel bericht dat de melding opgepakt zou worden conform het Responsible Disclosure beleid en er binnen drie werkdagen een terugkoppeling gegeven zou worden met de status van de melding. Zo gezegd, zo gedaan, want na een paar uur kreeg ik al een bericht dat de melding bevestigt was en doorgestuurd naar de verantwoordelijke organisatie. Wanneer zij van hen een terugkoppeling zouden krijgen dat het probleem opgelost was, zouden zij contact opnemen.

Maandag | 20-12-2021

Tien dagen na de melding kreeg ik bericht dat de gevonden kwetsbaarheid was verholpen. Het NCSC heeft snel gehandeld, waardoor de kwetsbaarheid dan ook zonder problemen opgelost kon worden. Als blijk van waardering kreeg ik een t-shirt aangeboden, waar ik zeker geen nee tegen kon zeggen.

Maandag | 15-01-2022

Een aantal weken later, op maandag 15 januari 2022, ontving ik het t-shirt met een bedank brief van het NCSC.

Conclusie

Veel op het internet aangesloten apparaten en systemen, zoals routers, databases of in dit geval een CMS, worden aanvankelijk geleverd met standaardgebruikersnamen en -wachtwoorden, zodat nieuwe gebruikers zich gemakkelijk kunnen aanmelden en het product kunnen configureren. Veel gebruikers / organisaties vergeten vaak de – misschien wel belangrijkste – stap om de standaard inloggegevens te wijzigen, waardoor ze kwetsbaar worden voor cyberaanvallen.

Bij pogingen om toegang te krijgen tot een systeem, proberen aanvallers eerst de gemakkelijkste methoden. Aangezien standaardwachtwoorden voor de meeste producten publiekelijk gedocumenteerd staan, is een van de eerste stappen die een aanvaller zal proberen om toegang te krijgen tot een apparaat of dienst met behulp van de standaardgegevens van het product.

Door de standaardwachtwoorden te vervangen door een sterk wachtwoord, kan de beveiliging van een apparaat of systeem aanzienlijk verbeterd worden. Zorg er overigens voor dat het standaardwachtwoord niet vervangen wordt door een van de meest voorkomende wachtwoorden, zoals Welkom01!, Zomer2020, Bedrijfnaam01, enzovoort.

Gebruik geen standaard inloggegevens, verander deze zo snel mogelijk.