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, 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:
reverse_shell_config.ps1
: Eine Desired State Configuration (DSC)-Datei, die den Payload abruft und ausführt. Sie ist von GitHub erhältlich.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-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