AWS - Elastic Beanstalk Enum
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
Elastic Beanstalk
Amazon Elastic Beanstalk fournit une plateforme simplifiĂ©e pour dĂ©ployer, gĂ©rer et mettre Ă lâĂ©chelle des applications et services web. Il prend en charge une variĂ©tĂ© de langages de programmation et de frameworks, tels que Java, .NET, PHP, Node.js, Python, Ruby et Go, ainsi que des conteneurs Docker. Le service est compatible avec des serveurs largement utilisĂ©s, y compris Apache, Nginx, Passenger et IIS.
Elastic Beanstalk offre un moyen simple et flexible de dĂ©ployer vos applications dans le cloud AWS, sans avoir Ă se soucier de lâinfrastructure sous-jacente. Il gĂšre automatiquement les dĂ©tails de la provisionnement de capacitĂ©, de lâĂ©quilibrage de charge, de la mise Ă lâĂ©chelle et de la surveillance de la santĂ© des applications, vous permettant de vous concentrer sur lâĂ©criture et le dĂ©ploiement de votre code.
Lâinfrastructure créée par Elastic Beanstalk est gĂ©rĂ©e par des Groupes dâAutoscaling dans EC2 (avec un Ă©quilibreur de charge). Ce qui signifie quâĂ la fin de la journĂ©e, si vous compromettez lâhĂŽte, vous devez connaĂźtre EC2 :
AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum
De plus, si Docker est utilisĂ©, il est possible dâutiliser ECS.
Application & Environnements
Dans AWS Elastic Beanstalk, les concepts dâune âapplicationâ et dâun âenvironnementâ servent des objectifs diffĂ©rents et ont des rĂŽles distincts dans le processus de dĂ©ploiement.
Application
- Une application dans Elastic Beanstalk est un conteneur logique pour le code source, les environnements et les configurations de votre application. Elle regroupe diffĂ©rentes versions de votre code dâapplication et vous permet de les gĂ©rer en tant quâentitĂ© unique.
- Lorsque vous crĂ©ez une application, vous fournissez un nom et une description, mais aucune ressource nâest provisionnĂ©e Ă ce stade. Câest simplement un moyen dâorganiser et de gĂ©rer votre code et les ressources associĂ©es.
- Vous pouvez avoir plusieurs versions dâapplication au sein dâune application. Chaque version correspond Ă une version spĂ©cifique de votre code, qui peut ĂȘtre dĂ©ployĂ©e dans un ou plusieurs environnements.
Environnement
- Un environnement est une instance provisionnĂ©e de votre application fonctionnant sur lâinfrastructure AWS. Câest lĂ oĂč le code de votre application est dĂ©ployĂ© et exĂ©cutĂ©. Elastic Beanstalk provisionne les ressources nĂ©cessaires (par exemple, instances EC2, Ă©quilibreurs de charge, groupes dâauto-scaling, bases de donnĂ©es) en fonction de la configuration de lâenvironnement.
- Chaque environnement exécute une seule version de votre application, et vous pouvez avoir plusieurs environnements pour différents objectifs, tels que le développement, les tests, la mise en scÚne et la production.
- Lorsque vous crĂ©ez un environnement, vous choisissez une plateforme (par exemple, Java, .NET, Node.js, etc.) et un type dâenvironnement (par exemple, serveur web ou travailleur). Vous pouvez Ă©galement personnaliser la configuration de lâenvironnement pour contrĂŽler divers aspects de lâinfrastructure et des paramĂštres de lâapplication.
2 types dâEnvironnements
- Environnement de Serveur Web : Il est conçu pour hĂ©berger et servir des applications web et des API. Ces applications gĂšrent gĂ©nĂ©ralement les requĂȘtes HTTP/HTTPS entrantes. Lâenvironnement de serveur web provisionne des ressources telles que des instances EC2, des Ă©quilibreurs de charge et des groupes dâauto-scaling pour gĂ©rer le trafic entrant, gĂ©rer la capacitĂ© et garantir la haute disponibilitĂ© de lâapplication.
- Environnement de Travailleur : Il est conçu pour traiter des tĂąches en arriĂšre-plan, qui sont souvent des opĂ©rations longues ou gourmandes en ressources qui ne nĂ©cessitent pas de rĂ©ponses immĂ©diates aux clients. Lâenvironnement de travailleur provisionne des ressources comme des instances EC2 et des groupes dâauto-scaling, mais il nâa pas dâĂ©quilibreur de charge car il ne gĂšre pas directement les requĂȘtes HTTP/HTTPS. Au lieu de cela, il consomme des tĂąches Ă partir dâune file dâattente Amazon Simple Queue Service (SQS), qui agit comme un tampon entre lâenvironnement de travailleur et les tĂąches quâil traite.
Sécurité
Lors de la crĂ©ation dâune application dans Beanstalk, il y a 3 options de sĂ©curitĂ© trĂšs importantes Ă choisir :
- Paire de clĂ©s EC2 : Ce sera la clĂ© SSH qui pourra accĂ©der aux instances EC2 exĂ©cutant lâapplication.
- Profil dâinstance IAM : Câest le profil dâinstance que les instances auront (privilĂšges IAM).
- Le rĂŽle gĂ©nĂ©rĂ© automatiquement sâappelle
aws-elasticbeanstalk-ec2-roleet a des accĂšs intĂ©ressants sur tous les ECS, tous les SQS, DynamoDB elasticbeanstalk et elasticbeanstalk S3 en utilisant les politiques gĂ©rĂ©es par AWS : AWSElasticBeanstalkWebTier, AWSElasticBeanstalkMulticontainerDocker, AWSElasticBeanstalkWorkerTier. - RĂŽle de service : Câest le rĂŽle que le service AWS utilisera pour effectuer toutes les actions nĂ©cessaires. A ma connaissance, un utilisateur AWS ordinaire ne peut pas accĂ©der Ă ce rĂŽle.
- Ce rĂŽle gĂ©nĂ©rĂ© par AWS sâappelle
aws-elasticbeanstalk-service-roleet utilise les politiques gérées par AWS AWSElasticBeanstalkEnhancedHealth et AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy
Par défaut, la version de métadonnées 1 est désactivée :
.png)
Exposition
Les donnĂ©es de Beanstalk sont stockĂ©es dans un bucket S3 avec le nom suivant : elasticbeanstalk-<region>-<acc-id> (si elles ont Ă©tĂ© créées dans la console AWS). Ă lâintĂ©rieur de ce bucket, vous trouverez le code source de lâapplication tĂ©lĂ©chargĂ©.
LâURL de la page web créée est http://<webapp-name>-env.<random>.<region>.elasticbeanstalk.com/
Warning
Si vous obtenez un accĂšs en lecture sur le bucket, vous pouvez lire le code source et mĂȘme trouver des identifiants sensibles dessus.
Si vous obtenez un accĂšs en Ă©criture sur le bucket, vous pourriez modifier le code source pour compromettre le rĂŽle IAM que lâapplication utilise la prochaine fois quâelle est exĂ©cutĂ©e.
ĂnumĂ©ration
# Find S3 bucket
ACCOUNT_NUMBER=<account_number>
for r in us-east-1 us-east-2 us-west-1 us-west-2 ap-south-1 ap-south-2 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-southeast-1 ap-southeast-2 ap-southeast-3 ca-central-1 eu-central-1 eu-central-2 eu-west-1 eu-west-2 eu-west-3 eu-north-1 sa-east-1 af-south-1 ap-east-1 eu-south-1 eu-south-2 me-south-1 me-central-1; do aws s3 ls elasticbeanstalk-$r-$ACCOUNT_NUMBER 2>/dev/null && echo "Found in: elasticbeanstalk-$r-$ACCOUNT_NUMBER"; done
# Get apps and URLs
aws elasticbeanstalk describe-applications # List apps
aws elasticbeanstalk describe-application-versions # Get apps & bucket name with source code
aws elasticbeanstalk describe-environments # List envs
aws elasticbeanstalk describe-environments | grep -E "EndpointURL|CNAME"
aws elasticbeanstalk describe-configuration-settings --application-name <app_name> --environment-name <env_name>
aws elasticbeanstalk describe-environment-resources --environment-name <env_name> # Get env info such as SQS used queues
aws elasticbeanstalk describe-instances-health --environment-name <env_name> # Get the instances of an environment
# Get events
aws elasticbeanstalk describe-events
AccÚs non authentifié
AWS - Elastic Beanstalk Unauthenticated Enum
Persistance
AWS - Elastic Beanstalk Persistence
ĂlĂ©vation de privilĂšges
AWS - Elastic Beanstalk Privesc
Post-exploitation
AWS - Elastic Beanstalk Post Exploitation
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

