Advanced Red Teaming Logo
Technologie

Moderne phishing technieken voor Microsoft 365 – Deel 2

Auteur

Mike Oude Reimer

Publicatiedatum

Moderne phishing technieken voor Microsoft 365 – Deel 2

In dit tweede deel van moderne phishing-technieken voor Microsoft 365 gaan we verder in op methoden die nog steeds worden gebruikt of die de afgelopen jaren in het wild zijn waargenomen. In deze blog richten we ons specifiek op device code phishing en hoe deze techniek zich heeft ontwikkeld.

Standaard Device code phishing

Voordat we kijken naar hoe device codes worden gebruikt bij phishingaanvallen, kijken we eerst naar het werkelijke doel van deze codes. Met device codes kan een gebruiker zich aanmelden bij apparaten met beperkte invoer, zoals smart tv's, IoT-apparaten of printers. Wanneer het apparaat in een dergelijk scenario wordt gebruikt, geeft het de gebruiker de instructie om zijn code in te voeren op microsoft.com/devicelogin. Eenmaal ingelogd kan het apparaat zich bij bepaalde applicaties authentiseren als die gebruiker door de benodigde tokens op te vragen.

Device code phishing wordt vaak gebruikt omdat deze codes toegang geven tot het account van het slachtoffer zonder dat het wachtwoord of de MFA-tokens nodig zijn. Bovendien wordt het legitieme domein microsoftonline.com of microsoft.com gebruikt in de phishingaanval, waardoor er minder kans is dat de email in de spam terechtkomt.

Het zou nu duidelijk moeten zijn waarom dit zo'n interessante phishing-techniek is. Maar hoe werkt het in de praktijk? Er zijn verschillende tools beschikbaar om device codes te genereren, zoals Roadtools (roadtx) en TokenTactics. In het volgende voorbeeld hebben we het Get-AzureToken commando van TokenTactics gebruikt om een token voor Microsoft Graph op te vragen:

Moderne phishing-technieken voor Microsoft 365 – Deel 2

In een phishing-scenario ontvangt het slachtoffer de user_code (LGE3GP882) en wordt gevraagd deze in te voeren op login.microsoftonline.com/common/oauth2/deviceauth of microsoft.com/devicelogin. Vanaf augustus 2024 heeft Microsoft een waarschuwing toegevoegd aan dit inlogscherm: "Do not enter codes from sources you don’t trust.":

Moderne phishing technieken voor Microsoft 365 – Deel 2

Figuur 2: Het slachtoffer wordt gevraagd de device code in te voeren.

Het slachtoffer wordt vervolgens gevraagd: “Are you trying to sign in to Microsoft Office?”. Het bericht vermeldt Microsoft Office omdat de client_id (d3590ed6-52b3-4102-aeff-aad2292ab01c) die gebruikt wordt in het verzoek overeenkomt met de applicatie die we bij TokenTactis hebben meegegeven met de parameter en waarde -Client MSGraph. Als in plaats daarvan -Client MSteams zou worden gebruikt, zou de client_id anders zijn en zou het bericht zeggen: “Are you trying to sign in to Microsoft Teams?”. De volledige lijst van client_id's en bijbehorende applicatienamen kan hier gevonden worden.

Moderne phishing technieken voor Microsoft 365 – Deel 2

Figuur 3: Het slachtoffer wordt gevraagd om in te loggen op Microsoft Office.

Als het slachtoffer vervolgens op Continue klikt, wordt de authenticatieflow afgerond en ontvangt de aanvaller de access en refresh token van de gebruiker. De access token kan worden gebruikt om toegang te verkrijgen tot de specifieke resource waarvoor het is aangevraagd. De refresh token wordt gebruikt om de access token te hernieuwen en kan worden gebruikt om toegang te verkrijgen tot andere resources.

Moderne phishing technieken voor Microsoft 365 – Deel 2

Figuur 4: Aanvaller ontvangt de access en refresh token nadat het slachtoffer op continue drukt.

Device code phishing met Squarephish

Een nadeel van de vorige methode is dat de device code slechts 15 minuten geldig is. Dit maakt het direct versturen van de code in een phishingmail minder geschikt, omdat de code waarschijnlijk al is verlopen tegen de tijd dat het slachtoffer hem probeert te gebruiken. Een oplossing voor dit probleem is het dynamisch genereren van de device code, wat precies is wat de tool Squarephish doet.

Met Squarephish in e-mailmodus ontvangt het slachtoffer de device code niet direct. In plaats daarvan ontvangt hij een QR-code die naar de Squarephish-server leidt. Wanneer het slachtoffer de QR-code scant, wordt de device code authenticatieflow gestart. Dit genereert een geldige code, die vervolgens automatisch naar het slachtoffer wordt gemaild.

Moderne phishing technieken voor Microsoft 365 – Deel 2

Figuur 5: Het slachtoffer ontvangt automatisch de dynamisch gegenereerde code per e-mail.

Hier gelden uiteraard de algemene phishingregels: als het domein niet minstens een paar maanden oud is of als schadelijk is gecategoriseerd, komt de email waarschijnlijk in de spam terecht. Daarnaast wordt aanbevolen om de standaard email templates, endpoints en serverheaders te wijzigen om detectie te voorkomen.

Wanneer het slachtoffer de code invoert op login.microsoftonline.com/common/oauth2/deviceauth, wordt gevraagd om de device code in te voeren. Omdat er echter QR-codes worden gebruikt, zal het slachtoffer deze waarschijnlijk openen op zijn of haar telefoon. Het voordeel van QR- phishing is dat mobiele telefoons vaak niet zijn onderworpen aan dezelfde beveiligingsmaatregelen. 

De afbeeldingen hieronder tonen de authenticatie van de device code op een mobiele telefoon. Een punt om rekening mee te houden is dat het slachtoffer wellicht niet is ingelogd op zijn of haar account op de telefoon. Als het slachtoffer zich moet aanmelden, wordt het land weergegeven van waar de Squarephish wordt gehost, omdat het authenticatieverzoek daar vandaan komt. Daarom is het belangrijk om Squarephish te hosten op een VPS in hetzelfde land als het slachtoffer.

Moderne phishing technieken voor Microsoft 365 – Deel 2

Figuur 6: Device code authenticatieflow op mobiel.

Omzeilen van Microsoft’s QR code scanning

Een nadeel van het gebruik van Squarephish in email modus met het standaard HTML-template is dat de QR-code als afbeelding wordt gegenereerd. Sinds enige tijd is Microsoft in staat om afbeeldingen van QR-codes te scannen. Als deze QR-code vervolgens leidt naar een domein dat als schadelijk wordt gemarkeerd, kan dat het einde van de phishingcampagne betekenen. Daarom hebben researchers nieuwe technieken bedacht die het mogelijk maken om QR-codes te genereren op een manier die Microsoft nog niet kan detecteren. 

Een van deze technieken wordt beschreven in flangvik's blog Pixelles QR codes with QRucible, waarin wordt uitgelegd hoe HTML-tabellen gebruikt kunnen worden om geldige QR-codes te maken. De tool doet al het werk. Het enige dat nodig is, is een HTML-template met de inhoud en styling van de email, samen met de URL van de Squarephish server. De afbeelding hieronder laat zien hoe deze techniek kan worden gebruikt om QR-phishing emails te maken.

Moderne phishing technieken voor Microsoft 365 – Deel 2

Figuur 7: HTML-tabel QR-code gegenereerd met de tool QRucible.

De QR-code in de email is geen echte afbeelding, maar gebruikt in plaats daarvan de HTML-tags <tr> en <td> met een achtergrondkleur die zwart (#000000) of wit (#ffffff) is om de code te creëren:

1<td style="background-color: #000000;"></td>
2<td style="background-color: #ffffff;"></td>
3<td style="background-color: #ffffff;"></td>
4

Wanneer Squarephish in email modus wordt gebruikt, is het mogelijk om een aangepaste HTML-template te specificeren, zoals de QRucible gegenereerde HTML-template met QR-code. Als alternatief kan Squarephish ook worden gebruikt in server modus, waarbij de initiële email wordt overgeslagen en Squarephish alleen de device code email en authenticatieflow regelt.

Conclusie

Device code phishing vormt een aanzienlijk risico omdat het aanvallers toegang geeft tot gebruikersaccounts zonder dat ze een wachtwoord of MFA-token nodig hebben. Hoewel Microsoft beveiligingswaarschuwingen heeft toegevoegd aan het inlogscherm, is de meest effectieve verdediging het implementeren van specifieke instellingen via de voorwaardelijke toegang in Microsoft Entra. Een latere blog zal hier dieper op ingaan.