Translated ['src/pentesting-cloud/azure-security/az-lateral-movement-clo

This commit is contained in:
Translator
2025-07-30 04:11:55 +00:00
parent 1990a2db76
commit 3b3b2feb73
@@ -6,7 +6,7 @@
**Cloud Sync** to w zasadzie nowy sposób Azure na **synchronizację użytkowników z AD do Entra ID**.
[Z dokumentacji:](https://learn.microsoft.com/en-us/entra/identity/hybrid/cloud-sync/what-is-cloud-sync) Microsoft Entra Cloud Sync to nowa oferta od Microsoft, zaprojektowana w celu spełnienia i osiągnięcia celów związanych z hybrydową tożsamością w zakresie synchronizacji użytkowników, grup i kontaktów do Microsoft Entra ID. Osiąga to, używając agenta do provisioningu w chmurze Microsoft Entra zamiast aplikacji Microsoft Entra Connect. Może być jednak używane obok Microsoft Entra Connect Sync.
[Z dokumentacji:](https://learn.microsoft.com/en-us/entra/identity/hybrid/cloud-sync/what-is-cloud-sync) Microsoft Entra Cloud Sync to nowa oferta od Microsoft, zaprojektowana w celu spełnienia i osiągnięcia celów związanych z tożsamością hybrydową w zakresie synchronizacji użytkowników, grup i kontaktów do Microsoft Entra ID. Osiąga to, używając agenta do provisioningu w chmurze Microsoft Entra zamiast aplikacji Microsoft Entra Connect. Może być jednak używane obok Microsoft Entra Connect Sync.
### Wygenerowane zasady
@@ -19,13 +19,13 @@ Aby to działało, w Entra ID i lokalnym katalogu tworzone są pewne zasady:
- W Entra ID tworzona jest również grupa **`AAD DC Administrators`** bez członków lub właścicieli. Ta grupa jest przydatna, jeśli używane są [`Microsoft Entra Domain Services`](./az-domain-services.md).
- W AD tworzony jest albo Konto Usługi **`provAgentgMSA`** z SamAccountName w formacie **`pGMSA_<id>$@domain.com`** (`Get-ADServiceAccount -Filter * | Select Name,SamAccountName`), albo niestandardowe, z [**tym uprawnieniem jest wymagane**](https://learn.microsoft.com/en-us/entra/identity/hybrid/cloud-sync/how-to-prerequisites?tabs=public-cloud#custom-gmsa-account). Zwykle tworzony jest domyślny.
- W AD tworzony jest albo Konto Usługi **`provAgentgMSA`** z SamAccountName w formacie **`pGMSA_<id>$@domain.com`** (`Get-ADServiceAccount -Filter * | Select Name,SamAccountName`), albo niestandardowe z [**tymi uprawnieniami**](https://learn.microsoft.com/en-us/entra/identity/hybrid/cloud-sync/how-to-prerequisites?tabs=public-cloud#custom-gmsa-account). Zwykle tworzony jest domyślny.
> [!WARNING]
> Wśród innych uprawnień Konto Usługi **`provAgentgMSA`** ma uprawnienia DCSync, co pozwala **każdemu, kto je przejmie, na skompromitowanie całego katalogu**. Więcej informacji o [DCSync znajdziesz tutaj](https://book.hacktricks.wiki/en/windows-hardening/active-directory-methodology/dcsync.html).
> [!NOTE]
> Domyślnie użytkownicy znanych grup uprzywilejowanych, takich jak Administratorzy Domeny, z atrybutem **`adminCount` do 1 nie są synchronizowani** z Entra ID z powodów bezpieczeństwa. Jednak inni użytkownicy, którzy są częścią grup uprzywilejowanych bez tego atrybutu lub którzy mają przypisane wysokie uprawnienia bezpośrednio **mogą być synchronizowani**.
> Domyślnie użytkownicy znanych grup uprzywilejowanych, takich jak Administratorzy Domeny, z atrybutem **`adminCount` równym 1, nie są synchronizowani** z Entra ID z powodów bezpieczeństwa. Jednak inni użytkownicy, którzy są częścią grup uprzywilejowanych bez tego atrybutu lub którzy mają przypisane wysokie uprawnienia bezpośrednio **mogą być synchronizowani**.
## Synchronizacja haseł
@@ -35,7 +35,7 @@ Sekcja ta jest bardzo podobna do tej z:
az-connect-sync.md
{{#endref}}
- **Synchronizacja skrótów haseł** może być włączona, aby użytkownicy mogli **logować się do Entra ID używając swoich haseł z AD**. Ponadto, gdy hasło jest modyfikowane w AD, zostanie zaktualizowane w Entra ID.
- **Synchronizacja skrótów haseł** może być włączona, aby użytkownicy mogli **logować się do Entra ID za pomocą swoich haseł z AD**. Ponadto, gdy hasło jest modyfikowane w AD, zostanie zaktualizowane w Entra ID.
- **Zapis hasła** może być również włączony, co pozwala użytkownikom na modyfikację swojego hasła w Entra ID, automatycznie synchronizując ich hasło w lokalnej domenie. Ale zgodnie z [aktualnymi dokumentami](https://learn.microsoft.com/en-us/entra/identity/authentication/tutorial-enable-sspr-writeback#configure-password-writeback), do tego potrzebne jest użycie agenta Connect, więc zapoznaj się z sekcją [Az Connect Sync](./az-connect-sync.md) w celu uzyskania dalszych informacji.
- **Zapis grup**: Ta funkcja pozwala na synchronizację członkostwa grup z Entra ID z powrotem do lokalnego AD. Oznacza to, że jeśli użytkownik zostanie dodany do grupy w Entra ID, zostanie również dodany do odpowiadającej grupy w AD.
@@ -81,13 +81,13 @@ https://book.hacktricks.wiki/en/windows-hardening/active-directory-methodology/i
{{#endref}}
> [!NOTE]
> Zauważ, że nie ma sposobu, aby przypisać role Azure lub EntraID do zsynchronizowanych użytkowników na podstawie ich atrybutów, na przykład w konfiguracjach Cloud Sync. Jednak aby automatycznie przyznać uprawnienia zsynchronizowanym użytkownikom, niektóre **grupy Entra ID z AD** mogą otrzymać uprawnienia, dzięki czemu zsynchronizowani użytkownicy w tych grupach również je otrzymują, lub **można użyć grup dynamicznych**, więc zawsze sprawdzaj zasady dynamiczne i potencjalne sposoby ich nadużycia:
> Zauważ, że nie ma sposobu, aby przypisać role Azure lub EntraID do zsynchronizowanych użytkowników na podstawie ich atrybutów, na przykład w konfiguracjach Cloud Sync. Jednak w celu automatycznego przyznawania uprawnień zsynchronizowanym użytkownikom niektóre **grupy Entra ID z AD** mogą otrzymać uprawnienia, dzięki czemu zsynchronizowani użytkownicy w tych grupach również je otrzymują, lub **można użyć grup dynamicznych**, więc zawsze sprawdzaj zasady dynamiczne i potencjalne sposoby ich nadużycia:
{{#ref}}
../../az-privilege-escalation/az-entraid-privesc/dynamic-groups.md
../az-privilege-escalation/az-entraid-privesc/dynamic-groups.md
{{#endref}}
Jeśli chodzi o persistencję, [ten post na blogu](https://tierzerosecurity.co.nz/2024/05/21/ms-entra-connect-sync-mothods.html) sugeruje, że możliwe jest użycie [**dnSpy**](https://github.com/dnSpy/dnSpy) do wprowadzenia backdoora do dll **`Microsoft.Online.Passwordsynchronisation.dll`** znajdującej się w **`C:\Program Files\Microsoft Azure AD Sync\Bin`**, która jest używana przez agenta Cloud Sync do przeprowadzania synchronizacji haseł, co powoduje eksfiltrację hashy haseł użytkowników synchronizowanych na zdalny serwer. Hashes są generowane wewnątrz klasy **`PasswordHashGenerator`**, a post na blogu sugeruje dodanie pewnego kodu, aby klasa wyglądała tak (zauważ użycie `use System.Net` i `WebClient` do eksfiltracji hashy haseł):
Jeśli chodzi o persistencję, [ten post na blogu](https://tierzerosecurity.co.nz/2024/05/21/ms-entra-connect-sync-mothods.html) sugeruje, że możliwe jest użycie [**dnSpy**](https://github.com/dnSpy/dnSpy) do wprowadzenia backdoora do dll **`Microsoft.Online.Passwordsynchronisation.dll`** znajdującej się w **`C:\Program Files\Microsoft Azure AD Sync\Bin`**, która jest używana przez agenta Cloud Sync do przeprowadzania synchronizacji haseł, co powoduje eksfiltrację hashy haseł użytkowników synchronizowanych do zdalnego serwera. Hashes są generowane wewnątrz klasy **`PasswordHashGenerator`** i post na blogu sugeruje dodanie pewnego kodu, aby klasa wyglądała tak (zauważ użycie `use System.Net` i `WebClient` do eksfiltracji hashy haseł):
```csharp
using System;
using System.Net;
@@ -129,12 +129,12 @@ C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\: Package 'System.Security.C
- Jeśli **Password Writeback** jest włączone, możesz zmienić hasło niektórych użytkowników z Entra ID, a jeśli masz dostęp do sieci AD, połącz się z nimi. Aby uzyskać więcej informacji, sprawdź sekcję [Az Connect Sync](./az-connect-sync.md), ponieważ funkcja resetowania hasła jest konfigurowana za pomocą tego agenta.
- W tym momencie Cloud Sync również pozwala na **"Microsoft Entra ID do AD"**, ale po dłuższym czasie odkryłem, że NIE MOŻE synchronizować użytkowników EntraID do AD i że może synchronizować tylko użytkowników z EntraID, którzy zostali zsynchronizowani z hashem hasła i pochodzą z domeny, która należy do tego samego lasu domenowego, do którego synchronizujemy, jak można przeczytać w [https://learn.microsoft.com/en-us/entra/identity/hybrid/group-writeback-cloud-sync#supported-groups-and-scale-limits](https://learn.microsoft.com/en-us/entra/identity/hybrid/group-writeback-cloud-sync#supported-groups-and-scale-limits):
- W tej chwili Cloud Sync również pozwala na **"Microsoft Entra ID do AD"**, ale po dłuższym czasie odkryłem, że NIE MOŻE synchronizować użytkowników EntraID do AD i że może synchronizować tylko użytkowników z EntraID, którzy zostali zsynchronizowani z hashem hasła i pochodzą z domeny, która należy do tego samego lasu domenowego, co domena, do której synchronizujemy, jak można przeczytać w [https://learn.microsoft.com/en-us/entra/identity/hybrid/group-writeback-cloud-sync#supported-groups-and-scale-limits](https://learn.microsoft.com/en-us/entra/identity/hybrid/group-writeback-cloud-sync#supported-groups-and-scale-limits):
> - Te grupy mogą zawierać tylko zsynchronizowanych użytkowników lokalnych i/lub dodatkowe grupy zabezpieczeń utworzone w chmurze.
> - Lokalne konta użytkowników, które są synchronizowane i są członkami tej grupy zabezpieczeń utworzonej w chmurze, mogą pochodzić z tej samej domeny lub z różnych domen, ale wszystkie muszą pochodzić z tego samego lasu.
Tak więc powierzchnia ataku (i użyteczność) tej usługi jest znacznie ograniczona, ponieważ atakujący musiałby skompromitować początkowy AD, z którego użytkownicy są synchronizowani, aby skompromitować użytkownika w innej domenie (i obie muszą być w tym samym lesie najwyraźniej).
Tak więc powierzchnia ataku (i użyteczność) tej usługi jest znacznie ograniczona, ponieważ atakujący musiałby skompromitować początkowe AD, z którego użytkownicy są synchronizowani, aby skompromitować użytkownika w innej domenie (a obie muszą być w tym samym lesie najwyraźniej).
### Enumeration
```bash