mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 19:11:41 -08:00
Translated ['src/pentesting-cloud/azure-security/az-services/az-automati
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
# Az - Contas de Automação
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Informações Básicas
|
||||
|
||||
As Contas de Automação do Azure são serviços baseados em nuvem na Microsoft Azure que ajudam a **automatizar tarefas** como gerenciamento de recursos, configuração e atualizações em ambientes Azure e locais. Elas fornecem **Runbooks** (scripts para automação que são executados), **agendas** e **grupos de trabalhadores híbridos** para executar **trabalhos de automação**, permitindo infraestrutura como código (IaC) e automação de processos para melhorar a eficiência e a consistência na gestão de recursos em nuvem.
|
||||
As Contas de Automação do Azure são serviços baseados em nuvem na Microsoft Azure que ajudam a **automatizar tarefas** como gerenciamento de recursos, configuração e atualizações em ambientes Azure e locais. Elas fornecem **Runbooks** (scripts para automação que são executados), **agendas** e **grupos de trabalhadores híbridos** para executar **trabalhos** de automação, permitindo infraestrutura como código (IaC) e automação de processos para melhorar a eficiência e a consistência na gestão de recursos em nuvem.
|
||||
|
||||
### Configurações
|
||||
|
||||
@@ -16,7 +16,7 @@ As Contas de Automação do Azure são serviços baseados em nuvem na Microsoft
|
||||
|
||||
### Runbooks & Trabalhos
|
||||
|
||||
Um Runbook na Automação do Azure é um **script que executa tarefas automaticamente** dentro do seu ambiente em nuvem. Os runbooks podem ser escritos em PowerShell, Python ou editores gráficos. Eles ajudam a automatizar tarefas administrativas, como gerenciamento de VMs, aplicação de patches ou verificações de conformidade.
|
||||
Um Runbook na Automação do Azure é um **script que executa tarefas automaticamente** dentro do seu ambiente em nuvem. Os runbooks podem ser escritos em PowerShell, Python ou editores gráficos. Eles ajudam a automatizar tarefas administrativas como gerenciamento de VM, aplicação de patches ou verificações de conformidade.
|
||||
|
||||
No **código** localizado dentro dos **Runbooks** pode conter **informações sensíveis** (como credenciais).
|
||||
|
||||
@@ -61,7 +61,7 @@ No entanto, também é possível **criar seus próprios ambientes**, usando um d
|
||||
|
||||
### Grupos de Trabalhadores Híbridos
|
||||
|
||||
Na Automação do Azure, o ambiente de execução padrão para runbooks é o **Azure Sandbox**, uma plataforma baseada em nuvem gerenciada pelo Azure, adequada para tarefas envolvendo recursos do Azure. No entanto, esse sandbox tem limitações, como acesso restrito a recursos locais e restrições de tempo de execução e uso de recursos. Para superar essas limitações, são empregados Grupos de Trabalhadores Híbridos. Um Grupo de Trabalhadores Híbridos consiste em **um ou mais Trabalhadores de Runbook Híbridos instalados em suas próprias máquinas**, seja em locais, em outros ambientes de nuvem ou VMs do Azure. Essa configuração permite que os runbooks sejam executados diretamente nessas máquinas, proporcionando acesso direto a recursos locais, a capacidade de executar tarefas mais longas e intensivas em recursos, e a flexibilidade de interagir com ambientes além do alcance imediato do Azure.
|
||||
Na Automação do Azure, o ambiente de execução padrão para runbooks é o **Azure Sandbox**, uma plataforma baseada em nuvem gerenciada pelo Azure, adequada para tarefas envolvendo recursos do Azure. No entanto, esse sandbox tem limitações, como acesso restrito a recursos locais e restrições de tempo de execução e uso de recursos. Para superar essas limitações, são empregados Grupos de Trabalhadores Híbridos. Um Grupo de Trabalhadores Híbridos consiste em **um ou mais Trabalhadores de Runbook Híbridos instalados em suas próprias máquinas**, seja em locais, em outros ambientes de nuvem ou VMs do Azure. Essa configuração permite que runbooks sejam executados diretamente nessas máquinas, proporcionando acesso direto a recursos locais, a capacidade de executar tarefas mais longas e intensivas em recursos, e a flexibilidade de interagir com ambientes além do alcance imediato do Azure.
|
||||
|
||||
Quando um grupo de trabalhadores híbridos é criado, é necessário indicar as **credenciais** a serem usadas. Existem 2 opções:
|
||||
|
||||
@@ -73,12 +73,12 @@ Portanto, se você puder escolher executar um **Runbook** em um **Trabalhador H
|
||||
Além disso, se o trabalhador híbrido estiver sendo executado no Azure com outras Identidades Gerenciadas anexadas, o runbook poderá acessar a **identidade gerenciada do runbook e todas as identidades gerenciadas da VM a partir do serviço de metadados**.
|
||||
|
||||
> [!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 identidade gerenciada da conta de automação (**`IDENTITY_ENDPOINT`**).
|
||||
> 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`**).
|
||||
|
||||
### Configuração de Estado (SC)
|
||||
|
||||
>[!WARNING]
|
||||
> Como indicado na [documentação](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), a Configuração de Estado do Azure Automation será descontinuada em 30 de setembro de 2027 e substituída pela [Configuração de Máquina do Azure](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview).
|
||||
> [!WARNING]
|
||||
> Conforme indicado na [documentação](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), a Configuração de Estado do Azure Automation será descontinuada em 30 de setembro de 2027 e substituída pela [Configuração de Máquina do Azure](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview).
|
||||
|
||||
As Contas de Automação também suportam **Configuração de Estado (SC)**, que é um recurso que ajuda a **configurar** e **manter** o **estado** de suas VMs. É possível **criar** e **aplicar** configurações DSC em máquinas **Windows** e **Linux**.
|
||||
|
||||
@@ -238,4 +238,4 @@ Get-AzAutomationHybridWorkerGroup -AutomationAccountName <AUTOMATION-ACCOUNT> -R
|
||||
- [https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview)
|
||||
- [https://github.com/rootsecdev/Azure-Red-Team#runbook-automation](https://github.com/rootsecdev/Azure-Red-Team#runbook-automation)
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# Az - Container Instances
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Informações Básicas
|
||||
|
||||
Azure Container Instances (ACI) fornecem uma **forma sem servidor e sob demanda** de executar **containers** na nuvem Azure. Você pode **implantar** um ou vários containers em um grupo com **computação escalável**, **opções de rede** e a flexibilidade de se conectar a **outros serviços Azure** (como Storage, Virtual Networks ou Container Registries).
|
||||
|
||||
Como são cargas de trabalho **efêmeras**, você não precisa gerenciar a infraestrutura subjacente da VM — a Azure cuida disso para você. No entanto, de uma **perspectiva de segurança ofensiva**, é crucial entender como **permissões**, **identidades**, **configurações de rede** e **logs** podem revelar superfícies de ataque e potenciais configurações incorretas.
|
||||
Como são cargas de trabalho **efêmeras**, você não precisa gerenciar a infraestrutura subjacente da VM — a Azure cuida disso para você. No entanto, de uma **perspectiva de segurança ofensiva**, é crucial entender como **permissões**, **identidades**, **configurações de rede** e **logs** podem revelar superfícies de ataque e possíveis configurações incorretas.
|
||||
|
||||
### Configurações
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Az - Container Registry
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Informações Básicas
|
||||
|
||||
Azure Container Registry (ACR) é um registro privado e seguro que permite **armazenar, gerenciar e acessar imagens de contêiner na nuvem Azure**. Ele se integra perfeitamente com vários serviços do Azure, fornecendo fluxos de trabalho automatizados de construção e implantação em grande escala. Com recursos como geo-replicação e verificação de vulnerabilidades, o ACR ajuda a garantir segurança e conformidade de nível empresarial para aplicações conteinerizadas.
|
||||
Azure Container Registry (ACR) é um registro privado e seguro que permite **armazenar, gerenciar e acessar imagens de contêiner na nuvem Azure**. Ele se integra perfeitamente com vários serviços Azure, fornecendo fluxos de trabalho automatizados de construção e implantação em grande escala. Com recursos como geo-replicação e verificação de vulnerabilidades, o ACR ajuda a garantir segurança e conformidade de nível empresarial para aplicativos conteinerizados.
|
||||
|
||||
### Permissões
|
||||
|
||||
@@ -20,7 +20,7 @@ Estas são as **diferentes permissões** [de acordo com a documentação](https:
|
||||
|
||||
Existem também alguns **papéis integrados** que podem ser atribuídos, e também é possível criar **papéis personalizados**.
|
||||
|
||||

|
||||

|
||||
|
||||
### Autenticação
|
||||
|
||||
@@ -30,7 +30,7 @@ Existem também alguns **papéis integrados** que podem ser atribuídos, e tamb
|
||||
Existem 4 maneiras de autenticar-se em um ACR:
|
||||
|
||||
- **Com Entra ID**: Esta é a **maneira padrão** de autenticar-se em um ACR. Ele usa o comando **`az acr login`** para autenticar-se no ACR. Este comando irá **armazenar as credenciais** no arquivo **`~/.docker/config.json`**. Além disso, se você estiver executando este comando de um ambiente sem acesso a um socket docker, como em um **cloud shell**, é possível usar a flag **`--expose-token`** para obter o **token** para autenticar-se no ACR. Então, para autenticar, você precisa usar como nome de usuário `00000000-0000-0000-0000-000000000000`, como: `docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN`
|
||||
- **Com uma conta de administrador**: O usuário administrador está desativado por padrão, mas pode ser ativado e então será possível acessar o registro com o **nome de usuário** e **senha** da conta de administrador com permissões totais para o registro. Isso ainda é suportado porque alguns serviços do Azure o utilizam. Note que **2 senhas** são criadas para este usuário e ambas são válidas. Você pode ativá-lo com `az acr update -n <acrName> --admin-enabled true`. Note que o nome de usuário geralmente é o nome do registro (e não `admin`).
|
||||
- **Com uma conta de administrador**: O usuário administrador está desativado por padrão, mas pode ser ativado e então será possível acessar o registro com o **nome de usuário** e **senha** da conta de administrador com permissões totais para o registro. Isso ainda é suportado porque alguns serviços Azure o utilizam. Note que **2 senhas** são criadas para este usuário e ambas são válidas. Você pode ativá-lo com `az acr update -n <acrName> --admin-enabled true`. Note que o nome de usuário geralmente é o nome do registro (e não `admin`).
|
||||
- **Com um token**: É possível criar um **token** com um **`scope map`** específico (permissões) para acessar o registro. Então, é possível usar este nome de token como nome de usuário e algumas das senhas geradas para autenticar-se no registro com `docker login -u <registry-name> -p <password> aregistry-url>`
|
||||
- **Com um Service Principal**: É possível criar um **service principal** e atribuir um papel como **`AcrPull`** para puxar imagens. Então, será possível **fazer login no registro** usando o appId do SP como nome de usuário e um segredo gerado como senha.
|
||||
|
||||
@@ -67,7 +67,7 @@ O recurso de **soft-delete** permite que você **recupere um registro excluído*
|
||||
|
||||
### Webhooks
|
||||
|
||||
É possível **criar webhooks** dentro dos registros. Neste webhook, é necessário especificar a URL onde uma **solicitação será enviada sempre que uma ação de push ou delete for realizada**. Além disso, os Webhooks podem indicar um escopo para indicar os repositórios (imagens) que serão afetados. Por exemplo, 'foo:*' significa eventos sob o repositório 'foo'.
|
||||
É possível **criar webhooks** dentro dos registros. Neste webhook, é necessário especificar a URL onde uma **solicitação será enviada sempre que uma ação de push ou delete for realizada**. Além disso, os Webhooks podem indicar um escopo para indicar os repositórios (imagens) que serão afetados. Por exemplo, 'foo:\*' significa eventos sob o repositório 'foo'.
|
||||
|
||||
Do ponto de vista de um atacante, é interessante verificar isso **antes de realizar qualquer ação** no registro e removê-lo temporariamente, se necessário, para evitar ser detectado.
|
||||
|
||||
@@ -75,13 +75,13 @@ Do ponto de vista de um atacante, é interessante verificar isso **antes de real
|
||||
|
||||
Isso basicamente permite **espelhar as imagens** de um registro para outro, geralmente localizado no local.
|
||||
|
||||
Possui 2 modos: **ReadOnly** e **ReadWrite**. No primeiro, as imagens são apenas **puxadas** do registro de origem, e no segundo, as imagens também podem ser **enviadas** para o registro de origem.
|
||||
Possui 2 modos: **ReadOnly** e **ReadWrite**. No primeiro, as imagens são apenas **baixadas** do registro de origem, e no segundo, as imagens também podem ser **enviadas** para o registro de origem.
|
||||
|
||||
Para que os clientes acessem o registro a partir da Azure, um **token** é gerado quando o registro conectado é utilizado.
|
||||
|
||||
### Execuções & Tarefas
|
||||
### Execuções e Tarefas
|
||||
|
||||
Execuções & Tarefas permite executar ações relacionadas a contêineres no Azure que você normalmente precisaria fazer localmente ou em um pipeline de CI/CD. Por exemplo, você pode **construir, enviar e executar imagens no registro**.
|
||||
Execuções e Tarefas permitem executar ações relacionadas a contêineres no Azure que você normalmente precisaria fazer localmente ou em um pipeline de CI/CD. Por exemplo, você pode **construir, enviar e executar imagens no registro**.
|
||||
|
||||
A maneira mais fácil de construir e executar um contêiner é usando uma Execução regular:
|
||||
```bash
|
||||
@@ -94,7 +94,7 @@ az acr run --registry mycontainerregistry008 --cmd '$Registry/sample/hello-world
|
||||
```
|
||||
No entanto, isso irá acionar execuções que não são muito interessantes do ponto de vista de um atacante, pois não têm nenhuma identidade gerenciada anexada a elas.
|
||||
|
||||
No entanto, **tasks** podem ter uma **identidade gerenciada de sistema e de usuário** anexada a elas. Essas tasks são as úteis para **escalar privilégios** no contêiner. Na seção de escalonamento de privilégios, é possível ver como usar tasks para escalar privilégios.
|
||||
No entanto, **tasks** podem ter uma **identidade gerenciada pelo sistema e pelo usuário** anexada a elas. Essas tasks são as úteis para **escalar privilégios** no contêiner. Na seção de escalonamento de privilégios, é possível ver como usar tasks para escalar privilégios.
|
||||
|
||||
### Cache
|
||||
|
||||
@@ -143,7 +143,7 @@ az acr cache list --registry <registry-name>
|
||||
# Get cache details
|
||||
az acr cache show --name <cache-name> --registry <registry-name>
|
||||
```
|
||||
## Escalação de Privilégios & Pós Exploração
|
||||
## Escalação de Privilégios & Pós-Exploração
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-automation-accounts-privesc.md
|
||||
@@ -154,4 +154,4 @@ az acr cache show --name <cache-name> --registry <registry-name>
|
||||
- [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli)
|
||||
- [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager)
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -471,12 +471,12 @@ window.search = window.search || {};
|
||||
showResults(true);
|
||||
}
|
||||
|
||||
fetch(path_to_root + 'searchindex.json')
|
||||
fetch('https://raw.githubusercontent.com/HackTricks-wiki/hacktricks-cloud/refs/heads/master/searchindex.json')
|
||||
.then(response => response.json())
|
||||
.then(json => init(json))
|
||||
.catch(error => { // Try to load searchindex.js if fetch failed
|
||||
var script = document.createElement('script');
|
||||
script.src = path_to_root + 'searchindex.js';
|
||||
script.src = 'https://raw.githubusercontent.com/HackTricks-wiki/hacktricks-cloud/refs/heads/master/searchindex.js';
|
||||
script.onload = () => init(window.search);
|
||||
document.head.appendChild(script);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user