AWS - Codepipeline Privesc
Reading time: 3 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
codepipeline
Pour plus d'informations sur codepipeline, consultez :
AWS - DataPipeline, CodePipeline & CodeCommit Enum
iam:PassRole
, codepipeline:CreatePipeline
, codebuild:CreateProject, codepipeline:StartPipelineExecution
Lors de la création d'un code pipeline, vous pouvez indiquer un rôle IAM codepipeline à exécuter, vous pourriez donc les compromettre.
En plus des autorisations précédentes, vous auriez besoin d'accès à l'endroit où le code est stocké (S3, ECR, github, bitbucket...)
J'ai testé cela en effectuant le processus sur la page web, les autorisations indiquées précédemment ne sont pas celles de List/Get nécessaires pour créer un codepipeline, mais pour le créer sur le web, vous aurez également besoin de : codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<plusieurs>
Lors de la création du projet de build, vous pouvez indiquer une commande à exécuter (rev shell ?) et exécuter la phase de build en tant que utilisateur privilégié, c'est la configuration dont l'attaquant a besoin pour compromettre :
?codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
Il pourrait être possible de modifier le rôle utilisé et la commande exécutée sur un codepipeline avec les autorisations précédentes.
codepipeline:pollforjobs
Lorsque cette API est appelée, CodePipeline renvoie des identifiants temporaires pour le bucket S3 utilisé pour stocker les artefacts du pipeline, si l'action nécessite un accès à ce bucket S3 pour les artefacts d'entrée ou de sortie. Cette API renvoie également toutes les valeurs secrètes définies pour l'action.
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.