AWS - Codestar Privesc
Codestar
Codestarに関する詳細情報は以下で見つけることができます:
codestar:CreateProject, codestar:AssociateTeamMemberiam:PassRole
, codestar:CreateProject
iam:PassRole
, codestar:CreateProject
これらの権限を使用すると、cloudformationテンプレートを介してcodestar IAMロールを悪用して任意のアクションを実行できます。次のページをチェックしてください:
iam:PassRole, codestar:CreateProjectcodestar:CreateProject
, codestar:AssociateTeamMember
codestar:CreateProject
, codestar:AssociateTeamMember
このテクニックは、codestar:CreateProject
を使用してcodestarプロジェクトを作成し、codestar:AssociateTeamMember
を使用してIAMユーザーを新しいCodeStar プロジェクトの所有者にし、それにより新しいポリシーといくつかの追加権限が付与されます。
もしすでにプロジェクトのメンバーである場合は、codestar:UpdateTeamMember
権限を使用して、codestar:AssociateTeamMember
の代わりに所有者の役割を更新できます。
潜在的な影響: codestar ポリシーへの昇格。そのポリシーの例は以下で見つけることができます:
codestar:CreateProject, codestar:AssociateTeamMembercodestar:CreateProjectFromTemplate
codestar:CreateProjectFromTemplate
新しいプロジェクトを作成:
codestar:CreateProjectFromTemplate
アクションを利用して新しいプロジェクトの作成を開始します。作成が成功すると、
cloudformation:UpdateStack
へのアクセスが自動的に許可されます。このアクセスは、
CodeStarWorker-<generic project name>-CloudFormation
IAM ロールに関連付けられたスタックを対象としています。
対象スタックを更新:
許可された CloudFormation 権限を使用して、指定されたスタックを更新します。
通常、スタックの名前は次のいずれかのパターンに従います:
awscodestar-<generic project name>-infrastructure
awscodestar-<generic project name>-lambda
正確な名前は選択したテンプレートに依存します(例のエクスプロイトスクリプトを参照)。
アクセスと権限:
更新後、スタックにリンクされたCloudFormation IAM ロールに割り当てられた機能を取得します。
注: これは基本的に完全な管理者権限を提供するものではありません。権限をさらに昇格させるには、環境内の追加の誤構成リソースが必要かもしれません。
詳細については、元のリサーチを参照してください: https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/。 エクスプロイトはhttps://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.pyで見つけることができます。
潜在的な影響: cloudformation IAM ロールへの昇格。
Last updated