GCP - local privilege escalation ssh pivoting

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

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

σε αυτό το σενάριο θα υποθέσουμε ότι έχετε διαρρεύσει ένα λογαριασμό χωρίς προνόμια μέσα σε ένα VM σε ένα έργο Compute Engine.

Εκπληκτικά, οι άδειες GPC του compute engine που έχετε διαρρεύσει μπορούν να σας βοηθήσουν να αναβαθμίσετε τα προνόμια τοπικά μέσα σε μια μηχανή. Ακόμα κι αν αυτό δεν είναι πάντα πολύ χρήσιμο σε ένα περιβάλλον cloud, είναι καλό να ξέρετε ότι είναι δυνατόν.

Διαβάστε τα σενάρια

Οι Υπολογιστικές Περιπτώσεις πιθανότατα υπάρχουν για να εκτελέσουν ορισμένα σενάρια για να εκτελέσουν ενέργειες με τους λογαριασμούς υπηρεσιών τους.

Καθώς το IAM είναι πολύ λεπτομερές, ένας λογαριασμός μπορεί να έχει δικαιώματα ανάγνωσης/εγγραφής πάνω σε ένα πόρο αλλά χωρίς δικαιώματα λίστας.

Ένα εξαιρετικό υποθετικό παράδειγμα αυτού είναι ένα Compute Instance που έχει άδεια να διαβάζει/γράφει αντίγραφα ασφαλείας σε ένα κάδο αποθήκευσης που ονομάζεται instance82736-long-term-xyz-archive-0332893.

Η εκτέλεση της εντολής gsutil ls από τη γραμμή εντολών δεν επιστρέφει τίποτα, καθώς ο λογαριασμός υπηρεσίας δεν έχει την άδεια IAM storage.buckets.list. Ωστόσο, εάν εκτελέσετε την εντολή gsutil ls gs://instance82736-long-term-xyz-archive-0332893 μπορείτε να βρείτε ένα πλήρες αντίγραφο ασφαλείας του αρχείου συστήματος αρχείων, προσφέροντάς σας πρόσβαση σε κείμενο καθαρού κειμένου σε δεδομένα που λείπουν από τον τοπικό σας λογαριασμό Linux.

Μπορείτε να βρείτε το όνομα αυτού του κάδου μέσα σε ένα σενάριο (σε bash, Python, Ruby...).

Προσαρμοσμένα μεταδεδομένα

Οι διαχειριστές μπορούν να προσθέσουν προσαρμοσμένα μεταδεδομένα στο instance και στο project level. Αυτό είναι απλώς ένας τρόπος να περάσετε αυθαίρετα ζεύγη κλειδιού/τιμής σε ένα instance, και χρησιμοποιείται συνήθως για μεταβλητές περιβάλλοντος και σενάρια εκκίνησης/απενεργοποίησης.

Επιπλέον, είναι δυνατόν να προσθέσετε userdata, που είναι ένα σενάριο που θα εκτελείται κάθε φορά που η μηχανή ξεκινά ή επανεκκινείται και μπορεί να προσπελαστεί από το metadata endpoint επίσης.

Για περισσότερες πληροφορίες ανατρέξτε:

Κατάχρηση δικαιωμάτων IAM

Οι περισσότερες από τις προτεινόμενες ακόλουθες άδειες δίνονται στον προεπιλεγμένο Compute SA, το μόνο πρόβλημα είναι ότι το προεπιλεγμένο εύρος πρόσβασης αποτρέπει το SA από το να τα χρησιμοποιήσει. Ωστόσο, εάν είναι ενεργοποιημένο το cloud-platform scope ή απλώς το compute scope, θα μπορείτε να τα καταχραστείτε.

Ελέγξτε τις ακόλουθες άδειες:

Αναζήτηση για Κλειδιά στο σύστημα αρχε

sudo find / -name "gcloud"

Αυτά είναι τα πιο ενδιαφέροντα αρχεία:

  • ~/.config/gcloud/credentials.db

  • ~/.config/gcloud/legacy_credentials/[ΛΟΓΑΡΙΑΣΜΟΣ]/adc.json

  • ~/.config/gcloud/legacy_credentials/[ΛΟΓΑΡΙΑΣΜΟΣ]/.boto

  • ~/.credentials.json

Περισσότερα regexes για κλειδιά API

TARGET_DIR="/path/to/whatever"

# Service account keys
grep -Pzr "(?s){[^{}]*?service_account[^{}]*?private_key.*?}" \
"$TARGET_DIR"

# Legacy GCP creds
grep -Pzr "(?s){[^{}]*?client_id[^{}]*?client_secret.*?}" \
"$TARGET_DIR"

# Google API keys
grep -Pr "AIza[a-zA-Z0-9\\-_]{35}" \
"$TARGET_DIR"

# Google OAuth tokens
grep -Pr "ya29\.[a-zA-Z0-9_-]{100,200}" \
"$TARGET_DIR"

# Generic SSH keys
grep -Pzr "(?s)-----BEGIN[ A-Z]*?PRIVATE KEY[a-zA-Z0-9/\+=\n-]*?END[ A-Z]*?PRIVATE KEY-----" \
"$TARGET_DIR"

# Signed storage URLs
grep -Pir "storage.googleapis.com.*?Goog-Signature=[a-f0-9]+" \
"$TARGET_DIR"

# Signed policy documents in HTML
grep -Pzr '(?s)<form action.*?googleapis.com.*?name="signature" value=".*?">' \
"$TARGET_DIR"

Αναφορές

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

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

Last updated