GCP - Add Custom SSH Metadata

GCP - Προσθήκη Προσαρμοσμένων Μεταδεδομένων SSH

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

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

Τροποποίηση των μεταδεδομένων

Η τροποποίηση των μεταδεδομένων σε ένα instance μπορεί να οδηγήσει σε σημαντικούς κινδύνους ασφαλείας εάν ένας επιτιθέμενος αποκτήσει τις απαραίτητες άδειες.

Ενσωμάτωση των Κλειδιών SSH στα Προσαρμοσμένα Μεταδεδομένα

Στο GCP, τα συστήματα Linux συχνά εκτελούν σενάρια από το Python Linux Guest Environment for Google Compute Engine. Ένα κρίσιμο στοιχείο αυτού είναι το accounts daemon, το οποίο έχει σχεδιαστεί για να ελέγχει τακτικά το endpoint των μεταδεδομένων του instance για ενημερώσεις στα εξουσιοδοτημένα δημόσια κλειδιά SSH.

Επομένως, εάν ένας επιτιθέμενος μπορεί να τροποποιήσει τα προσαρμοσμένα μεταδεδομένα, μπορεί να κάνει τον δαίμονα να βρει ένα νέο δημόσιο κλειδί, το οποίο θα επεξεργαστεί και θα ενσωματωθεί στο τοπικό σύστημα. Το κλειδί θα προστεθεί στο αρχείο ~/.ssh/authorized_keys ενός υπάρχοντος χρήστη ή πιθανώς δημιουργώντας ένα νέο χρήστη με δικαιώματα sudo, ανάλογα με τη μορφή του κλειδιού. Και ο επιτιθέμενος θα μπορεί να απειλήσει τον υπολογιστή.

Προσθήκη κλειδιού SSH σε υπάρχον προνομιούχο χρήστη

  1. Εξέταση των Υπαρχόντων Κλειδιών SSH στο Instance:

  • Εκτελέστε την εντολή για να περιγράψετε το instance και τα μεταδεδομένα του για να εντοπίσετε τα υπάρχοντα κλειδιά SSH. Η σχετική ενότητα στην έξοδο θα βρίσκεται κάτω από τα metadata, ειδικότερα το κλειδί ssh-keys.

gcloud compute instances describe [INSTANCE] --zone [ZONE]
  • Προσέξτε τη μορφή των κλειδιών SSH: το όνομα χρήστη προηγείται του κλειδιού, χωρίζονται με ένα άνω και κάτω τελεία.

  1. Προετοιμασία Αρχείου Κειμένου για τα Μεταδεδομένα του Κλειδιού SSH:

  • Αποθηκεύστε τις λεπτομέρειες των ονομάτων χρηστών και των αντίστοιχων κλειδιών SSH σε ένα αρχείο κειμένου με το όνομα meta.txt. Αυτό είναι απαραίτητο για τη διατήρηση των υπαρχόντων κλειδιών κατά την προσθήκη νέων.

  1. Δημιουργία Νέου Κλειδιού SSH για τον Στόχο Χρήστη (alice σε αυτό το παράδειγμα):

  • Χρησιμοποιήστε την εντολή ssh-keygen για να δημιουργήσετε ένα νέο κλειδί SSH, εξασφαλίζοντας ότι το πεδίο σχολίου (-C) ταιριάζει με το όνομα χρήστη στόχο.

ssh-keygen -t rsa -C "alice" -f ./key -P "" && cat ./key.pub
  • Προσθέστε το νέο δημόσιο κλειδί στο meta.txt, μιμούμενο τη μορφή που βρίσκεται στα μεταδεδομένα του instance.

  1. Ενημέρωση των Μεταδεδομένων του Κλειδιού SSH του Instance:

  • Εφαρμόστε τα ενημερωμένα μεταδεδομένα του κλειδιού SSH στο instance χρησιμοποιώντας την εντολή gcloud compute instances add-metadata.

gcloud compute instances add-metadata [INSTANCE] --metadata-from-file ssh-keys=meta.txt
  1. Πρόσβαση στο Instance χρησιμοποιώντας το Νέο Κλειδί SSH:

  • Συνδεθείτε στο instance με SSH χρησιμοποιώντας το νέο κλειδί, έχοντας πρόσβαση στο κέλυφος του στόχου χρήστη (alice σε αυτό το παράδειγμα).

ssh -i ./key alice@localhost
sudo id

Δημιουργία νέου προνομιούχου χρήστη και προσθήκη ενός κλειδιού SSH

Εάν δεν βρεθεί κάποιος ενδιαφέρων χρήστης, είναι δυνατόν να δημιουργηθεί ένας νέος

# 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 κλειδιά σε επίπεδο έργου

Είναι δυνατόν να επεκτείνετε την πρόσβαση SSH σε πολλές Εικονικές Μηχανές (VMs) σε ένα περιβάλλον νέφους εφαρμόζοντας κλειδιά SSH σε επίπεδο έργου. Αυτή η προσέγγιση επιτρέπει την πρόσβαση SSH σε οποιαδήποτε περίπτωση εντός του έργου που δεν έχει αποκλείσει ρητά τα κλειδιά SSH σε επίπεδο έργου. Εδώ υπάρχει ένας συνοπτικός οδηγός:

  1. Εφαρμογή κλειδιών 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
  1. Σύνδεση με SSH σε περιπτώσεις χρήσης χρησιμοποιώντας κλειδιά σε επίπεδο έργου:

  • Με τα κλειδιά SSH σε επίπεδο έργου στη θέση τους, μπορείτε να συνδεθείτε με SSH σε οποιαδήποτε περίπτωση εντός του έργου. Οι περιπτώσεις που δεν αποκλείουν τα κλειδιά σε επίπεδο έργου θα αποδεχτούν το κλειδί SSH, παρέχοντας πρόσβαση.

  • Ένας άμεσος τρόπος για να συνδεθείτε με SSH σε μια περίπτωση είναι να χρησιμοποιήσετε την εντολή gcloud compute ssh [INSTANCE]. Αυτή η εντολή χρησιμοποιεί το όνομα χρήστη σας και τα κλειδιά SSH που έχουν οριστεί σε επίπεδο έργου για να προσπαθήσει να αποκτήσει πρόσβαση.

Αναφορές

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

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

Last updated