AWS - Codepipeline Privesc
Reading time: 3 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
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 controlla:
AWS - DataPipeline, CodePipeline & CodeCommit Enum
iam:PassRole
, codepipeline:CreatePipeline
, codebuild:CreateProject, codepipeline:StartPipelineExecution
Quando crei una code pipeline puoi indicare un ruolo IAM di codepipeline da eseguire, quindi potresti comprometterli.
Oltre ai permessi precedenti avresti bisogno di accesso al luogo dove il codice è memorizzato (S3, ECR, github, bitbucket...)
Ho testato questo eseguendo il processo nella pagina web, i permessi indicati precedentemente non sono quelli di List/Get necessari per creare una codepipeline, ma per crearla nel 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 progetto di build puoi indicare un comando da eseguire (rev shell?) e far eseguire la fase di build come utente privilegiato, questa è la configurazione di cui l'attaccante ha bisogno per compromettere:
?codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
Potrebbe essere possibile modificare il ruolo utilizzato e il comando eseguito su una codepipeline con i permessi precedenti.
codepipeline:pollforjobs
Quando questa API viene chiamata, CodePipeline restituisce credenziali temporanee per il bucket S3 utilizzato per memorizzare artefatti per la pipeline, se l'azione richiede accesso a quel bucket S3 per artefatti 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)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
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.