AWS - Secrets Manager Persistence

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Red Team de HackTricks en AWS)!

Otras formas de apoyar a HackTricks:

Secrets Manager

Para más información, consulta:

pageAWS - Secrets Manager Enum

A través de Políticas de Recursos

Es posible conceder acceso a secretos a cuentas externas a través de políticas de recursos. Consulta la página de Privesc de Secrets Manager para obtener más información. Ten en cuenta que para acceder a un secreto, la cuenta externa también necesitará acceso a la clave KMS que cifra el secreto.

A través de Secrets Rotate Lambda

Para rotar secretos automáticamente se llama a un Lambda configurado. Si un atacante pudiera cambiar el código, podría exfiltrar directamente el nuevo secreto para sí mismo.

Así es como podría verse el código lambda para tal acción:

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
Aprende hacking en AWS de cero a héroe con htARTE (Experto en Equipo Rojo de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

Última actualización