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 mehr Infos zu codepipeline siehe:
AWS - DataPipeline, CodePipeline & CodeCommit Enum
iam:PassRole, codepipeline:CreatePipeline, codebuild:CreateProject, codepipeline:StartPipelineExecution
Beim Erstellen einer Code-Pipeline kann man eine codepipeline IAM Role to run angeben, daher könnte man diese kompromittieren.
Abgesehen von den zuvor genannten Berechtigungen benötigt man Zugriff auf den Ort, an dem der Code gespeichert ist (S3, ECR, github, bitbucket...)
Ich habe das getestet, indem ich den Prozess über die Webseite durchgeführt habe. Die zuvor genannten Berechtigungen sind die nicht-List/Get-Berechtigungen, die zum Erstellen einer codepipeline benötigt werden, aber um sie über das Web zu erstellen, benötigt man außerdem: 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 kann man einen auszuführenden Befehl angeben (rev shell?) und die Build-Phase als privilegierter Benutzer ausführen lassen; genau diese Konfiguration benötigt ein Angreifer, um zu kompromittieren:
.png)
.png)
?codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
Mit den vorherigen Berechtigungen könnte es möglich sein, die verwendete Rolle und den in einer codepipeline ausgeführten Befehl zu ändern.
codepipeline:pollforjobs
Wenn diese API aufgerufen wird, gibt CodePipeline temporäre Zugangsdaten für den S3-Bucket zurück, der zum Speichern der Artefakte für die Pipeline verwendet wird, falls die Aktion Zugriff auf diesen S3-Bucket für Eingabe- oder Ausgabe-Artefakte benötigt. Diese API gibt außerdem alle für die Aktion definierten geheimen Werte zurück.
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.
HackTricks Cloud