AWS - Codepipeline Privesc
Last updated
Last updated
Για περισσότερες πληροφορίες σχετικά με το codepipeline, ελέγξτε:
iam:PassRole
, codepipeline:CreatePipeline
, codebuild:CreateProject, codepipeline:StartPipelineExecution
Κατά τη δημιουργία ενός κώδικα σωλήνας, μπορείτε να υποδείξετε έναν ρόλο IAM του codepipeline για εκτέλεση, επομένως μπορείτε να τους απειλήσετε.
Εκτός από τα προηγούμενα δικαιώματα, θα χρειαστεί να έχετε πρόσβαση στον τόπο όπου αποθηκεύεται ο κώδικας (S3, ECR, github, bitbucket...)
Δοκίμασα αυτό κάνοντας τη διαδικασία στην ιστοσελίδα, τα δικαιώματα που αναφέρθηκαν προηγουμένως δεν είναι τα απαιτούμενα για τη δημιουργία ενός κώδικα σωλήνας, αλλά για να τον δημιουργήσετε στον ιστό, θα χρειαστείτε επίσης: codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<several>
Κατά τη δημιουργία του έργου κατασκευής, μπορείτε να υποδείξετε μια εντολή για εκτέλεση (αντίστροφη κέλυφος;) και να εκτελέσετε τη φάση κατασκευής ως χρήστης με προνόμια, αυτή είναι η διαμόρφωση που χρειάζεται ο επιτιθέμενος για να απειλήσει:
codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
Μπορεί να είναι δυνατή η τροποποίηση του ρόλου που χρησιμοποιείται και της εντολής που εκτελείται σε έναν κώδικα σωλήνα με τα προηγούμενα δικαιώματα.
codepipeline:pollforjobs
Όταν καλείται αυτό το API, το CodePipeline επιστρέφει προσωρινές πιστοποιήσεις για το S3 bucket που χρησιμοποιείται για την αποθήκευση των αντικειμένων για τον σωλήνα, εάν η ενέργεια απαιτεί πρόσβαση σε αυτό το S3 bucket για είσοδο ή εξαγωγή αντικειμένων. Αυτό το API επίσης επιστρέφει οποιεσδήποτε μυστικές τιμές έχουν καθοριστεί για την ενέργεια.