From 493ec5dee1e87482c5db1996b629b87de37efca0 Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 10 Jan 2025 17:42:13 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation --- .../az-automation-accounts-privesc.md | 26 +++++++++---------- .../az-services/az-automation-accounts.md | 22 +++++++--------- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md index 451667993..898a1264e 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md @@ -10,14 +10,14 @@ Aby uzyskać więcej informacji, sprawdź: ../az-services/az-automation-accounts.md {{#endref}} -### Hybrid Workers +### Hybrid Workers Group Pamiętaj, że jeśli w jakiś sposób atakujący może wykonać dowolny runbook (dowolny kod) w hybrydowym workerze, to **przejdzie do lokalizacji VM**. Może to być maszyna lokalna, VPC innej chmury lub nawet VM w Azure. -Ponadto, jeśli hybrydowy worker działa w Azure z innymi przypisanymi tożsamościami zarządzanymi, runbook będzie mógł uzyskać dostęp do **tożsamości zarządzanej runbooka oraz wszystkich tożsamości zarządzanych VM z usługi metadanych**. +Ponadto, jeśli hybrydowy worker działa w Azure z innymi przypisanymi tożsamościami zarządzanymi, runbook będzie miał dostęp do **tożsamości zarządzanej runbooka oraz wszystkich tożsamości zarządzanych VM z usługi metadanych**. > [!TIP] -> Pamiętaj, że **usługa metadanych** ma inny adres URL (**`http://169.254.169.254`**) niż usługa, z której uzyskuje się token tożsamości zarządzanej konta automatyzacji (**`IDENTITY_ENDPOINT`**). +> Pamiętaj, że **usługa metadanych** ma inny adres URL (**`http://169.254.169.254`**) niż usługa, z której pobierany jest token tożsamości zarządzanej konta automatyzacji (**`IDENTITY_ENDPOINT`**). ### `Microsoft.Automation/automationAccounts/jobs/write`, `Microsoft.Automation/automationAccounts/runbooks/draft/write`, `Microsoft.Automation/automationAccounts/jobs/output/read`, `Microsoft.Automation/automationAccounts/runbooks/publish/action` (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Automation/automationAccounts/runbooks/write`) @@ -38,7 +38,7 @@ $creds.GetNetworkCredential().password' ``` Zauważ, jak poprzedni skrypt może być użyty do **wycieku nazwy użytkownika i hasła** poświadczenia oraz wartości **zaszyfrowanej zmiennej** przechowywanej w Koncie Automatyzacji. -Uprawnienie **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** pozwala użytkownikowi na publikowanie Runbooka w Koncie Automatyzacji, aby zmiany zostały zastosowane: +Uprawnienie **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** pozwala użytkownikowi na publikację Runbooka w Koncie Automatyzacji, aby zmiany zostały zastosowane: ```bash az automation runbook publish \ --resource-group \ @@ -58,13 +58,13 @@ Uprawnienie **`Microsoft.Automation/automationAccounts/jobs/output/read`** pozwa az rest --method GET \ --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Automation/automationAccounts//jobs//output?api-version=2023-11-01" ``` -Jeśli nie ma utworzonych Runbooków, lub chcesz stworzyć nowy, będziesz potrzebować **uprawnień `Microsoft.Resources/subscriptions/resourcegroups/read` oraz `Microsoft.Automation/automationAccounts/runbooks/write`** aby to zrobić za pomocą: +Jeśli nie ma utworzonych Runbooków lub chcesz utworzyć nowy, będziesz potrzebować **uprawnień `Microsoft.Resources/subscriptions/resourcegroups/read` oraz `Microsoft.Automation/automationAccounts/runbooks/write`** aby to zrobić za pomocą: ```bash az automation runbook create --automation-account-name --resource-group --name --type PowerShell ``` ### `Microsoft.Automation/automationAccounts/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` -To uprawnienie pozwala użytkownikowi na **przypisanie zarządzanej tożsamości użytkownika** do Konta Automatyzacji za pomocą: +To uprawnienie pozwala użytkownikowi na **przypisanie tożsamości zarządzanej przez użytkownika** do Konta Automatyzacji za pomocą: ```bash az rest --method PATCH \ --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Automation/automationAccounts/?api-version=2020-01-13-preview" \ @@ -129,7 +129,7 @@ az rest --method PUT \ Dzięki uprawnieniu **`Microsoft.Automation/automationAccounts/webhooks/write`** możliwe jest utworzenie nowego Webhooka dla Runbooka w ramach konta Automatyzacji za pomocą następującego polecenia. -Zauważ, że będziesz musiał **wskazać URI webhooka** z tokenem do użycia. +Zauważ, że musisz **wskazać URI webhooka** z tokenem do użycia. ```bash az rest --method PUT \ --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Automation/automationAccounts//webhooks/?api-version=2018-06-30" \ @@ -217,23 +217,23 @@ az rest --method PUT \ } }' ``` -### Niestandardowe Środowiska Uruchomieniowe +### Custom Runtime Environments -Jeśli konto automatyzacji używa niestandardowego środowiska uruchomieniowego, może być możliwe nadpisanie niestandardowego pakietu środowiska złośliwym kodem (takim jak **backdoor**). W ten sposób, za każdym razem, gdy uruchamiany jest runbook korzystający z tego niestandardowego środowiska, a niestandardowy pakiet jest ładowany, złośliwy kod zostanie wykonany. +Jeśli konto automatyzacji używa niestandardowego środowiska uruchomieniowego, może być możliwe nadpisanie niestandardowego pakietu środowiska uruchomieniowego złośliwym kodem (takim jak **backdoor**). W ten sposób, za każdym razem, gdy uruchamiany jest runbook korzystający z tego niestandardowego środowiska, a niestandardowy pakiet jest ładowany, złośliwy kod zostanie wykonany. -### Kompromitacja Konfiguracji Stanu +### Compromising State Configuration **Sprawdź pełny post w:** [**https://medium.com/cepheisecurity/abusing-azure-dsc-remote-code-execution-and-privilege-escalation-ab8c35dd04fe**](https://medium.com/cepheisecurity/abusing-azure-dsc-remote-code-execution-and-privilege-escalation-ab8c35dd04fe) -- Krok 1 — Utwórz Pliki +- Krok 1 — Utwórz pliki -**Wymagane Pliki:** Potrzebne są dwa skrypty PowerShell: +**Wymagane pliki:** Potrzebne są dwa skrypty PowerShell: 1. `reverse_shell_config.ps1`: Plik Desired State Configuration (DSC), który pobiera i wykonuje ładunek. Można go uzyskać z [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/reverse_shell_config.ps1). 2. `push_reverse_shell_config.ps1`: Skrypt do publikacji konfiguracji na VM, dostępny na [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/push_reverse_shell_config.ps1). **Dostosowanie:** Zmienne i parametry w tych plikach muszą być dostosowane do specyficznego środowiska użytkownika, w tym nazwy zasobów, ścieżki plików oraz identyfikatory serwera/ładunku. -- Krok 2 — Spakuj Plik Konfiguracyjny +- Krok 2 — Spakuj plik konfiguracyjny Plik `reverse_shell_config.ps1` jest kompresowany do pliku `.zip`, co czyni go gotowym do transferu do Azure Storage Account. ```powershell diff --git a/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md b/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md index 360443fb2..d4f1928ec 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md +++ b/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md @@ -4,7 +4,7 @@ ## Podstawowe Informacje -Konta Automatyzacji Azure to usługi w chmurze w Microsoft Azure, które pomagają **automatyzować zadania** takie jak zarządzanie zasobami, konfiguracja i aktualizacje w środowiskach Azure i lokalnych. Oferują **Runbooki** (skrypty do automatyzacji, które są wykonywane), **harmonogramy** oraz **grupy pracowników hybrydowych** do uruchamiania automatycznych **zadań**, umożliwiając infrastrukturę jako kod (IaC) oraz automatyzację procesów w celu poprawy efektywności i spójności w zarządzaniu zasobami w chmurze. +Konta Automatyzacji Azure to usługi w chmurze w Microsoft Azure, które pomagają **automatyzować zadania** takie jak zarządzanie zasobami, konfiguracja i aktualizacje w środowiskach Azure i lokalnych. Oferują **Runbooki** (skrypty do automatyzacji, które są wykonywane), **harmonogramy** oraz **grupy pracowników hybrydowych** do uruchamiania automatycznych **zadań**, umożliwiając infrastrukturę jako kod (IaC) oraz automatyzację procesów w celu poprawy efektywności i spójności w zarządzaniu zasobami chmurowymi. ### Ustawienia @@ -14,17 +14,15 @@ Konta Automatyzacji Azure to usługi w chmurze w Microsoft Azure, które pomagaj - **Połączenia**: Służą do przechowywania **informacji o połączeniach** z zewnętrznymi usługami. Mogą zawierać **wrażliwe informacje**. - **Dostęp do sieci**: Może być ustawiony na **publiczny** lub **prywatny**. -## Runbooki i Zadania +### Runbooki i Zadania Runbook w Azure Automation to **skrypt, który automatycznie wykonuje zadania** w Twoim środowisku chmurowym. Runbooki mogą być pisane w PowerShell, Pythonie lub edytorach graficznych. Pomagają automatyzować zadania administracyjne, takie jak zarządzanie VM, łatanie lub kontrole zgodności. W **kodzie** znajdującym się w **Runbookach** mogą znajdować się **wrażliwe informacje** (takie jak poświadczenia). -Przejdź do `Konta Automatyzacji` --> `` --> `Runbooki/Zadania/Grupy pracowników hybrydowych/Zadania obserwatora/poświadczenia/zmienne/certyfikaty/połączenia` +**Zadanie to instancja wykonania Runbooka**. Gdy uruchamiasz Runbook, tworzone jest Zadanie, aby śledzić to wykonanie. Każde zadanie zawiera: -**Zadanie to instancja wykonania Runbooka**. Kiedy uruchamiasz Runbook, tworzone jest Zadanie, aby śledzić to wykonanie. Każde zadanie zawiera: - -- **Status**: W kolejce, W trakcie, Zakończone, Nieudane, Wstrzymane. +- **Status**: W kolejce, W trakcie, Zakończone, Niepowodzenie, Wstrzymane. - **Wynik**: Rezultat wykonania Runbooka. - **Czas rozpoczęcia i zakończenia**: Kiedy zadanie się rozpoczęło i zakończyło. @@ -40,7 +38,7 @@ Istnieją 3 główne sposoby na wykonanie Runbooka: ### Kontrola Źródła -Umożliwia importowanie Runbooków z **Github, Azure Devops (Git) i Azure Devops (TFVC)**. Możliwe jest wskazanie, aby publikować Runbooki repozytorium do konta automatyzacji Azure, a także możliwe jest wskazanie, aby **synchronizować zmiany z repozytorium** do konta automatyzacji Azure. +Umożliwia importowanie Runbooków z **Github, Azure Devops (Git) i Azure Devops (TFVC)**. Możliwe jest wskazanie, aby publikować Runbooki z repozytorium do konta automatyzacji Azure, a także możliwe jest wskazanie, aby **synchronizować zmiany z repozytorium** do konta automatyzacji Azure. Gdy synchronizacja jest włączona, w **repozytorium Github tworzony jest webhook** do wyzwalania synchronizacji za każdym razem, gdy wystąpi zdarzenie push. Przykład adresu URL webhooka: `https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=DRjQyFiOrUtz%2fw7o23XbDpOlTe1%2bUqPQm4pQH2WBfJg%3d` @@ -59,18 +57,18 @@ Podczas tworzenia Runbooka można wybrać środowisko uruchomieniowe. Domyślnie - **Python 3.8** - **Python 2.7** -Jednak możliwe jest również **tworzenie własnych środowisk**, używając jednego z tych jako bazy. W przypadku Pythona możliwe jest przesyłanie pakietów `.whl` do środowiska, które będą używane. W przypadku PowerShell możliwe jest przesyłanie pakietów `.zip` z modułami, które mają być dostępne w czasie uruchomienia. +Jednak możliwe jest również **utworzenie własnych środowisk**, używając jednego z tych jako bazy. W przypadku Pythona możliwe jest przesyłanie pakietów `.whl` do środowiska, które będą używane. W przypadku PowerShella możliwe jest przesyłanie pakietów `.zip` z modułami, które mają być dostępne w czasie uruchomienia. ### Grupy Pracowników Hybrydowych -W Azure Automation domyślnym środowiskiem wykonawczym dla runbooków jest **Azure Sandbox**, platforma w chmurze zarządzana przez Azure, odpowiednia do zadań związanych z zasobami Azure. Jednak to środowisko ma ograniczenia, takie jak ograniczony dostęp do zasobów lokalnych oraz ograniczenia dotyczące czasu wykonania i wykorzystania zasobów. Aby przezwyciężyć te ograniczenia, stosowane są Grupy Pracowników Hybrydowych. Grupa Pracowników Hybrydowych składa się z **jednego lub więcej Hybrydowych Pracowników Runbooków zainstalowanych na Twoich własnych maszynach**, czy to lokalnych, w innych środowiskach chmurowych, czy na VM Azure. Taka konfiguracja pozwala na wykonywanie runbooków bezpośrednio na tych maszynach, zapewniając bezpośredni dostęp do lokalnych zasobów, możliwość uruchamiania dłuższych i bardziej zasobożernych zadań oraz elastyczność w interakcji z środowiskami poza bezpośrednim zasięgiem Azure. +W Azure Automation domyślnym środowiskiem wykonawczym dla runbooków jest **Azure Sandbox**, platforma chmurowa zarządzana przez Azure, odpowiednia do zadań związanych z zasobami Azure. Jednak to środowisko ma ograniczenia, takie jak ograniczony dostęp do zasobów lokalnych oraz ograniczenia dotyczące czasu wykonania i wykorzystania zasobów. Aby przezwyciężyć te ograniczenia, stosuje się Grupy Pracowników Hybrydowych. Grupa Pracowników Hybrydowych składa się z **jednego lub więcej Hybrydowych Pracowników Runbooków zainstalowanych na Twoich własnych maszynach**, czy to lokalnych, w innych środowiskach chmurowych, czy na VM Azure. Taka konfiguracja pozwala na wykonywanie runbooków bezpośrednio na tych maszynach, zapewniając bezpośredni dostęp do lokalnych zasobów, możliwość uruchamiania dłuższych i bardziej zasobożernych zadań oraz elastyczność w interakcji z środowiskami poza bezpośrednim zasięgiem Azure. Gdy tworzona jest grupa pracowników hybrydowych, należy wskazać **poświadczenia** do użycia. Istnieją 2 opcje: - **Domyślne poświadczenia**: Nie musisz podawać poświadczeń, a runbooki będą wykonywane wewnątrz VM jako **System**. - **Specyficzne poświadczenia**: Musisz podać nazwę obiektu poświadczeń w koncie automatyzacji, które będą używane do wykonywania **runbooków wewnątrz VM**. W związku z tym w tym przypadku możliwe jest **kradzież ważnych poświadczeń** dla VM. -Dlatego, jeśli możesz wybrać uruchomienie **Runbooka** w **Windows Hybrid Worker**, będziesz wykonywać **dowolne polecenia** wewnątrz zewnętrznej maszyny jako **System** (fajna technika pivotowania). +Dlatego, jeśli możesz wybrać uruchomienie **Runbooka** w **Hybrydowym Pracowniku**, będziesz wykonywać **dowolne polecenia** wewnątrz zewnętrznej maszyny jako **System** (fajna technika pivotowania). Ponadto, jeśli hybrydowy pracownik działa w Azure z innymi zarządzanymi tożsamościami, runbook będzie mógł uzyskać dostęp do **zarządzanej tożsamości runbooka oraz wszystkich zarządzanych tożsamości VM z usługi metadanych**. @@ -80,7 +78,7 @@ Ponadto, jeśli hybrydowy pracownik działa w Azure z innymi zarządzanymi tożs ### Konfiguracja Stanu (SC) >[!WARNING] -> Jak wskazano w [dokumentacji](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), Konfiguracja Stanu Automatyzacji Azure zostanie wycofana 30 września 2027 roku i zastąpiona przez [Azure Machine Configuration](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview). +> Jak wskazano w [dokumentacji](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), Konfiguracja Stanu Automatyzacji Azure zostanie wycofana 30 września 2027 roku i zastąpiona przez [Konfigurację Maszyn Azure](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview). Konta Automatyzacji również wspierają **Konfigurację Stanu (SC)**, która jest funkcją pomagającą w **konfigurowaniu** i **utrzymywaniu** **stanu** Twoich VM. Możliwe jest **tworzenie** i **stosowanie** konfiguracji DSC do **maszyn Windows** i **Linux**. @@ -170,7 +168,7 @@ az rest --method GET \ # Get the source control setting of an automation account (if any) ## inside the output it's possible to see if the autoSync is enabled, if the publishRunbook is enabled and the repo URL -aaz automation source-control list --automation-account-name --resource-group +az automation source-control list --automation-account-name --resource-group # Get custom runtime environments ## Check in defaultPackages for custom ones, by default Python envs won't have anything here and PS1 envs will have "az" and "azure cli"