AWS - Codepipeline Privesc
Reading time: 3 minutes
tip
Impara e pratica il hacking AWS: HackTricks Training AWS Red Team Expert (ARTE)
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:  HackTricks Training GCP Red Team Expert (GRTE)
HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure:
Impara e pratica il hacking Azure:  HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
codepipeline
Per ulteriori informazioni su codepipeline consulta:
AWS - DataPipeline, CodePipeline & CodeCommit Enum
iam:PassRole, codepipeline:CreatePipeline, codebuild:CreateProject, codepipeline:StartPipelineExecution
Quando crei una code pipeline puoi indicare un codepipeline IAM Role da utilizzare, quindi potresti comprometterlo.
Oltre alle autorizzazioni precedenti avresti bisogno di accesso al luogo dove il codice è memorizzato (S3, ECR, github, bitbucket...)
Ho testato questo eseguendo il processo nella pagina web; le autorizzazioni indicate precedentemente sono quelle non di tipo List/Get necessarie per creare una codepipeline, ma per crearla via web avrai anche bisogno di: codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<several>
Durante la creazione del build project puoi indicare un comando da eseguire (rev shell?) e far eseguire la fase di build come privileged user; questa è la configurazione che l'attaccante cerca per compromettere:
.png)
.png)
?codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
Potrebbe essere possibile modificare il ruolo usato e il comando eseguito su una codepipeline con le autorizzazioni precedenti.
codepipeline:pollforjobs
Quando questa API viene chiamata, CodePipeline restituisce credenziali temporanee per il bucket S3 usato per memorizzare gli artifact per la pipeline, se l'azione richiede accesso a quel bucket S3 per artifact di input o output. Questa API restituisce anche eventuali valori segreti definiti per l'azione.
tip
Impara e pratica il hacking AWS: HackTricks Training AWS Red Team Expert (ARTE)
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:  HackTricks Training GCP Red Team Expert (GRTE)
HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure:
Impara e pratica il hacking Azure:  HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
 HackTricks Cloud
HackTricks Cloud