mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 19:11:41 -08:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-post-exploitation
This commit is contained in:
@@ -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 <Secret_Name>
|
||||
```
|
||||
## 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 <Secret_Name>
|
||||
```
|
||||
## 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 <your-secret-name-or-arn> \
|
||||
--version-stage AWSCURRENT \
|
||||
--move-to-version-id <target-version-id> \
|
||||
--remove-from-version-id <previous-version-id>
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.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 <secret_name> # 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 <secret_name>
|
||||
|
||||
Reference in New Issue
Block a user