AWS - Elastic Beanstalk Privesc
Elastic Beanstalk
Mehr Informationen über Elastic Beanstalk unter:
AWS - Elastic Beanstalk EnumUm sensible Aktionen in Beanstalk durchzuführen, benötigen Sie viele sensible Berechtigungen in vielen verschiedenen Diensten. Sie können beispielsweise die Berechtigungen überprüfen, die an arn:aws:iam::aws:policy/AdministratorAccess-AWSElasticBeanstalk
erteilt wurden.
elasticbeanstalk:RebuildEnvironment
, S3-Schreibberechtigungen & viele andere
elasticbeanstalk:RebuildEnvironment
, S3-Schreibberechtigungen & viele andereMit Schreibberechtigungen über den S3-Bucket, der den Code der Umgebung enthält, und Berechtigungen zum Neuaufbau der Anwendung (es ist elasticbeanstalk:RebuildEnvironment
erforderlich und einige weitere in Bezug auf S3
, EC2
und Cloudformation
), können Sie den Code ändern, die App neu erstellen und beim nächsten Zugriff auf die App wird Ihr neuer Code ausgeführt, was es dem Angreifer ermöglicht, die Anwendung und die IAM-Rollenanmeldeinformationen zu kompromittieren.
elasticbeanstalk:CreateApplication
, elasticbeanstalk:CreateEnvironment
, elasticbeanstalk:CreateApplicationVersion
, elasticbeanstalk:UpdateEnvironment
, iam:PassRole
, und mehr...
elasticbeanstalk:CreateApplication
, elasticbeanstalk:CreateEnvironment
, elasticbeanstalk:CreateApplicationVersion
, elasticbeanstalk:UpdateEnvironment
, iam:PassRole
, und mehr...Die genannten Berechtigungen sowie mehrere S3
, EC2
, cloudformation
, autoscaling
und elasticloadbalancing
Berechtigungen sind erforderlich, um ein einfaches Elastic Beanstalk-Szenario von Grund auf zu erstellen.
Erstellen einer AWS Elastic Beanstalk-Anwendung:
Erstellen Sie eine AWS Elastic Beanstalk-Umgebung (unterstützte Plattformen):
Wenn eine Umgebung bereits erstellt wurde und Sie keine neue erstellen möchten, könnten Sie einfach die vorhandene aktualisieren.
Verpacken Sie Ihren Anwendungscode und die Abhängigkeiten in eine ZIP-Datei:
Lade die ZIP-Datei in einen S3-Bucket hoch:
Erstellen Sie eine AWS Elastic Beanstalk-Anwendungsversion:
Bereitstellen der Anwendungsversion in Ihrer AWS Elastic Beanstalk-Umgebung:
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
Zunächst müssen Sie eine legitime Beanstalk-Umgebung mit dem Code erstellen, den Sie im Opfer gemäß den vorherigen Schritten ausführen möchten. Möglicherweise ein einfaches Zip mit diesen 2 Dateien:
Anforderungen:
Sobald Sie Ihre eigene Beanstalk-Umgebung ausgeführt haben und Ihre Reverse-Shell haben, ist es an der Zeit, sie in die Umgebung des Opfers zu migrieren. Dazu müssen Sie die Bucket-Richtlinie aktualisieren Ihres Beanstalk S3-Buckets, damit das Opfer darauf zugreifen kann (Beachten Sie, dass dies den Bucket für ALLE öffnet):
Last updated