AWS - Elastic Beanstalk Privesc
Elastic Beanstalk
Mais informações sobre o Elastic Beanstalk em:
AWS - Elastic Beanstalk EnumPara realizar ações sensíveis no Beanstalk, você precisará ter muitas permissões sensíveis em muitos serviços diferentes. Você pode verificar, por exemplo, as permissões concedidas a arn:aws:iam::aws:policy/AdministratorAccess-AWSElasticBeanstalk
elasticbeanstalk:RebuildEnvironment
, permissões de escrita no S3 e muitas outras
elasticbeanstalk:RebuildEnvironment
, permissões de escrita no S3 e muitas outrasCom permissões de escrita no bucket S3 que contém o código do ambiente e permissões para reconstruir a aplicação (é necessário elasticbeanstalk:RebuildEnvironment
e algumas outras relacionadas ao S3
, EC2
e Cloudformation
), você pode modificar o código, reconstruir o aplicativo e na próxima vez que acessar o aplicativo, ele irá executar seu novo código, permitindo que o atacante comprometa a aplicação e as credenciais da função IAM associada.
elasticbeanstalk:CreateApplication
, elasticbeanstalk:CreateEnvironment
, elasticbeanstalk:CreateApplicationVersion
, elasticbeanstalk:UpdateEnvironment
, iam:PassRole
, e mais...
elasticbeanstalk:CreateApplication
, elasticbeanstalk:CreateEnvironment
, elasticbeanstalk:CreateApplicationVersion
, elasticbeanstalk:UpdateEnvironment
, iam:PassRole
, e mais...As permissões mencionadas, juntamente com várias permissões de S3
, EC2
, cloudformation
, autoscaling
e elasticloadbalancing
são necessárias para criar um cenário básico do Elastic Beanstalk do zero.
Criar uma aplicação AWS Elastic Beanstalk:
Criar um ambiente AWS Elastic Beanstalk (plataformas suportadas):
Se um ambiente já foi criado e você não quer criar um novo, você poderia apenas atualizar o existente.
Empacote o código da sua aplicação e as dependências em um arquivo ZIP:
Fazer upload do arquivo ZIP para um bucket S3:
Criar uma versão de aplicativo do AWS Elastic Beanstalk:
Implemente a versão da aplicação no seu ambiente 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
Primeiramente, você precisa criar um ambiente Beanstalk legítimo com o código que você gostaria de executar na vítima seguindo os passos anteriores. Potencialmente um zip simples contendo esses 2 arquivos:
Depois de ter o seu próprio ambiente Beanstalk em execução com o seu rev shell, é hora de migrá-lo para o ambiente da vítima. Para fazer isso, você precisa atualizar a Política do Bucket do seu bucket S3 do beanstalk para que a vítima possa acessá-lo (Observe que isso abrirá o Bucket para TODOS):
Last updated