Az - Automation Account
Basic Information
Z dokumentacji: Azure Automation dostarcza opartą na chmurze automatyzację, aktualizacje systemu operacyjnego i usługę konfiguracji, która wspiera spójną administrację w Twoich środowiskach Azure i nie-Azure. Obejmuje automatyzację procesów, zarządzanie konfiguracją, zarządzanie aktualizacjami, wspólne możliwości i heterogeniczne funkcje.
Są to jak "zaplanowane zadania" w Azure, które pozwalają na wykonywanie rzeczy (działań lub nawet skryptów) w celu zarządzania, sprawdzania i konfigurowania środowiska Azure.
Run As Account
Gdy używany jest Run as Account, tworzy aplikację Azure AD z certyfikatem samopodpisanym, tworzy principal usługi i przypisuje rolę Contributor dla konta w aktualnej subskrypcji (wiele uprawnień). Microsoft zaleca użycie Managed Identity dla konta automatyzacji.
To zostanie usunięte 30 września 2023 i zmienione na Managed Identities.
Runbooks & Jobs
Runbooks pozwalają na wykonywanie dowolnego kodu PowerShell. Może to być wykorzystane przez atakującego do kradzieży uprawnień przypisanego principal (jeśli istnieje). W kodzie Runbooks można również znaleźć wrażliwe informacje (takie jak dane uwierzytelniające).
Jeśli możesz czytać zadania, zrób to, ponieważ zawierają wynik uruchomienia (potencjalne wrażliwe informacje).
Przejdź do Automation Accounts
--> <Select Automation Account>
--> Runbooks/Jobs/Hybrid worker groups/Watcher tasks/credentials/variables/certificates/connections
Hybrid Worker
Runbook może być uruchamiany w kontenerze w Azure lub w Hybrid Worker (maszyna nie-Azure). Log Analytics Agent jest wdrażany na VM, aby zarejestrować go jako hybrydowego pracownika. Zadania hybrydowego pracownika są uruchamiane jako SYSTEM w Windows i jako konto nxautomation w Linux. Każdy Hybrid Worker jest zarejestrowany w Hybrid Worker Group.
Dlatego, jeśli możesz wybrać uruchomienie Runbook w Windows Hybrid Worker, wykonasz dowolne polecenia wewnątrz zewnętrznej maszyny jako System (fajna technika pivotowania).
Compromise State Configuration (SC)
Z dokumentacji: Azure Automation State Configuration to usługa zarządzania konfiguracją Azure, która pozwala na pisanie, zarządzanie i kompilowanie PowerShell Desired State Configuration (DSC) konfiguracji dla węzłów w dowolnej chmurze lub w lokalnym centrum danych. Usługa importuje również DSC Resources i przypisuje konfiguracje do docelowych węzłów, wszystko w chmurze. Możesz uzyskać dostęp do Azure Automation State Configuration w portalu Azure, wybierając State configuration (DSC) w sekcji Configuration Management.
Wrażliwe informacje mogą być znalezione w tych konfiguracjach.
RCE
Możliwe jest wykorzystanie SC do uruchamiania dowolnych skryptów na zarządzanych maszynach.
Enumeration
Utwórz Runbook
Ekstrahowanie poświadczeń i zmiennych zdefiniowanych w koncie automatyzacji za pomocą Run Book
Możesz zrobić to samo, modyfikując istniejący Run Book, i z konsoli internetowej.
Kroki do Ustawienia Zautomatyzowanego Tworzenia Użytkownika o Wysokich Uprawnieniach
1. Zainicjuj Konto Automatyzacji
Wymagana Akcja: Utwórz nowe Konto Automatyzacji.
Specyficzne Ustawienie: Upewnij się, że "Utwórz konto Azure Run As" jest włączone.
2. Importuj i Ustaw Runbook
Źródło: Pobierz przykładowy runbook z MicroBurst GitHub Repository.
Wymagane Akcje:
Importuj runbook do Konta Automatyzacji.
Opublikuj runbook, aby był wykonywalny.
Dołącz webhook do runbooka, umożliwiając zewnętrzne wyzwalacze.
3. Skonfiguruj Moduł AzureAD
Wymagana Akcja: Dodaj moduł AzureAD do Konta Automatyzacji.
Dodatkowy Krok: Upewnij się, że wszystkie moduły Automatyzacji Azure są zaktualizowane do najnowszych wersji.
4. Przydzielanie Uprawnień
Role do Przydzielenia:
Administrator Użytkowników
Właściciel Subskrypcji
Cel: Przydziel te role do Konta Automatyzacji w celu uzyskania niezbędnych uprawnień.
5. Świadomość Potencjalnej Utraty Dostępu
Uwaga: Bądź świadomy, że skonfigurowanie takiej automatyzacji może prowadzić do utraty kontroli nad subskrypcją.
6. Wyzwól Tworzenie Użytkownika
Wyzwól webhook, aby utworzyć nowego użytkownika, wysyłając żądanie POST.
Użyj dostarczonego skryptu PowerShell, upewniając się, że zastępujesz
$uri
swoim rzeczywistym adresem URL webhooka i aktualizujesz$AccountInfo
pożądanym nazwą użytkownika i hasłem.
References
Last updated