diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-roles-anywhere-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-roles-anywhere-privesc.md deleted file mode 100644 index 0ba46b84c..000000000 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-roles-anywhere-privesc.md +++ /dev/null @@ -1,42 +0,0 @@ -# AWS - IAM Roles Anywhere Privesc - -{{#include ../../../../banners/hacktricks-training.md}} - -AWS IAM RolesAnywhere επιτρέπει σε φόρτους εργασίας εκτός AWS να αναλαμβάνουν IAM ρόλους χρησιμοποιώντας πιστοποιητικά X.509. Αλλά όταν οι πολιτικές εμπιστοσύνης δεν είναι σωστά καθορισμένες, μπορούν να καταχρηστούν για κλιμάκωση προνομίων. - -Αυτή η πολιτική στερείται περιορισμών σχετικά με το ποιοι κόμβοι εμπιστοσύνης ή χαρακτηριστικά πιστοποιητικών επιτρέπονται. Ως αποτέλεσμα, οποιοδήποτε πιστοποιητικό συνδεδεμένο με οποιονδήποτε κόμβο εμπιστοσύνης στον λογαριασμό μπορεί να χρησιμοποιηθεί για να αναλάβει αυτόν τον ρόλο. -```json -{ -"Version": "2012-10-17", -"Statement": [ -{ -"Effect": "Allow", -"Principal": { -"Service": "rolesanywhere.amazonaws.com" -}, -"Action": [ -"sts:AssumeRole", -"sts:SetSourceIdentity", -"sts:TagSession" -] -} -] -} - -``` -Για privesc, απαιτείται το `aws_signing_helper` από https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html - -Στη συνέχεια, χρησιμοποιώντας ένα έγκυρο πιστοποιητικό, ο επιτιθέμενος μπορεί να μεταβεί στον ρόλο με υψηλότερα δικαιώματα. -```bash -aws_signing_helper credential-process \ ---certificate readonly.pem \ ---private-key readonly.key \ ---trust-anchor-arn arn:aws:rolesanywhere:us-east-1:123456789012:trust-anchor/ta-id \ ---profile-arn arn:aws:rolesanywhere:us-east-1:123456789012:profile/default \ ---role-arn arn:aws:iam::123456789012:role/Admin -``` -### Αναφορές - -- https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation/ - -{{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md index 30af94025..44d2be67d 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md @@ -6,7 +6,7 @@ ### `sts:AssumeRole` -Κάθε ρόλος δημιουργείται με μια **πολιτική εμπιστοσύνης ρόλου**, αυτή η πολιτική υποδεικνύει **ποιος μπορεί να αναλάβει τον δημιουργημένο ρόλο**. Αν ένας ρόλος από τον **ίδιο λογαριασμό** λέει ότι ένας λογαριασμός μπορεί να τον αναλάβει, αυτό σημαίνει ότι ο λογαριασμός θα μπορεί να έχει πρόσβαση στον ρόλο (και πιθανώς **privesc**). +Κάθε ρόλος δημιουργείται με μια **πολιτική εμπιστοσύνης ρόλου**, αυτή η πολιτική υποδεικνύει **ποιος μπορεί να αναλάβει τον δημιουργημένο ρόλο**. Αν ένας ρόλος από τον **ίδιο λογαριασμό** λέει ότι ένας λογαριασμός μπορεί να τον αναλάβει, σημαίνει ότι ο λογαριασμός θα μπορεί να έχει πρόσβαση στον ρόλο (και πιθανώς **privesc**). Για παράδειγμα, η παρακάτω πολιτική εμπιστοσύνης ρόλου υποδεικνύει ότι οποιοσδήποτε μπορεί να τον αναλάβει, επομένως **οποιοσδήποτε χρήστης θα μπορεί να privesc** στις άδειες που σχετίζονται με αυτόν τον ρόλο. ```json @@ -23,7 +23,7 @@ ] } ``` -Μπορείτε να προσποιηθείτε έναν ρόλο εκτελώντας: +Μπορείτε να προσποιηθείτε έναν ρόλο που εκτελεί: ```bash aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname ``` @@ -39,7 +39,7 @@ aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname ```bash aws sts get-federation-token --name ``` -Αυτός είναι ο τρόπος με τον οποίο αυτή η άδεια μπορεί να παραχωρηθεί με ασφάλεια χωρίς να δίνεται πρόσβαση για να προσποιηθεί άλλους χρήστες: +Αυτή είναι η διαδικασία με την οποία μπορεί να δοθεί αυτή η άδεια με ασφάλεια χωρίς να παραχωρηθεί πρόσβαση για να προσποιηθεί άλλους χρήστες: ```json { "Version": "2012-10-17", @@ -90,9 +90,9 @@ onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 -- ### `sts:AssumeRoleWithWebIdentity` -Αυτή η άδεια παρέχει άδεια για την απόκτηση ενός συνόλου προσωρινών διαπιστευτηρίων ασφαλείας για **χρήστες που έχουν αυθεντικοποιηθεί σε μια κινητή, διαδικτυακή εφαρμογή, EKS...** με έναν πάροχο διαδικτυακής ταυτότητας. [Μάθετε περισσότερα εδώ.](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) +Αυτή η άδεια παρέχει την άδεια να αποκτηθούν ένα σύνολο προσωρινών διαπιστευτηρίων ασφαλείας για **χρήστες που έχουν αυθεντικοποιηθεί σε μια κινητή, διαδικτυακή εφαρμογή, EKS...** με έναν πάροχο διαδικτυακής ταυτότητας. [Μάθετε περισσότερα εδώ.](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) -Για παράδειγμα, αν ένας **λογαριασμός υπηρεσίας EKS** θα πρέπει να μπορεί να **παριστάνει έναν ρόλο IAM**, θα έχει ένα διακριτικό στο **`/var/run/secrets/eks.amazonaws.com/serviceaccount/token`** και μπορεί να **αναλάβει τον ρόλο και να αποκτήσει διαπιστευτήρια** κάνοντας κάτι όπως: +Για παράδειγμα, αν ένας **λογαριασμός υπηρεσίας EKS** θα έπρεπε να μπορεί να **παριστάνει έναν ρόλο IAM**, θα έχει ένα διακριτικό στο **`/var/run/secrets/eks.amazonaws.com/serviceaccount/token`** και μπορεί να **αναλάβει τον ρόλο και να αποκτήσει διαπιστευτήρια** κάνοντας κάτι όπως: ```bash aws sts assume-role-with-web-identity --role-arn arn:aws:iam::123456789098:role/ --role-session-name something --web-identity-token file:///var/run/secrets/eks.amazonaws.com/serviceaccount/token # The role name can be found in the metadata of the configuration of the pod @@ -103,4 +103,43 @@ aws sts assume-role-with-web-identity --role-arn arn:aws:iam::123456789098:role/ ../aws-basic-information/aws-federation-abuse.md {{#endref}} +### IAM Roles Anywhere Privesc + +AWS IAM RolesAnywhere επιτρέπει σε φόρτους εργασίας εκτός AWS να αναλαμβάνουν IAM ρόλους χρησιμοποιώντας πιστοποιητικά X.509. Αλλά όταν οι πολιτικές εμπιστοσύνης δεν είναι σωστά καθορισμένες, μπορούν να καταχραστούν για αναβάθμιση δικαιωμάτων. + +Αυτή η πολιτική στερείται περιορισμών σχετικά με το ποιοι κόμβοι εμπιστοσύνης ή χαρακτηριστικά πιστοποιητικών επιτρέπονται. Ως αποτέλεσμα, οποιοδήποτε πιστοποιητικό συνδεδεμένο με οποιονδήποτε κόμβο εμπιστοσύνης στον λογαριασμό μπορεί να χρησιμοποιηθεί για να αναλάβει αυτόν τον ρόλο. +```json +{ +"Version": "2012-10-17", +"Statement": [ +{ +"Effect": "Allow", +"Principal": { +"Service": "rolesanywhere.amazonaws.com" +}, +"Action": [ +"sts:AssumeRole", +"sts:SetSourceIdentity", +"sts:TagSession" +] +} +] +} + +``` +Για privesc, απαιτείται το `aws_signing_helper` από https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html + +Στη συνέχεια, χρησιμοποιώντας ένα έγκυρο πιστοποιητικό, ο επιτιθέμενος μπορεί να μεταβεί στον ρόλο με υψηλότερα δικαιώματα. +```bash +aws_signing_helper credential-process \ +--certificate readonly.pem \ +--private-key readonly.key \ +--trust-anchor-arn arn:aws:rolesanywhere:us-east-1:123456789012:trust-anchor/ta-id \ +--profile-arn arn:aws:rolesanywhere:us-east-1:123456789012:profile/default \ +--role-arn arn:aws:iam::123456789012:role/Admin +``` +### Αναφορές + +- [https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation](https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation) + {{#include ../../../banners/hacktricks-training.md}}