AWS - Elastic Beanstalk Privesc
Elastic Beanstalk
Plus d'informations sur Elastic Beanstalk dans :
AWS - Elastic Beanstalk EnumPour effectuer des actions sensibles dans Beanstalk, vous aurez besoin de beaucoup de permissions sensibles dans de nombreux services différents. Vous pouvez vérifier par exemple les permissions accordées à arn:aws:iam::aws:policy/AdministratorAccess-AWSElasticBeanstalk
elasticbeanstalk:RebuildEnvironment
, autorisations d'écriture S3 et bien d'autres
elasticbeanstalk:RebuildEnvironment
, autorisations d'écriture S3 et bien d'autresAvec des autorisations d'écriture sur le bucket S3 contenant le code de l'environnement et des autorisations pour rebâtir l'application (il est nécessaire d'avoir elasticbeanstalk:RebuildEnvironment
et quelques autres liées à S3
, EC2
et Cloudformation
), vous pouvez modifier le code, rebâtir l'application et la prochaine fois que vous accéderez à l'application, elle exécutera votre nouveau code, permettant à l'attaquant de compromettre l'application et les informations d'identification du rôle IAM associé.
elasticbeanstalk:CreateApplication
, elasticbeanstalk:CreateEnvironment
, elasticbeanstalk:CreateApplicationVersion
, elasticbeanstalk:UpdateEnvironment
, iam:PassRole
, et plus...
elasticbeanstalk:CreateApplication
, elasticbeanstalk:CreateEnvironment
, elasticbeanstalk:CreateApplicationVersion
, elasticbeanstalk:UpdateEnvironment
, iam:PassRole
, et plus...Les autorisations mentionnées ainsi que plusieurs autorisations pour S3
, EC2
, cloudformation
, autoscaling
et elasticloadbalancing
sont nécessaires pour créer un scénario Elastic Beanstalk brut à partir de zéro.
Créer une application AWS Elastic Beanstalk :
Créez un environnement AWS Elastic Beanstalk (plateformes prises en charge):
Si un environnement est déjà créé et que vous ne souhaitez pas en créer un nouveau, vous pouvez simplement mettre à jour celui qui existe.
Emballez votre code d'application et ses dépendances dans un fichier ZIP :
Téléchargez le fichier ZIP dans un compartiment S3 :
Créez une version d'application AWS Elastic Beanstalk :
Déployez la version de l'application dans votre environnement AWS Elastic Beanstalk :
elasticbeanstalk:CreateApplicationVersion
, elasticbeanstalk:UpdateEnvironment
, cloudformation:GetTemplate
, cloudformation:DescribeStackResources
, cloudformation:DescribeStackResource
, autoscaling:DescribeAutoScalingGroups
, autoscaling:SuspendProcesses
, autoscaling:SuspendProcesses
elasticbeanstalk:CreateApplicationVersion
, elasticbeanstalk:UpdateEnvironment
, cloudformation:GetTemplate
, cloudformation:DescribeStackResources
, cloudformation:DescribeStackResource
, autoscaling:DescribeAutoScalingGroups
, autoscaling:SuspendProcesses
, autoscaling:SuspendProcesses
Tout d'abord, vous devez créer un environnement Beanstalk légitime avec le code que vous souhaitez exécuter dans la victime en suivant les étapes précédentes. Potentiellement un simple zip contenant ces 2 fichiers:
Une fois que vous avez votre propre environnement Beanstalk en cours d'exécution avec votre shell inversé, il est temps de le migrer vers l'environnement de la victime. Pour ce faire, vous devez mettre à jour la stratégie du Bucket de votre bucket S3 Beanstalk afin que la victime puisse y accéder (Notez que cela ouvrira le Bucket à TOUT LE MONDE) :
Last updated