AWS - Secrets Manager Persistence

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Secrets Manager

Aby uzyskać więcej informacji, sprawdź:

pageAWS - Secrets Manager Enum

Za pomocą polityk zasobów

Możliwe jest udzielenie 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 będzie również potrzebować dostępu do klucza KMS szyfrującego sekret.

Za pomocą funkcji Lambda do rotacji 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 wyprowadzić nowy sekret do siebie.

Tak może wyglądać kod funkcji Lambda dla 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
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated