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
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
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
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
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.