mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 11:07:37 -08:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat
This commit is contained in:
@@ -10,13 +10,13 @@ Pour plus d'informations, consultez :
|
||||
../aws-services/aws-secrets-manager-enum.md
|
||||
{{#endref}}
|
||||
|
||||
### Lire les secrets
|
||||
### Lire Secrets
|
||||
|
||||
Les **secrets eux-mêmes sont des informations sensibles**, [consultez la page privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md) pour apprendre comment les lire.
|
||||
|
||||
### DoS — Changer la valeur du secret
|
||||
### DoS — Changer la valeur du Secret
|
||||
|
||||
En changeant la valeur du secret, vous pourriez **DoS l'ensemble des systèmes qui dépendent de cette valeur.**
|
||||
En changeant la valeur du Secret, vous pourriez **DoS tous les systèmes qui dépendent de cette valeur.**
|
||||
|
||||
> [!WARNING]
|
||||
> Notez que les valeurs précédentes sont également stockées, il est donc facile de revenir à la valeur précédente.
|
||||
@@ -28,11 +28,11 @@ aws secretsmanager put-secret-value \
|
||||
```
|
||||
### DoS Change KMS key
|
||||
|
||||
Si l'attaquant dispose de la permission secretsmanager:UpdateSecret, il peut configurer le secret pour qu'il utilise une KMS key appartenant à l'attaquant. Cette KMS key est initialement configurée de sorte que n'importe qui puisse y accéder et l'utiliser, ce qui permet de mettre à jour le secret avec la nouvelle clé. Si la clé n'était pas accessible, le secret n'aurait pas pu être mis à jour.
|
||||
Si l'attaquant dispose de l'autorisation secretsmanager:UpdateSecret, il peut configurer le secret pour qu'il utilise une KMS key appartenant à l'attaquant. Cette clé est initialement configurée de manière à ce que n'importe qui puisse y accéder et l'utiliser, ce qui rend possible la mise à jour du secret avec la nouvelle clé. Si la clé n'était pas accessible, le secret n'aurait pas pu être mis à jour.
|
||||
|
||||
Après avoir changé la KMS key du secret, l'attaquant modifie la configuration de sa KMS key pour que lui seul puisse y accéder. Ainsi, dans les versions ultérieures du secret, celui-ci sera chiffré avec la nouvelle clé et, faute d'accès à celle-ci, la possibilité de récupérer le secret sera perdue.
|
||||
Après avoir changé la KMS key du secret, l'attaquant modifie la configuration de sa clé pour que lui seul puisse y accéder. Ainsi, dans les versions ultérieures du secret, celui-ci sera chiffré avec la nouvelle clé et, comme personne n'y aura accès, la possibilité de récupérer le secret sera perdue.
|
||||
|
||||
Il est important de noter que cette inaccessibilité ne se produira que sur les versions ultérieures, après que le contenu du secret ait changé, puisque la version actuelle reste chiffrée avec la KMS key originale.
|
||||
Il est important de noter que cette inaccessibilité ne se produira que sur les versions suivantes, après que le contenu du secret ait changé, car la version actuelle est toujours chiffrée avec la KMS key d'origine.
|
||||
```bash
|
||||
aws secretsmanager update-secret \
|
||||
--secret-id MyTestSecret \
|
||||
@@ -40,10 +40,42 @@ aws secretsmanager update-secret \
|
||||
```
|
||||
### DoS Suppression d'un secret
|
||||
|
||||
Le délai minimum pour supprimer un secret est de 7 jours
|
||||
Le nombre minimum de jours pour supprimer un secret est de 7
|
||||
```bash
|
||||
aws secretsmanager delete-secret \
|
||||
--secret-id MyTestSecret \
|
||||
--recovery-window-in-days 7
|
||||
```
|
||||
## secretsmanager:RestoreSecret
|
||||
|
||||
Il est possible de restaurer un secret, ce qui permet de récupérer des secrets programmés pour suppression, puisque la période minimale de suppression des secrets est de 7 jours et la maximale de 30 jours. Avec la permission secretsmanager:GetSecretValue, cela permet d'en extraire le contenu.
|
||||
|
||||
Pour récupérer un secret en cours de suppression, vous pouvez utiliser la commande suivante :
|
||||
```bash
|
||||
aws secretsmanager restore-secret \
|
||||
--secret-id <Secret_Name>
|
||||
```
|
||||
## secretsmanager:DeleteResourcePolicy
|
||||
|
||||
Cette action permet de supprimer la politique de la ressource qui contrôle qui peut accéder à un secret. Cela pourrait conduire à un DoS si la politique de la ressource était configurée pour autoriser l'accès à un ensemble spécifique d'utilisateurs.
|
||||
|
||||
Pour supprimer la politique de la ressource:
|
||||
```bash
|
||||
aws secretsmanager delete-resource-policy \
|
||||
--secret-id <Secret_Name>
|
||||
```
|
||||
## secretsmanager:UpdateSecretVersionStage
|
||||
|
||||
Les états d'un secret servent à gérer les versions d'un secret. AWSCURRENT marque la version active utilisée par les applications, AWSPREVIOUS conserve la version précédente pour pouvoir revenir en arrière si nécessaire, et AWSPENDING est utilisé dans le processus de rotation pour préparer et valider une nouvelle version avant de la rendre courante.
|
||||
|
||||
Les applications lisent toujours la version portant le label AWSCURRENT. Si quelqu'un déplace cette étiquette vers la mauvaise version, les applications utiliseront des identifiants invalides et risquent d'échouer.
|
||||
|
||||
AWSPREVIOUS n'est pas utilisé automatiquement. Cependant, si AWSCURRENT est supprimé ou réattribué de manière incorrecte, il peut sembler que tout fonctionne encore avec la version précédente.
|
||||
```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
|
||||
|
||||
Pour plus d'informations sur le gestionnaire de secrets, consultez :
|
||||
Pour plus d'informations sur Secrets Manager, voir :
|
||||
|
||||
{{#ref}}
|
||||
../aws-services/aws-secrets-manager-enum.md
|
||||
@@ -12,21 +12,24 @@ Pour plus d'informations sur le gestionnaire de secrets, consultez :
|
||||
|
||||
### `secretsmanager:GetSecretValue`
|
||||
|
||||
Un attaquant ayant cette permission peut obtenir la **valeur enregistrée à l'intérieur d'un secret** dans AWS **Secretsmanager**.
|
||||
Un attaquant disposant de cette autorisation peut obtenir la **valeur enregistrée à l'intérieur d'un secret** dans AWS **Secretsmanager**.
|
||||
```bash
|
||||
aws secretsmanager get-secret-value --secret-id <secret_name> # Get value
|
||||
```
|
||||
**Impact potentiel :** Accéder à des données très sensibles dans le service AWS Secrets Manager.
|
||||
**Impact potentiel :** Accès à des données hautement sensibles dans AWS Secrets Manager.
|
||||
|
||||
> [!WARNING]
|
||||
> Notez que même avec la permission `secretsmanager:BatchGetSecretValue`, un attaquant aurait également besoin de `secretsmanager:GetSecretValue` pour récupérer les secrets sensibles.
|
||||
|
||||
### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`)
|
||||
|
||||
Avec les autorisations précédentes, il est possible de **donner accès à d'autres principaux/comptes (même externes)** pour accéder au **secret**. Notez que pour **lire les secrets chiffrés** avec une clé KMS, l'utilisateur doit également avoir **accès à la clé KMS** (plus d'infos sur la [page KMS Enum](../aws-services/aws-kms-enum.md)).
|
||||
Avec les permissions précédentes, il est possible de **donner l'accès à d'autres principals/comptes (même externes)** pour accéder au **secret**. Notez que pour **lire des secrets chiffrés** avec une clé KMS, l'utilisateur doit également avoir **l'accès à la clé KMS** (plus d'infos dans la [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 :
|
||||
policy.json:
|
||||
```json
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
|
||||
Reference in New Issue
Block a user