AWS - Secrets Manager Persistence

Wsparcie dla HackTricks

Secrets Manager

Aby uzyskać więcej informacji, sprawdź:

AWS - Secrets Manager Enum

Poprzez Polityki Zasobów

Możliwe jest przyznanie dostępu do sekretów zewnętrznym kontom za pomocą polityk zasobów. Sprawdź stronę Privesc Secrets Manager po więcej informacji. Zauważ, że aby uzyskać dostęp do sekretu, zewnętrzne konto również musi mieć dostęp do klucza KMS szyfrującego sekret.

Poprzez Lambda Rotację Sekretów

Aby automatycznie rotować sekrety, wywoływana jest skonfigurowana Lambda. Jeśli atakujący mógłby zmienić kod, mógłby bezpośrednio wyeksfiltrować nowy sekret do siebie.

Tak mógłby wyglądać kod lambda do takiej akcji:

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
Wsparcie HackTricks

Last updated