Wij zijn |
QR-codes: het onverwachte wapen in Device Code Phishing
QR Codes: Het onverwachte wapen in Device Code Phishing
- 1 Werking van Device code phishing
- 2 Stap voor stap: de werkwijze van Device code phishing in combinatie met QR-codes
- 3 Het risico en de mogelijke gevolgen van Device Code Phishing
- 4 Detectie en respons: effectief omgaan met Device Code Phishing
- 5 Bescherming tegen Device Code Phishing
- 6 Vraag vrijblijvend een phishing simulatie of Azure review aan
Device code phishing, net als aanvallen via Adversary-in-the-middle (AiTM), vertegenwoordigt een geavanceerde vorm van cyberdreiging die zich onderscheidt van traditionele phishing. Het unieke van deze techniek ligt in het vermogen om multifactorauthenticatie (MFA) te omzeilen, wat normaal gesproken een robuuste beveiligingslaag biedt. Device code phishing exploiteert de ‘OAuth2 Device Authorization Grant flow‘ van Microsoft Azure, die gebruikers in staat stelt zich aan te melden bij apparaten met beperkte invoermogelijkheden – denk aan smart-tv’s, IoT-apparaten of printers. Gebruikers voeren een code in die door het apparaat wordt verstrekt via een computer of mobiel apparaat, waarmee het apparaat vervolgens authenticatie-tokens kan aanvragen om namens de gebruiker informatie op te halen of acties uit te voeren.
Deze phishing techniek maakt gebruik van een ‘phishing-flow’ die slechts eenmaal, bij de initiële setup op een systeem beheerd door een aanvaller, plaatsvindt. Hierdoor vinden alle volgende inlogstappen plaats op de officiële Microsoft-pagina’s, wat deze aanval moeilijk te onderscheiden maakt van een legitieme aanmeldprocedure. Dit aspect maakt device code phishing bijzonder verraderlijk, aangezien zelfs geavanceerde beveiligingsmaatregelen zoals MFA kunnen worden omzeild.
In deze blog duiken we dieper in op de werking van Device code phishing in combinatie met QR-codes. We tonen stap voor stap hoe een dergelijke aanval wordt uitgevoerd, bespreken de mogelijke gevolgen, geven advies over hoe te reageren op deze aanval en bespreken oplossingen om je organisatie hiertegen te beschermen.
Werking van Device code phishing
Device code phishing maakt slim gebruik van Microsoft’s officiële procedures. Bij deze aanvalsmethode doet een aanvaller zich voor als een apparaat en vraagt bij Microsoft een ‘device code’ aan. Vervolgens probeert de aanvaller het slachtoffer te overtuigen deze code in te voeren op de specifieke URL: https://microsoft.com/devicelogin. Wanneer een gebruiker de code invoert, wordt er door Microsoft gevraagd om in te loggen en toestemming te geven voor het apparaat om namens hen acties uit te voeren.
Hoewel deze procedure eenvoudig lijkt, heeft Microsoft de geldigheidsduur van de device code beperkt tot maximaal 15 minuten. Dit vormt een uitdaging: het slachtoffer moet snel handelen. Bovendien laat Microsoft de gebruiker zien voor welke applicatie toestemming wordt gegeven, wat extra waakzaamheid vereist.
Waarom QR-codes?
Om deze hindernissen te omzeilen, gebruiken aanvallers vaak twee phishing-e-mails gerelateerd aan het opnieuw instellen van de Microsoft Authenticator. Deze keuze valt op Microsoft Authenticator omdat het breed geaccepteerd en vertrouwd is door Microsoft, waardoor geen alarmbellen gaan rinkelen. In de eerste e-mail wordt een QR-code geplaatst, die, als onderdeel van de Authenticator-instellingsprocedure, niet verdacht lijkt. Deze QR-code leidt het slachtoffer naar een kwaadaardige website, die op haar beurt direct doorverwijst naar Microsoft’s inlogpagina voor device codes (https://microsoft.com/devicelogin). Door eerst op de kwaadaardige site te landen, kan de aanvaller volgen dat het slachtoffer actief is met de e-mail. Vervolgens wordt er een nieuwe, geldige device code via e-mail naar het slachtoffer gestuurd. Na het invoeren van deze code op de Microsoft-pagina, voltooit het slachtoffer de gebruikelijke authenticatieprocedure, inclusief eventuele MFA-verificaties, en geeft uiteindelijk toestemming voor de toegang.
Zodra het “apparaat” door het slachtoffer is geaccepteerd, krijgt de aanvaller een access token dat 90 minuten geldig is, en een refresh token dat tot 90 dagen gebruikt kan worden om nieuwe toegangstokens te genereren. Met deze tokens kan de aanvaller vervolgens handelingen uitvoeren namens het slachtoffer.
Stap voor stap: de werkwijze van Device code phishing in combinatie met QR-codes
De website van de aanvaller fungeert voornamelijk als een signaal voor de aanvaller dat het slachtoffer reageert op de e-mail. Zodra de gebruiker op deze website belandt, wordt hij of zij onmiddellijk doorgestuurd naar de officiële website van Microsoft. Dit gebeurt zo snel dat het slachtoffer niet merkt dat het eerst op een tussenliggende pagina van de aanvaller was.
Tegelijkertijd voert SquarePhish meerdere verzoeken uit om een unieke device code van Microsoft te verkrijgen. Zodra deze code is gegenereerd, verzendt de tool deze code naar het slachtoffer via een nieuwe e-mail.
Deze mail ziet er als volgt uit.
Na het invoeren van de code krijgt het slachtoffer een melding dat er een poging is gedaan om in te loggen op de Microsoft Authenticator App vanaf een ander apparaat, gelokaliseerd in Nederland. Dit land komt overeen met de locatie van de server van de aanvaller, die eventueel gewijzigd kan zijn door het gebruik van een proxy of VPN. Als het slachtoffer al ingelogd is, kan deze via Single-Sign-On (SSO) eenvoudig inloggen.
Vervolgens ontvangt het slachtoffer nog een melding over de inlogpoging via de Microsoft Authenticator App.
Na deze stappen voltooid te hebben, krijgt het slachtoffer te zien dat de inlogpoging succesvol was en dat het venster gesloten kan worden.
In de tussentijd controleert SquarePhish of de gebruiker is geauthentiseerd. Zodra dit het geval is, worden de verkregen Access Token en Refresh Tokens opgeslagen.
De inhoud van het bestand ziet er als volgt uit:
Deze tokens stellen ons in staat het volgende curl-commando uit te voeren naar Microsoft Graph, met een Authorization-header inclusief de ontvangen Access Token:
curl https://graph.microsoft.com/v1.0/me -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJub25jZSI6Ii1kRVBHTWE4U1UzcjlxWUJtcHFDV2Rjd2pkNk9CTWxZYmJLZG5Yak5PQW8iLCJhbGciOiJSUzI1NiIsIng1dCI6ImtXYmthYTZxczh3c1RuQndpaU5ZT2hIYm5BdyIsImtpZCI6ImtXYmthYTZxczh3c1RuQndpaU5ZT2hIYm5BdyJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8zMWExZTgwZi1hZGVhLTRmMWYtYTY5Ny02Y2NmNDVhMjBmYWUvIiwiaWF0IjoxNzA3NDA4OTE5LCJuYmYiOjE3MDc0MDg5MTksImV4cCI6MTcwNzQxNDQ0NywiYWNjdCI6MCwiYWNyIjoiMSIsImFpbyI6IkFWUUFxLzhWQUFBQTVhU3pub1hnNEcrU1hoTW9PQVBSU2dsYmlyeDJRSE9aYm1ST005cU9lZW96aTdvOFg0VlJtdzM2alFZS1haSGZ0WEY4NjZOR0lKNlE1eHRzcWkwL0k2RTVpZDF4Sk0zdXhCRlI1Q0RkMG13PSIsImFtciI6WyJwd2QiLCJtZmEiXSwiYXBwX2Rpc3BsYXluYW1lIjoiTWljcm9zb2Z0IEF1dGhlbnRpY2F0b3IgQXBwIiwiYXBwaWQiOiI0ODEzMzgyYS04ZmE3LTQyNWUtYWI3NS0zYjc1M2FhYjNhYmIiLCJhcHBpZGFjciI6IjAiLCJpZHR5cCI6InVzZXIiLCJpcGFkZHIiOiI4Mi4yMTcuNDkuODIiLCJuYW1lIjoiSVQgQWRtaW5pc3RyYXRvciIsIm9pZCI6IjNjOTViYmM3LTUxNmUtNDhlNS05ZGVmLWZhNDcwMTg4NDY3YyIsInBsYXRmIjoiMTQiLCJwdWlkIjoiMTAwMzIwMDM0MkM0Q0UxRSIsInJoIjoiMC5BWGtBRC1paE1lcXRIMC1tbDJ6UFJhSVByZ01BQUFBQUFBQUF3QUFBQUFBQUFBQU1BVUkuIiwic2NwIjoiZW1haWwgb3BlbmlkIE9yZ2FuaXphdGlvbi5SZWFkLkFsbCBwcm9maWxlIFVzZXJBdXRoZW50aWNhdGlvbk1ldGhvZC5SZWFkIiwic3ViIjoiYkVUWE12eXZHOE1fQURwblZnTDBBLWxSSm94alNyRGJUT0o4d3NEemllZyIsInRlbmFudF9yZWdpb25fc2NvcGUiOiJFVSIsInRpZCI6IjMxYTFlODBmLWFkZWEtNGYxZi1hNjk3LTZjY2Y0NWEyMGZhZSIsInVuaXF1ZV9uYW1lIjoiSVQtYWRtaW5pc3RyYXRvckBoYWNraWZ5Lm5sIiwidXBuIjoiSVQtYWRtaW5pc3RyYXRvckBoYWNraWZ5Lm5sIiwidXRpIjoiTmV5OXpFaHY4RVdFOEVfQlBLeG1BQSIsInZlciI6IjEuMCIsIndpZHMiOlsiYjc5ZmJmNGQtM2VmOS00Njg5LTgxNDMtNzZiMTk0ZTg1NTA5Il0sInhtc19zdCI6eyJzdWIiOiJpSzdtWHZOc0MzU2NveXZrOXhBcDcyc09xWi1TTUhMRFZWV3FYdFhoMGg4In0sInhtc190Y2R0IjoxNjQ4MDI1MTY1LCJ4bXNfdGRiciI6IkVVIn0.IeXV60NJojBEfb4wqLxhPehGXgrc5HTFUM4qtMHA0MP15TWzkYst0wsec7JeD0YzH3rYbxxe7wStHeaDj_rLWpSm8mB3RTMorHpKqe6Sz6Awdpdy9_xqU5E04ZSrXlTMdf40Y0BemEyWWGw25oIvr2QDFSkBaUr3Z1d641P_PmCoNHDftpUpKj9FH7lUyeFoNlqxrgkxNR9DED7cO-c8CVzrOBGbcJCX6NMlt8OtG3jps-Mf-4bwU1dcfy5oiLvQ9aoBvU439yvvCfXGqrmUWPq5DCNfU-JJ2_ZYkQe-0Pht4CTGJnMjIkWtlOYxouhtpU5mgL5mas0JsqDUkwfsHw" | jq
Het resultaat toont aan dat de Access Token toebehoort aan het slachtoffer.
Indien onze token na 90 minuten verloopt, ontvangen we de volgende melding.
Aangezien we beschikken over een Refresh Token dat 90 dagen geldig is, kunnen we eenvoudig een nieuwe Access Token genereren en gebruiken. Dit doen we met het volgende curl-commando:
curl https://login.microsoftonline.com/common/oauth2/token -X POST --data-binary 'grant_type=refresh_token&refresh_token=0.AXkAD-ihMeqtH0-ml2zPRaIPrio4E0inj15Cq3U7dTqrOrsMAUI.AgABAAEAAAAmoFfGtYxvRrNriQdPKIZ-AgDs_wUA9P8BnDhKJQmt_wEDjSlJej0KswkKHAzcsVvuyJrZ8kkQdd17ZM8xLDnVw6f6MHZ1Jvd_bhpwuNBfdw4A-8ta9lgY2Ycf9hd5ViUdv9bXNX2UlJEIvBpeNdm52GLOZFs02sLkNpzN-3NCy7lUYdko1MkB6CERknfLUVxQia-pubhugUlfs8scpEUfgnSqMZfbuTnBo641KrLtLwcP_RcKIo6SfdUdkzecJmYOX7zs_Df9flSHGJjqF9qvFEtVwNWPrHeCbUsN7tiTQvA-a7UtIjZ55KQnLsrN73YwcSrh49EZojnGMOE-6ysB4EX4hr9eHTTmeeSPToMskDabuONzsE8QclLx01jsamHTZyRTKnWK3N_8JzFSsYSVKNpFVo7gJrnpfjY1Gdd5qD4enAJH2kRqHNc4VAwxOj0n5Llh1k0Zs4o44ogdE40RFsxKZsE4NwapN2DOcH7Bl5AFe_SHaNmDEpLSzSc1tZVw2PINTMN87Q9tJE0h8ik55ni2HuBSmPomCMZ0kVSC-YEE3JalyVJy-hzrLJQ53EfnwwHVnBuSrotG9x5JtPg8S3mgRWkhCRvqqaEq87D8dJ0e1ZBH4hwuMMjlBFDITXP1WwP18W6ndBoVDgbSpfJ5oxXKwtYJ4979pGgxuGX0LdXxetXJiJCGLOm4gA-2EuDICNOM3X8iqBbvebKn9xs5AC_7KsqSuWxKq7KcrzTt0k1-w6ocE5W1iiUh4GEooaSwqGyYBgMhEfhi2FwxdinF1eQM_pUGdOnnUbOFDjSXLbJKiyAblAdPC7550S4FCjOeB_EP7BI&client_id=4813382a-8fa7-425e-ab75-3b753aab3abb&scope=openid' | jq
Deze aanpak zorgt ervoor dat we voortdurend toegang kunnen behouden tot de rechten van het slachtoffer, zonder dat deze het merkt.
Het risico en de mogelijke gevolgen van Device Code Phishing
Detectie en respons: effectief omgaan met Device Code Phishing
Daarnaast kunnen er op het gebied van detectie regels worden ingesteld om authenticatie via device code te monitoren, dit kan via de sign-in logs van Azure. In de Azure sign-in logs wordt authenticatie via Device Code op een specifieke manier weergegeven.
Wat betreft het reageren op incidenten, is het aan te raden om het wachtwoord van de betreffende gebruiker te wijzigen en diens sessies te ‘revoken’. Het ‘revoken’ van sessies heeft echter alleen effect op de refresh tokens, die 90 dagen geldig zijn, en niet op de access tokens, die slechts 90 minuten geldig zijn. Wanneer sessies zijn geannuleerd en de aanvaller probeert een nieuwe access token te genereren met een refresh token, verschijnt de volgende melding:
Hoewel het niet mogelijk is om direct access tokens te annuleren, kan de geldigheidsduur van deze tokens wel verkort worden of kan de gebruiker worden gedeactiveerd. Als een gebruiker gedeactiveerd is, verschijnt er bij gebruik van de tokens de volgende melding:
Bescherming tegen Device Code Phishing
Vraag vrijblijvend een phishing simulatie of Azure review aan
Hoe kunnen wij u helpen?
Cross-Site Scripting (XSS): wat is het en hoe te voorkomen
In deze blogpost lees je alles over Cross-Site Scripting (XSS). Welke vormen van XSS er zijn. Wat de impact van een XSS-aanval kan zijn en hoe je het kan voorkomen.
CORS: het belang van Cross-Origin Resource Sharing
Bij onze klanten zien we een toenemende implementatie van Cross-Origin Resource Sharing (CORS). Helaas constateren we ook een stijging in het aantal onveilig geconfigureerde CORS-implementaties. In deze blog duiken we dieper in wat CORS is, de meest voorkomende misconfiguraties en hun potentiële risico’s, en hoe je sterke CORS-regels kunt instellen om je webapplicaties te beschermen.
Security headers: het wat en waarom
In deze blogpost lees je het hoe en waarom van de Content Security Policy (CSP). Met deze HTTP security header kan je de webbrowser van gebruikers fijnmazige instructies geven die bescherming bieden tegen hackaanvallen.