Translated ['', 'src/pentesting-cloud/aws-security/aws-post-exploitation

This commit is contained in:
Translator
2026-02-23 11:08:10 +00:00
parent 46c838a59b
commit 142ac70b2d
@@ -4,21 +4,21 @@
## KMS
Para mais informações, veja:
Para mais informações, consulte:
{{#ref}}
../../aws-services/aws-kms-enum.md
{{#endref}}
### Encrypt/Decrypt information
### Criptografar/Descriptografar informações
`fileb://` e `file://` são esquemas URI usados em comandos AWS CLI para especificar o caminho para arquivos locais:
`fileb://` and `file://` são esquemas de URI usados em comandos AWS CLI para especificar o caminho para arquivos locais:
- `fileb://:` Lê o arquivo em modo binário, comumente usado para arquivos não textuais.
- `file://:` Lê o arquivo em modo texto, tipicamente usado para arquivos de texto simples, scripts ou JSON que não tenham requisitos de codificação especiais.
- `fileb://:` Lê o arquivo em modo binário, comumente usado para arquivos não-texto.
- `file://:` Lê o arquivo em modo texto, tipicamente usado para arquivos de texto simples, scripts ou JSON que não tenham requisitos especiais de codificação.
> [!TIP]
> Observe que, se você quiser decrypt alguns dados dentro de um arquivo, o arquivo deve conter os dados binários, não dados codificados em base64. (fileb://)
> Observe que, se você quiser descriptografar alguns dados dentro de um arquivo, o arquivo deve conter os dados binários, não dados codificados em base64. (fileb://)
- Usando uma chave **simétrica**
```bash
@@ -60,14 +60,14 @@ aws kms decrypt \
```
### KMS Ransomware
Um atacante com acesso privilegiado ao KMS poderia modificar a política do KMS das chaves e **conceder à sua conta acesso sobre elas**, removendo o acesso concedido à conta legítima.
Um atacante com acesso privilegiado ao KMS pode modificar a política KMS das chaves e **conceder acesso às mesmas à sua própria conta**, removendo o acesso concedido à conta legítima.
Então, os usuários da conta legítima não poderão acessar nenhuma informação de qualquer serviço que tenha sido criptografado com essas chaves, criando um ransomware simples mas eficaz na conta.
Então, os usuários da conta legítima não poderão acessar nenhuma informação de qualquer serviço que tenha sido criptografado com essas chaves, criando um ransomware simples porém eficaz na conta.
> [!WARNING]
> Observe que **AWS managed keys aren't affected** por este ataque, apenas **Customer managed keys**.
>
> Também observe a necessidade de usar o parâmetro **`--bypass-policy-lockout-safety-check`** (a ausência dessa opção no web console torna este ataque possível apenas a partir do CLI).
> Note que **AWS managed keys aren't affected** por este ataque; somente **Customer managed keys**.
> Observe também a necessidade de usar o parâmetro **`--bypass-policy-lockout-safety-check`** (a ausência dessa opção na console da web torna esse ataque possível apenas a partir do CLI).
```bash
# Force policy change
aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
@@ -92,28 +92,28 @@ aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
}
```
> [!CAUTION]
> Observe que se você alterar essa policy e apenas conceder acesso a uma conta externa, e então a partir dessa conta externa tentar definir uma nova policy para **dar o acesso de volta à conta original, você não conseguirá porque a ação Put Polocy não pode ser performada a partir de um cross account**.
> Observe que se você alterar essa policy e apenas conceder acesso a uma conta externa, e então a partir dessa conta externa tentar definir uma nova policy para **restituir o acesso à conta original, você não conseguirá, pois a ação Put Polocy não pode ser executada a partir de uma cross account**.
<figure><img src="../../../images/image (77).png" alt=""><figcaption></figcaption></figure>
### Generic KMS Ransomware
Existe outra maneira de executar um KMS Ransomware global, que envolveria os seguintes passos:
Existe outra maneira de realizar um KMS Ransomware global, que envolveria os seguintes passos:
- Criar uma nova **key with a key material** importada pelo atacante
- **Re-encrypt older data** da vítima que foi criptografada com a versão anterior, usando a nova
- Criar uma nova **key with a key material** importada pelo attacker
- **Re-encrypt older data** da victim que foi encrypted com a versão anterior, usando a nova
- **Delete the KMS key**
- Agora somente o atacante, que possui o original key material, poderia ser capaz de descriptografar os dados criptografados
- Agora somente o attacker, que possui o original key material, poderia decrypt the encrypted data
### Delete Keys via kms:DeleteImportedKeyMaterial
Com a permissão `kms:DeleteImportedKeyMaterial`, um ator pode deletar o key material importado de CMKs com `Origin=EXTERNAL` (CMKs que tenham importado seu key material), tornando-os incapazes de descriptografar dados. Esta ação é destrutiva e irreversível, a menos que material compatível seja reimportado, permitindo que um atacante cause efetivamente perda de dados semelhante a ransomware ao tornar a informação criptografada permanentemente inacessível.
Com a permissão `kms:DeleteImportedKeyMaterial`, um actor pode deletar o imported key material de CMKs com `Origin=EXTERNAL` (CMKs que importaram seu key material), tornando-as incapazes de decrypt data. Esta ação é destrutiva e irreversível a menos que material compatível seja re-importado, permitindo que um attacker cause efetivamente perda de dados do tipo ransomware ao tornar a informação encrypted permanentemente inacessível.
```bash
aws kms delete-imported-key-material --key-id <Key_ID>
```
### Destruir chaves
Destruir chaves pode causar um DoS.
Ao destruir chaves, é possível causar um DoS.
```bash
# Schedule the destoy of a key (min wait time is 7 days)
aws kms schedule-key-deletion \
@@ -121,10 +121,10 @@ aws kms schedule-key-deletion \
--pending-window-in-days 7
```
> [!CAUTION]
> Note que AWS agora **impede que as ações anteriores sejam realizadas a partir de uma conta cross-account:**
> Observe que a AWS agora **impede que as ações anteriores sejam executadas a partir de uma conta cruzada:**
### Alterar ou deletar Alias
Esse ataque exclui ou redireciona aliases do AWS KMS, quebrando a resolução de chaves e causando falhas imediatas em quaisquer serviços que dependam desses aliases, resultando em um denial-of-service. Com permissões como `kms:DeleteAlias` ou `kms:UpdateAlias` um atacante pode remover ou repoint aliases e interromper operações criptográficas (por exemplo, encrypt, describe). Qualquer serviço que referencie o alias em vez do key ID pode falhar até que o alias seja restaurado ou remapeado corretamente.
### Alterar ou excluir Alias
Este ataque exclui ou redireciona AWS KMS aliases, quebrando a resolução de chaves e causando falhas imediatas em quaisquer serviços que dependam desses aliases, resultando em uma negação de serviço. Com permissões como `kms:DeleteAlias` ou `kms:UpdateAlias` um atacante pode remover ou reapontar aliases e interromper operações criptográficas (e.g., encrypt, describe). Qualquer serviço que referencie o alias em vez do key ID pode falhar até que o alias seja restaurado ou remapeado corretamente.
```bash
# Delete Alias
aws kms delete-alias --alias-name alias/<key_alias>
@@ -135,7 +135,7 @@ aws kms update-alias \
--target-key-id <new_target_key>
```
### Cancelar exclusão de chave
Com permissões como `kms:CancelKeyDeletion` e `kms:EnableKey`, um ator pode cancelar uma exclusão agendada de uma AWS KMS customer master key e, posteriormente, reativá-la. Ao fazer isso, a chave é recuperada (inicialmente no estado Disabled) e sua capacidade de descriptografar dados previamente protegidos é restaurada, permitindo exfiltração.
Com permissões como `kms:CancelKeyDeletion` e `kms:EnableKey`, um ator pode cancelar a exclusão agendada de uma customer master key do AWS KMS e, posteriormente, reativá-la. Isso recupera a chave (inicialmente no estado Disabled) e restaura sua capacidade de descriptografar dados anteriormente protegidos, permitindo exfiltration.
```bash
# Firts cancel de deletion
aws kms cancel-key-deletion \
@@ -145,22 +145,22 @@ aws kms cancel-key-deletion \
aws kms enable-key \
--key-id <Key_ID>
```
### Desativar chave
Com a permissão `kms:DisableKey`, um ator pode desativar uma customer master key (CMK) do AWS KMS, impedindo que ela seja usada para criptografia ou descriptografia. Isso interrompe o acesso para quaisquer serviços que dependam dessa CMK e pode causar interrupções imediatas ou uma denial-of-service até que a chave seja reativada.
### Disable Key
Com a permissão `kms:DisableKey`, um ator pode desabilitar uma chave mestra do cliente (CMK) do AWS KMS, impedindo que ela seja usada para criptografia ou descriptografia. Isso interrompe o acesso de quaisquer serviços que dependam dessa CMK e pode causar interrupções imediatas ou um denial-of-service até que a chave seja reativada.
```bash
aws kms disable-key \
--key-id <key_id>
```
### Derivar Segredo Compartilhado
Com a permissão `kms:DeriveSharedSecret`, um ator pode usar uma chave privada armazenada no KMS junto com uma chave pública fornecida pelo usuário para calcular um segredo compartilhado ECDH.
Com a permissão `kms:DeriveSharedSecret`, um ator pode usar uma chave privada mantida pelo KMS mais uma chave pública fornecida pelo usuário para calcular um segredo compartilhado ECDH.
```bash
aws kms derive-shared-secret \
--key-id <key_id> \
--public-key fileb:///<route_to_public_key> \
--key-agreement-algorithm <algorithm>
```
### Falsificação de identidade via `kms:Sign`
Com a permissão `kms:Sign`, um ator pode usar uma CMK armazenada no KMS para assinar criptograficamente dados sem expor a chave privada, produzindo assinaturas válidas que podem permitir falsificação de identidade ou autorizar ações maliciosas.
### Impersonation via kms:Sign
Com a permissão `kms:Sign`, um ator pode usar uma CMK armazenada no KMS para assinar criptograficamente dados sem expor a chave privada, produzindo assinaturas válidas que podem permitir impersonation ou autorizar ações maliciosas.
```bash
aws kms sign \
--key-id <key-id> \
@@ -169,7 +169,7 @@ aws kms sign \
--message-type RAW
```
### DoS with Custom Key Stores
Com permissões como `kms:DeleteCustomKeyStore`, `kms:DisconnectCustomKeyStore` ou `kms:UpdateCustomKeyStore`, um atacante pode modificar, desconectar ou excluir um AWS KMS Custom Key Store (CKS), tornando suas chaves mestras inoperantes. Isso interrompe as operações de criptografia, descriptografia e assinatura para quaisquer serviços que dependam dessas chaves e pode causar um denial-of-service imediato. Por isso, restringir e monitorar essas permissões é essencial.
Com permissões como `kms:DeleteCustomKeyStore`, `kms:DisconnectCustomKeyStore` ou `kms:UpdateCustomKeyStore`, um ator pode modificar, desconectar ou excluir um AWS KMS Custom Key Store (CKS), tornando suas chaves mestres inoperantes. Isso interrompe operações de criptografia, descriptografia e assinatura para quaisquer serviços que dependam dessas chaves e pode causar um denial-of-service imediato. Portanto, restringir e monitorar essas permissões é crítico.
```bash
aws kms delete-custom-key-store --custom-key-store-id <CUSTOM_KEY_STORE_ID>