diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md index 2272197ec..2fb423e62 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md @@ -4,22 +4,22 @@ ## Secrets Manager -Para mais informações veja: +Para mais informações, veja: {{#ref}} ../aws-services/aws-secrets-manager-enum.md {{#endref}} -### Read Secrets +### Ler Secrets -Os **secrets são, por si só, informações sensíveis**, [check the privesc page](../aws-privilege-escalation/aws-secrets-manager-privesc.md) para aprender como lê-las. +Os **secrets em si são informações sensíveis**, [veja a página de privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md) para aprender como lê-los. -### DoS Change Secret Value +### DoS - Alterar valor do secret -Ao alterar o valor do secret, você pode **causar DoS em todos os sistemas que dependem desse valor.** +Ao alterar o valor do secret, você pode **DoS todo o sistema que depende desse valor.** > [!WARNING] -> Observe que os valores anteriores também são armazenados, então é fácil simplesmente voltar ao valor anterior. +> Observe que valores anteriores também são armazenados, então é fácil voltar ao valor anterior. ```bash # Requires permission secretsmanager:PutSecretValue aws secretsmanager put-secret-value \ @@ -28,11 +28,11 @@ aws secretsmanager put-secret-value \ ``` ### DoS Change KMS key -Se o atacante tiver a permissão secretsmanager:UpdateSecret, ele pode configurar o secret para usar uma KMS key de propriedade do atacante. Essa KMS key é inicialmente configurada de forma que qualquer pessoa possa acessá-la e usá-la, então atualizar o secret com a nova KMS key é possível. Se a KMS key não fosse acessível, o secret não poderia ser atualizado. +Se o attacker tiver a permissão secretsmanager:UpdateSecret, ele pode configurar o secret para usar uma KMS key pertencente ao attacker. Essa KMS key é inicialmente configurada de modo que qualquer pessoa pode acessá‑la e usá‑la, portanto atualizar o secret com a nova KMS key é possível. Se a KMS key não fosse acessível, o secret não poderia ser atualizado. -Depois de alterar a KMS key do secret, o atacante modifica a configuração da sua KMS key para que apenas ele possa acessá-la. Dessa forma, nas versões subsequentes do secret, ele será criptografado com a nova KMS key e, como não haverá acesso a ela, a capacidade de recuperar o secret será perdida. +Depois de alterar a KMS key do secret, o attacker modifica a configuração da sua KMS key para que apenas ele possa acessá‑la. Assim, nas versões subsequentes do secret, este será criptografado com a nova KMS key e, como não haverá acesso a ela, a capacidade de recuperar o secret será perdida. -É importante notar que essa inacessibilidade ocorrerá apenas em versões posteriores, após o conteúdo do secret ser alterado, já que a versão atual ainda está criptografada com a KMS key original. +É importante notar que essa inacessibilidade ocorrerá apenas em versões posteriores, após o conteúdo do secret mudar, já que a versão atual ainda está criptografada com a KMS key original. ```bash aws secretsmanager update-secret \ --secret-id MyTestSecret \ @@ -46,4 +46,36 @@ aws secretsmanager delete-secret \ --secret-id MyTestSecret \ --recovery-window-in-days 7 ``` +## secretsmanager:RestoreSecret + +É possível restaurar um secret, o que permite restaurar secrets que tenham sido agendados para exclusão, já que o período mínimo de exclusão para secrets é de 7 dias e o máximo é de 30 dias. Em conjunto com a permissão secretsmanager:GetSecretValue, isso possibilita recuperar o conteúdo deles. + +Para recuperar um secret que está em processo de exclusão, você pode usar o seguinte comando: +```bash +aws secretsmanager restore-secret \ +--secret-id +``` +## secretsmanager:DeleteResourcePolicy + +Esta ação permite excluir a resource policy que controla quem pode acessar um secret. Isso pode causar um DoS se a resource policy tiver sido configurada para permitir acesso a um conjunto específico de usuários. + +Para excluir a resource policy: +```bash +aws secretsmanager delete-resource-policy \ +--secret-id +``` +## secretsmanager:UpdateSecretVersionStage + +Os estados de um segredo são usados para gerenciar suas versões. AWSCURRENT marca a versão ativa que as aplicações usam, AWSPREVIOUS mantém a versão anterior para que você possa reverter se necessário, e AWSPENDING é usado no processo de rotação para preparar e validar uma nova versão antes de torná-la a atual. + +As aplicações sempre leem a versão com AWSCURRENT. Se alguém mover esse rótulo para a versão errada, as aplicações usarão credenciais inválidas e podem falhar. + +AWSPREVIOUS não é usado automaticamente. No entanto, se AWSCURRENT for removido ou reatribuído incorretamente, pode parecer que tudo ainda está funcionando com a versão anterior. +```bash +aws secretsmanager update-secret-version-stage \ +--secret-id \ +--version-stage AWSCURRENT \ +--move-to-version-id \ +--remove-from-version-id +``` {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md index 664769960..beeac0330 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-secrets-manager-privesc.md @@ -4,7 +4,7 @@ ## Secrets Manager -Para mais informações sobre o Secrets Manager, consulte: +Para mais informações sobre Secrets Manager, veja: {{#ref}} ../aws-services/aws-secrets-manager-enum.md @@ -12,15 +12,18 @@ Para mais informações sobre o Secrets Manager, consulte: ### `secretsmanager:GetSecretValue` -Um atacante com esta permissão pode obter o **valor salvo dentro de um segredo** no AWS **Secretsmanager**. +Um atacante com essa permissão pode obter o **valor salvo dentro de um secret** na AWS **Secretsmanager**. ```bash aws secretsmanager get-secret-value --secret-id # Get value ``` **Impacto Potencial:** Acesso a dados altamente sensíveis dentro do serviço AWS Secrets Manager. +> [!WARNING] +> Observe que mesmo com a permissão `secretsmanager:BatchGetSecretValue`, um atacante também precisaria da permissão `secretsmanager:GetSecretValue` para recuperar os segredos sensíveis. + ### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`) -Com as permissões anteriores, é possível **dar acesso a outros principais/contas (mesmo externos)** para acessar o **segredo**. Note que, para **ler segredos criptografados** com uma chave KMS, o usuário também precisa ter **acesso à chave KMS** (mais informações na [página KMS Enum](../aws-services/aws-kms-enum.md)). +Com as permissões anteriores, é possível **conceder acesso a outros principals/accounts (mesmo externos)** para acessar o **segredo**. Observe que, para **ler segredos criptografados** com uma chave KMS, o usuário também precisa ter **acesso à chave KMS** (mais informações na [KMS Enum page](../aws-services/aws-kms-enum.md)). ```bash aws secretsmanager list-secrets aws secretsmanager get-resource-policy --secret-id