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'infos 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 codepipeline IAM Role to run, 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é ceci en effectuant le processus via la page web ; les permissions indiquées précédemment sont celles nécessaires pour créer un codepipeline (et pas uniquement les permissions List/Get), mais pour le créer via l'interface web vous aurez aussi besoin de : codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<several>
Lors de la création du build project vous pouvez indiquer une commande à exécuter (rev shell?) et exécuter la phase de build en tant qu'utilisateur privilégié, c'est la configuration dont l'attaquant a besoin pour compromettre :
.png)
.png)
?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 returns temporary credentials for the S3 bucket utilisé pour stocker les artifacts pour le pipeline, si l'action nécessite l'accès à ce S3 bucket pour des artifacts d'entrée ou de sortie. Cette API returns any secret values defined for the 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.
HackTricks Cloud