AWS - Codepipeline Privesc

Reading time: 3 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

codepipeline

Für weitere Informationen zu codepipeline siehe:

AWS - DataPipeline, CodePipeline & CodeCommit Enum

iam:PassRole, codepipeline:CreatePipeline, codebuild:CreateProject, codepipeline:StartPipelineExecution

Beim Erstellen einer Code-Pipeline können Sie eine codepipeline IAM-Rolle angeben, die ausgeführt werden soll, daher könnten Sie diese kompromittieren.

Neben den vorherigen Berechtigungen benötigen Sie Zugriff auf den Ort, an dem der Code gespeichert ist (S3, ECR, github, bitbucket...)

Ich habe dies getestet, indem ich den Prozess auf der Webseite durchgeführt habe. Die zuvor angegebenen Berechtigungen sind die nicht List/Get-Berechtigungen, die benötigt werden, um eine Code-Pipeline zu erstellen, aber um sie im Web zu erstellen, benötigen Sie auch: codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<several>

Während der Erstellung des Build-Projekts können Sie einen Befehl angeben, der ausgeführt werden soll (rev shell?) und die Build-Phase als privilegierter Benutzer ausführen, das ist die Konfiguration, die der Angreifer benötigt, um zu kompromittieren:

?codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution

Es könnte möglich sein, die verwendete Rolle und den auf einer Code-Pipeline ausgeführten Befehl mit den vorherigen Berechtigungen zu ändern.

codepipeline:pollforjobs

AWS erwähnt:

Wenn diese API aufgerufen wird, gibt CodePipeline temporäre Anmeldeinformationen für den S3-Bucket zurück, der zum Speichern von Artefakten für die Pipeline verwendet wird, wenn die Aktion Zugriff auf diesen S3-Bucket für Eingabe- oder Ausgabeartefakte benötigt. Diese API gibt auch alle geheimen Werte zurück, die für die Aktion definiert sind.

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks