AWS - Secrets Manager Persistence

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)!

Autres façons de soutenir HackTricks:

Secrets Manager

Pour plus d'informations, consultez :

pageAWS - Secrets Manager Enum

Via les politiques de ressources

Il est possible de accorder l'accès aux secrets à des comptes externes via des politiques de ressources. Consultez la page de Privilège d'élévation Secrets Manager pour plus d'informations. Notez que pour accéder à un secret, le compte externe aura également besoin d'accéder à la clé KMS cryptant le secret.

Via Secrets Rotate Lambda

Pour faire tourner les secrets automatiquement, un Lambda configuré est appelé. Si un attaquant pouvait modifier le code, il pourrait directement exfiltrer le nouveau secret vers lui-même.

Voici à quoi pourrait ressembler le code lambda pour une telle action :

import boto3

def rotate_secrets(event, context):
# Create a Secrets Manager client
client = boto3.client('secretsmanager')

# Retrieve the current secret value
secret_value = client.get_secret_value(SecretId='example_secret_id')['SecretString']

# Rotate the secret by updating its value
new_secret_value = rotate_secret(secret_value)
client.update_secret(SecretId='example_secret_id', SecretString=new_secret_value)

def rotate_secret(secret_value):
# Perform the rotation logic here, e.g., generate a new password

# Example: Generate a new password
new_secret_value = generate_password()

return new_secret_value

def generate_password():
# Example: Generate a random password using the secrets module
import secrets
import string
password = ''.join(secrets.choice(string.ascii_letters + string.digits) for i in range(16))
return password
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge HackTricks AWS)!

D'autres façons de soutenir HackTricks:

Dernière mise à jour