Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md

2.6 KiB

AWS - Secrets Manager Persistence

{{#include ../../../banners/hacktricks-training.md}}

Secrets Manager

अधिक जानकारी के लिए देखें:

{{#ref}} ../aws-services/aws-secrets-manager-enum.md {{#endref}}

संसाधन नीतियों के माध्यम से

यह बाहरी खातों को रहस्यों तक पहुँच प्रदान करना संभव है संसाधन नीतियों के माध्यम से। अधिक जानकारी के लिए Secrets Manager Privesc पृष्ठ देखें। ध्यान दें कि एक रहस्य तक पहुँचने के लिए, बाहरी खाते को रहस्य को एन्क्रिप्ट करने वाले KMS कुंजी तक भी पहुँच की आवश्यकता होगी

Secrets Rotate Lambda के माध्यम से

स्वचालित रूप से रहस्यों को घुमाने के लिए एक कॉन्फ़िगर किया गया Lambda कॉल किया जाता है। यदि एक हमलावर कोड को बदल सकता है, तो वह सीधे नए रहस्य को अपने लिए बाहर निकाल सकता है।

यहाँ इस प्रकार की कार्रवाई के लिए लैम्ब्डा कोड ऐसा दिख सकता है:

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}}