mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-15 14:23:16 -08:00
1.8 KiB
1.8 KiB
AWS - Persistencia de Secrets Manager
{{#include ../../../banners/hacktricks-training.md}}
Secrets Manager
Para más información, consulta:
{{#ref}} ../aws-services/aws-secrets-manager-enum.md {{#endref}}
A través de Políticas de Recursos
Es posible otorgar acceso a secretos a cuentas externas a través de políticas de recursos. Consulta la página de Privesc de Secrets Manager para 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 Lambda de Rotación de Secretos
Para rotar secretos automáticamente se llama a una Lambda configurada. 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 de 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
{{#include ../../../banners/hacktricks-training.md}}