Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στη ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
Βρείτε περισσότερες πληροφορίες σχετικά με το IAM στο:
{% content-ref url="../gcp-services/gcp-iam-and-org-policies-enum.md" %} gcp-iam-and-org-policies-enum.md {% endcontent-ref %}
Ένας επιτιθέμενος με τα αναφερόμενα δικαιώματα θα μπορεί να ενημερώσει έναν ρόλο που σας έχει ανατεθεί και να σας δώσει επιπλέον δικαιώματα σε άλλους πόρους όπως:
gcloud iam roles update <rol name> --project <project> --add-permissions <permission>
Μπορείτε να βρείτε ένα σενάριο για την αυτοματοποίηση της δημιουργίας, εκμετάλλευσης και καθαρισμού ενός ευπάθους περιβάλλοντος εδώ και ένα πρόγραμμα σε Python για την κατάχρηση αυτού του προνομίου εδώ. Για περισσότερες πληροφορίες, ανατρέξτε στην αρχική έρευνα.
Ένας επιτιθέμενος με τα αναφερόμενα δικαιώματα θα μπορεί να ζητήσει ένα access token που ανήκει σε έναν λογαριασμό υπηρεσίας, οπότε είναι δυνατόν να ζητηθεί ένα access token ενός λογαριασμού υπηρεσίας με περισσότερα προνόμια από τα δικά μας.
Μπορείτε να βρείτε ένα σενάριο για την αυτοματοποίηση της δημιουργίας, εκμετάλλευσης και καθαρισμού ενός ευπάθους περιβάλλοντος εδώ και ένα πρόγραμμα σε Python για την κατάχρηση αυτού του προνομίου εδώ. Για περισσότερες πληροφορίες, ανατρέξτε στην αρχική έρευνα.
Ένας επιτιθέμενος με τα αναφερόμενα δικαιώματα θα μπορεί να δημιουργήσει ένα κλειδί που διαχειρίζεται ο χρήστης για έναν λογαριασμό υπηρεσίας, το οποίο θα μας επιτρέπει να έχουμε πρόσβαση στο GCP ως αυτός ο λογαριασμός υπηρεσίας.
gcloud iam service-accounts keys create --iam-account <name> /tmp/key.json
gcloud auth activate-service-account --key-file=sa_cred.json
Μπορείτε να βρείτε ένα σενάριο για την αυτοματοποίηση της δημιουργίας, εκμετάλλευσης και καθαρισμού ενός ευπάθους περιβάλλοντος εδώ και ένα πρόγραμμα Python για την κατάχρηση αυτής της εξουσίας εδώ. Για περισσότερες πληροφορίες, ελέγξτε την αρχική έρευνα.
Σημειώστε ότι iam.serviceAccountKeys.update
δεν λειτουργεί για την τροποποίηση του κλειδιού ενός Λογαριασμού Υπηρεσίας επειδή για να το κάνετε αυτό, απαιτείται επίσης η άδεια iam.serviceAccountKeys.create
.
Εάν έχετε την άδεια iam.serviceAccounts.implicitDelegation
σε έναν Λογαριασμό Υπηρεσίας που έχει την άδεια iam.serviceAccounts.getAccessToken
σε έναν τρίτο Λογαριασμό Υπηρεσίας, τότε μπορείτε να χρησιμοποιήσετε την implicitDelegation για να δημιουργήσετε ένα τοκέαν για αυτόν τον τρίτο Λογαριασμό Υπηρεσίας. Εδώ υπάρχει ένα διάγραμμα για να βοηθήσει στην εξήγηση.
Μπορείτε να βρείτε ένα σενάριο για την αυτοματοποίηση της δημιουργίας, εκμετάλλευσης και καθαρισμού ενός ευπάθους περιβάλλοντος εδώ και ένα πρόγραμμα Python για την κατάχρηση αυτής της εξουσίας εδώ. Για περισσότερες πληροφορίες, ελέγξτε την αρχική έρευνα.
Σημειώστε ότι σύμφωνα με την τεκμηρίωση, η ανάθεση λειτουργεί μόνο για τη δημιουργία ενός τοκέαν χρησιμοποιώντας τη μέθοδο generateAccessToken().
Ένας επιτιθέμενος με τις προαναφερθείσες άδειες θα μπορεί να υπογράφει αυθαίρετα φορτία στο GCP. Έτσι, θα είναι δυνατόν να δημιουργήσει ένα μη υπογεγραμμένο JWT του Λογαριασμού Υπηρεσίας και στη συνέχεια να το στείλει ως ένα blob για να υπογραφεί το JWT από τον Λογαριασμό Υπηρεσίας που στοχεύουμε. Για περισσότερες πληροφορίες διαβάστε αυτό.
Μπορείτε να βρείτε ένα σενάριο για την αυτοματοποίηση της δημιουργίας, εκμετάλλευσης και καθαρισμού ενός ευπάθους περιβάλλοντος εδώ και ένα πρόγραμμα Python για την κατάχρηση αυτής της εξουσίας εδώ και εδώ. Για περισσότερες πληροφορίες, ελέγξτε την αρχική έρευνα.
Ένας επιτιθέμενος με τις προαναφερθείσες άδειες θα μπορεί να υπογράφει καλοσχηματισμένα JSON web tokens (JWTs). Η διαφορά με την προηγούμενη μέθοδο είναι ότι αντί να κάνει τη Google να υπογράψει ένα blob που περιέχει ένα JWT, χρησιμοποιούμε τη μέθοδο signJWT που αναμένει ήδη ένα JWT. Αυτό καθιστά τη χρήση ευκολότερη, αλλά μπορείτε να υπογράψετε μόνο JWT αντί για οποιαδήποτε bytes.
Μπορείτε να βρείτε ένα σενάριο για την αυτοματοποίηση της δημιουργίας, εκμετάλλευσης και καθαρισμού ενός ευπάθους περιβάλλοντος εδώ και ένα πρόγραμμα Python για την κατάχρηση αυτής της εξουσίας εδώ. Για περισσότερες πληροφορίες, ελέγξτε την αρχική έρευνα.
Ένας επιτιθέμενος με τις προαναφερθείσες άδειες θα μπορεί να προσθέτει πολιτικές IAM σε λογαριασμούς υπηρεσίας. Μπορείτε να το καταχραστείτε για να χορηγήσετε στον εαυτό σας τις άδειες που χρειάζεστε για να προσομοιώσετε τον λογαριασμό υπηρεσίας. Στο παρ
gcloud iam service-accounts add-iam-policy-binding "${VICTIM_SA}@${PROJECT_ID}.iam.gserviceaccount.com" \
--member="user:username@domain.com" \
--role="roles/iam.serviceAccountTokenCreator"
Μπορείτε να βρείτε ένα σενάριο για την αυτοματοποίηση της δημιουργίας, εκμετάλλευσης και καθαρισμού ενός ευπάθους περιβάλλοντος εδώ.
Η άδεια iam.serviceAccounts.actAs είναι παρόμοια με την άδεια iam:PassRole από το AWS. Είναι απαραίτητη για την εκτέλεση εργασιών, όπως η έναρξη μιας εικονικής μηχανής Compute Engine, καθώς παρέχει τη δυνατότητα "να ενεργήσει ως" ένας λογαριασμός υπηρεσίας, εξασφαλίζοντας έτσι την ασφαλή διαχείριση των δικαιωμάτων. Χωρίς αυτό, οι χρήστες μπορεί να αποκτήσουν μη δικαιολογημένη πρόσβαση. Επιπλέον, η εκμετάλλευση της iam.serviceAccounts.actAs περιλαμβάνει διάφορες μεθόδους, καθεμία από τις οποίες απαιτεί ένα σύνολο από δικαιώματα, σε αντίθεση με άλλες μεθόδους που χρειάζονται μόνο ένα.
Η προσομοίωση ενός λογαριασμού υπηρεσίας μπορεί να είναι πολύ χρήσιμη για την απόκτηση νέων και καλύτερων δικαιωμάτων. Υπάρχουν τρεις τρόποι με τους οποίους μπορείτε να προσομοιώσετε έναν άλλο λογαριασμό υπηρεσίας:
- Πιστοποίηση χρησιμοποιώντας ιδιωτικά κλειδιά RSA (καλύπτεται παραπάνω)
- Εξουσιοδότηση χρησιμοποιώντας πολιτικές Cloud IAM (καλύπτεται εδώ)
- Ανάπτυξη εργασιών σε υπηρεσίες GCP (περισσότερο εφαρμόσιμο στην παραβίαση ενός λογαριασμού χρήστη)
Ένας επιτιθέμενος με τις αναφερόμενες δικαιώματα θα μπορεί να δημιουργήσει ένα OpenID JWT. Αυτά χρησιμοποιούνται για να επιβεβαιώσουν την ταυτότητα και δεν απαιτούν απαραίτητα κάποια συναφή εξουσιοδότηση για ένα πόρο.
Σύμφωνα με αυτήν την ενδιαφέρουσα ανάρτηση, είναι απαραίτητο να υποδείξετε το κοινό (υπηρεσία όπου θέλετε να χρησιμοποιήσετε το τοκέν για την πιστοποίηση) και θα λάβετε ένα JWT που έχει υπογραφεί από την Google και υποδεικνύει τον λογαριασμό υπηρεσίας και το κοινό του JWT.
Μπορείτε να δημιουργήσετε ένα OpenIDToken (αν έχετε πρόσβαση) με:
# First activate the SA with iam.serviceAccounts.getOpenIdToken over the other SA
gcloud auth activate-service-account --key-file=/path/to/svc_account.json
# Then, generate token
gcloud auth print-identity-token "${ATTACK_SA}@${PROJECT_ID}.iam.gserviceaccount.com" --audiences=https://example.com
Στη συνέχεια, μπορείτε απλά να το χρησιμοποιήσετε για να αποκτήσετε πρόσβαση στην υπηρεσία με:
curl -v -H "Authorization: Bearer id_token" https://some-cloud-run-uc.a.run.app
Ορισμένες υπηρεσίες που υποστηρίζουν την πιστοποίηση μέσω αυτού του είδους των διακριτικών είναι:
- Google Cloud Run
- Google Cloud Functions
- Google Identity Aware Proxy
- Google Cloud Endpoints (εάν χρησιμοποιείται Google OIDC)
Μπορείτε να βρείτε ένα παράδειγμα για το πώς να δημιουργήσετε ένα καινούργιο διακριτικό OpenID εκ μέρους ενός λογαριασμού υπηρεσίας εδώ.
Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF, ελέγξτε τα ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα κόλπα σας για το hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.