AWS - Codepipeline Privesc
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Codepipeline hakkında daha fazla bilgi için kontrol edin:
AWS - DataPipeline, CodePipeline & CodeCommit Enumiam:PassRole
, codepipeline:CreatePipeline
, codebuild:CreateProject, codepipeline:StartPipelineExecution
Bir kod pipeline'ı oluştururken, çalıştırmak için bir codepipeline IAM Rolü belirtebilirsiniz, bu nedenle onları tehlikeye atabilirsiniz.
Önceki izinlerin yanı sıra, kodun saklandığı yere erişim (S3, ECR, github, bitbucket...) ihtiyacınız olacak.
Bunu web sayfasında işlem yaparak test ettim, daha önce belirtilen izinler, bir codepipeline oluşturmak için gereken List/Get izinleri değildir, ancak web'de oluşturmak için ayrıca şunlara ihtiyacınız olacak: codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<birçok>
Build projesinin oluşturulması sırasında bir komut belirtmek (rev shell?) ve build aşamasını yetkili kullanıcı olarak çalıştırmak mümkündür, bu, saldırganın tehlikeye atması için gereken yapılandırmadır:
codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
Önceki izinlerle, kullanılan rolü ve bir codepipeline'da yürütülen komutu değiştirmek mümkün olabilir.
codepipeline:pollforjobs
AWS, belirtmektedir:
Bu API çağrıldığında, CodePipeline pipeline için artefaktları saklamak için kullanılan S3 bucket'ı için geçici kimlik bilgileri döner, eğer işlem bu S3 bucket'a giriş veya çıkış artefaktları için erişim gerektiriyorsa. Bu API ayrıca işlem için tanımlanan herhangi bir gizli değeri de döner.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)