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

This commit is contained in:
Translator
2025-10-04 09:09:40 +00:00
parent dfe23fbb88
commit 65b5af3d25
2 changed files with 49 additions and 14 deletions

View File

@@ -4,22 +4,22 @@
## Secrets Manager
Per maggiori informazioni consulta:
Per ulteriori informazioni consulta:
{{#ref}}
../aws-services/aws-secrets-manager-enum.md
{{#endref}}
### Read Secrets
### Leggere i Secrets
I secrets stessi sono informazioni sensibili, [consulta la pagina privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md) per imparare come leggerli.
I **secrets stessi sono informazioni sensibili**, [consulta la pagina privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md) per imparare come leggerli.
### DoS Change Secret Value
### DoS — Cambiare il valore del Secret
Cambiando il valore del secret potresti **causare il DoS di tutti i sistemi che dipendono da quel valore.**
Modificando il valore del secret potresti causare un DoS a tutti i sistemi che dipendono da quel valore.
> [!WARNING]
> Nota che i valori precedenti sono anche salvati, quindi è facile tornare al valore precedente.
> Nota che i valori precedenti sono comunque memorizzati, quindi è facile tornare al valore precedente.
```bash
# Requires permission secretsmanager:PutSecretValue
aws secretsmanager put-secret-value \
@@ -28,17 +28,17 @@ aws secretsmanager put-secret-value \
```
### DoS Change KMS key
Se l'attaccante ha la permissione secretsmanager:UpdateSecret, può configurare il secret per usare una KMS key di sua proprietà. Quella key viene inizialmente configurata in modo che chiunque possa accedervi e usarla, quindi è possibile aggiornare il secret con la nuova key. Se la key non fosse stata accessibile, il secret non avrebbe potuto essere aggiornato.
Se l'attaccante ha la permission secretsmanager:UpdateSecret, può configurare il secret per usare una KMS key posseduta dall'attaccante. Quella key è inizialmente impostata in modo che chiunque possa accedervi e usarla, quindi aggiornare il secret con la nuova key è possibile. Se la key non fosse accessibile, il secret non potrebbe essere aggiornato.
Dopo aver cambiato la key per il secret, l'attaccante modifica la configurazione della propria key in modo che solo lui possa accedervi. In questo modo, nelle versioni successive del secret il contenuto sarà cifrato con la nuova key e, poiché non c'è accesso a essa, la possibilità di recuperare il secret verrebbe persa.
Dopo aver cambiato la key per il secret, l'attaccante modifica la configurazione della sua key in modo che solo lui possa accedervi. In questo modo, nelle versioni successive del secret, sarà criptato con la nuova key e, poiché non c'è accesso ad essa, la possibilità di recuperare il secret verrebbe persa.
È importante notare che questa inaccessibilità si verificherà solo nelle versioni successive, dopo che il contenuto del secret cambia, poiché la versione corrente è ancora cifrata con la KMS key originale.
È importante notare che questa indisponibilità si verificherà solo nelle versioni successive, dopo che il contenuto del secret cambia, poiché la versione corrente è ancora criptata con la KMS key originale.
```bash
aws secretsmanager update-secret \
--secret-id MyTestSecret \
--kms-key-id arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
```
### DoS Deleting Secret
### DoS Eliminazione dei secret
Il numero minimo di giorni per eliminare un secret è 7
```bash
@@ -46,4 +46,36 @@ aws secretsmanager delete-secret \
--secret-id MyTestSecret \
--recovery-window-in-days 7
```
## secretsmanager:RestoreSecret
È possibile ripristinare un secret: questo permette di recuperare secret programmati per la cancellazione, dato che il periodo minimo di cancellazione per i secret è di 7 giorni e il massimo è di 30 giorni. Insieme alla secretsmanager:GetSecretValue permission, ciò permette di recuperarne il contenuto.
Per recuperare un secret in fase di cancellazione, puoi usare il seguente comando:
```bash
aws secretsmanager restore-secret \
--secret-id <Secret_Name>
```
## secretsmanager:DeleteResourcePolicy
Questa azione consente di eliminare la policy della risorsa che controlla chi può accedere a un secret. Questo potrebbe causare un DoS se la policy della risorsa era configurata per consentire l'accesso a un insieme specifico di utenti.
Per eliminare la policy della risorsa:
```bash
aws secretsmanager delete-resource-policy \
--secret-id <Secret_Name>
```
## secretsmanager:UpdateSecretVersionStage
Gli stati di un secret sono usati per gestire le versioni di un secret. AWSCURRENT indica la versione attiva che le applicazioni usano, AWSPREVIOUS mantiene la versione precedente in modo da poter tornare indietro se necessario, e AWSPENDING è usato nel processo di rotation per preparare e convalidare una nuova versione prima di renderla la versione corrente.
Le applicazioni leggono sempre la versione con AWSCURRENT. Se qualcuno sposta quell'etichetta sulla versione sbagliata, le app useranno credenziali non valide e potrebbero fallire.
AWSPREVIOUS non viene usato automaticamente. Tuttavia, se AWSCURRENT viene rimosso o riassegnato in modo errato, potrebbe sembrare che tutto stia ancora girando con la versione precedente.
```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}}

View File

@@ -4,7 +4,7 @@
## Secrets Manager
Per ulteriori informazioni su Secrets Manager, controlla:
Per maggiori informazioni su secrets manager consulta:
{{#ref}}
../aws-services/aws-secrets-manager-enum.md
@@ -12,15 +12,18 @@ Per ulteriori informazioni su Secrets Manager, controlla:
### `secretsmanager:GetSecretValue`
Un attaccante con questo permesso può ottenere il **valore salvato all'interno di un segreto** in AWS **Secretsmanager**.
Un attacker con questa autorizzazione può ottenere il **valore salvato all'interno di un segreto** in AWS **Secretsmanager**.
```bash
aws secretsmanager get-secret-value --secret-id <secret_name> # Get value
```
**Impatto Potenziale:** Accesso a dati altamente sensibili all'interno del servizio AWS secrets manager.
**Impatto potenziale:** Accesso a dati altamente sensibili all'interno del servizio AWS secrets manager.
> [!WARNING]
> Nota che anche avendo il permesso `secretsmanager:BatchGetSecretValue`, un attaccante avrebbe bisogno anche di `secretsmanager:GetSecretValue` per recuperare i segreti sensibili.
### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`)
Con i permessi precedenti è possibile **dare accesso ad altri principi/account (anche esterni)** per accedere al **segreto**. Nota che per **leggere segreti crittografati** con una chiave KMS, l'utente deve anche avere **accesso sulla chiave KMS** (maggiori informazioni nella [pagina KMS Enum](../aws-services/aws-kms-enum.md)).
Con le autorizzazioni precedenti è possibile **concedere ad altri principals/accounts (anche esterni)** l'accesso al **segreto**. Nota che, per **leggere i segreti crittografati** con una KMS key, l'utente deve anche avere **accesso alla KMS key** (maggiori informazioni nella [KMS Enum page](../aws-services/aws-kms-enum.md)).
```bash
aws secretsmanager list-secrets
aws secretsmanager get-resource-policy --secret-id <secret_name>