AWS - Codepipeline Privesc
Last updated
Last updated
Apprenez et pratiquez le hacking AWS : Apprenez et pratiquez le hacking GCP :
Pour plus d'infos sur codepipeline, consultez :
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 permissions 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 permissions 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 permissions 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.
:
Apprenez et pratiquez le hacking AWS : Apprenez et pratiquez le hacking GCP :
Consultez les !
Rejoignez le 💬 ou le ou suivez-nous sur Twitter 🐦 .
Partagez des astuces de hacking en soumettant des PR aux et dépôts github.