Az - State Configuration RCE
Ü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, das entwickelt wurde, um 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. Die Operation wird in mehreren Schritten ausgeführt:
Schritt 1 — Dateien erstellen
Benötigte Dateien: Zwei PowerShell-Skripte werden benötigt:
reverse_shell_config.ps1
: Eine Desired State Configuration (DSC)-Datei, die das Payload abruft und ausführt. Sie ist auf GitHub verfügbar.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.
Schritt 3 — Setzen des Speicherkontexts & Hochladen
Die komprimierte Konfigurationsdatei wird mithilfe des Azure-Befehls Set-AzStorageBlobContent in einen vordefinierten Azure-Speichercontainer, azure-pentest, hochgeladen.
Schritt 4 — Vorbereitung des Kali-Box
Der Kali-Server lädt das RevPS.ps1-Payload von einem GitHub-Repository herunter.
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.
Die geplante Aufgabe führt das Payload aus und erlangt SYSTEM-Privilegien.
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 Azure Automation DSC.
Last updated