AWS - Codepipeline Privesc
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aby uzyskać więcej informacji o codepipeline, sprawdź:
iam:PassRole
, codepipeline:CreatePipeline
, codebuild:CreateProject, codepipeline:StartPipelineExecution
Podczas tworzenia pipeline'u kodu możesz wskazać rolę IAM codepipeline do uruchomienia, dlatego możesz je skompromitować.
Oprócz wcześniejszych uprawnień potrzebujesz dostępu do miejsca, w którym przechowywany jest kod (S3, ECR, github, bitbucket...)
Testowałem to, wykonując proces na stronie internetowej, uprawnienia wskazane wcześniej to nie List/Get, które są potrzebne do stworzenia pipeline'u kodu, ale do jego utworzenia w sieci będziesz również potrzebować: codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:<several>
Podczas tworzenia projektu budowy możesz wskazać komendę do uruchomienia (rev shell?) i uruchomić fazę budowy jako użytkownik z uprawnieniami, to jest konfiguracja, której potrzebuje atakujący, aby skompromitować:
codebuild:UpdateProject, codepipeline:UpdatePipeline, codepipeline:StartPipelineExecution
Może być możliwe modyfikowanie roli używanej i komendy wykonywanej w codepipeline z wcześniejszymi uprawnieniami.
codepipeline:pollforjobs
Gdy to API jest wywoływane, CodePipeline zwraca tymczasowe poświadczenia dla koszyka S3 używanego do przechowywania artefaktów dla pipeline'u, jeśli akcja wymaga dostępu do tego koszyka S3 dla artefaktów wejściowych lub wyjściowych. To API również zwraca wszelkie wartości sekretne zdefiniowane dla akcji.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)