GCP - Add Custom SSH Metadata
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Η τροποποίηση των μεταδεδομένων σε μια παρουσία μπορεί να οδηγήσει σε σημαντικούς κινδύνους ασφαλείας αν ένας επιτιθέμενος αποκτήσει τις απαραίτητες άδειες.
Στο GCP, τα συστήματα Linux συχνά εκτελούν σενάρια από το Python Linux Guest Environment for Google Compute Engine. Ένα κρίσιμο στοιχείο αυτού είναι το accounts daemon, το οποίο έχει σχεδιαστεί για να ελέγχει τακτικά το σημείο μεταδεδομένων της παρουσίας για ενημερώσεις στα εξουσιοδοτημένα δημόσια κλειδιά SSH.
Επομένως, αν ένας επιτιθέμενος μπορεί να τροποποιήσει τα προσαρμοσμένα μεταδεδομένα, θα μπορούσε να κάνει το daemon να βρει ένα νέο δημόσιο κλειδί, το οποίο θα επεξεργαστεί και θα ενσωματωθεί στο τοπικό σύστημα. Το κλειδί θα προστεθεί στο αρχείο ~/.ssh/authorized_keys
ενός υπάρχοντος χρήστη ή ενδεχομένως να δημιουργήσει έναν νέο χρήστη με δικαιώματα sudo
, ανάλογα με τη μορφή του κλειδιού. Και ο επιτιθέμενος θα είναι σε θέση να παραβιάσει τον υπολογιστή.
Εξετάστε τα Υπάρχοντα Κλειδιά SSH στην Παρουσία:
Εκτελέστε την εντολή για να περιγράψετε την παρουσία και τα μεταδεδομένα της για να εντοπίσετε τα υπάρχοντα κλειδιά SSH. Η σχετική ενότητα στην έξοδο θα είναι κάτω από metadata
, συγκεκριμένα το κλειδί ssh-keys
.
Δώστε προσοχή στη μορφή των κλειδιών SSH: το όνομα χρήστη προηγείται του κλειδιού, χωρισμένο με άνω και κάτω τελεία.
Ετοιμάστε ένα Αρχείο Κειμένου για τα Μεταδεδομένα Κλειδιού SSH:
Αποθηκεύστε τις λεπτομέρειες των ονομάτων χρηστών και των αντίστοιχων κλειδιών SSH σε ένα αρχείο κειμένου με όνομα meta.txt
. Αυτό είναι απαραίτητο για τη διατήρηση των υπαρχόντων κλειδιών ενώ προσθέτετε νέα.
Δημιουργήστε ένα Νέο Κλειδί SSH για τον Στόχο Χρήστη (alice
σε αυτό το παράδειγμα):
Χρησιμοποιήστε την εντολή ssh-keygen
για να δημιουργήσετε ένα νέο κλειδί SSH, διασφαλίζοντας ότι το πεδίο σχολίου (-C
) ταιριάζει με το όνομα του στόχου χρήστη.
Προσθέστε το νέο δημόσιο κλειδί στο meta.txt
, μιμούμενοι τη μορφή που βρέθηκε στα μεταδεδομένα της παρουσίας.
Ενημερώστε τα Μεταδεδομένα Κλειδιού SSH της Παρουσίας:
Εφαρμόστε τα ενημερωμένα μεταδεδομένα κλειδιού SSH στην παρουσία χρησιμοποιώντας την εντολή gcloud compute instances add-metadata
.
Πρόσβαση στην Παρουσία Χρησιμοποιώντας το Νέο Κλειδί SSH:
Συνδεθείτε στην παρουσία με SSH χρησιμοποιώντας το νέο κλειδί, αποκτώντας πρόσβαση στο shell στο πλαίσιο του στόχου χρήστη (alice
σε αυτό το παράδειγμα).
Αν δεν βρεθεί ενδιαφέρον χρήστης, είναι δυνατόν να δημιουργηθεί ένας νέος που θα του δοθούν δικαιώματα sudo
:
Είναι δυνατόν να διευρυνθεί η πρόσβαση SSH σε πολλές Εικονικές Μηχανές (VMs) σε ένα περιβάλλον cloud εφαρμόζοντας τα κλειδιά SSH σε επίπεδο έργου. Αυτή η προσέγγιση επιτρέπει την πρόσβαση SSH σε οποιαδήποτε παρουσία εντός του έργου που δεν έχει ρητά αποκλείσει τα κλειδιά SSH σε επίπεδο έργου. Ακολουθεί ένας συνοπτικός οδηγός:
Εφαρμογή Κλειδιών SSH σε Επίπεδο Έργου:
Χρησιμοποιήστε την εντολή gcloud compute project-info add-metadata
για να προσθέσετε τα κλειδιά SSH από το meta.txt
στα μεταδεδομένα του έργου. Αυτή η ενέργεια διασφαλίζει ότι τα κλειδιά SSH αναγνωρίζονται σε όλες τις VMs του έργου, εκτός αν μια VM έχει ενεργοποιημένη την επιλογή "Αποκλεισμός κλειδιών SSH σε επίπεδο έργου".
SSH σε Παρουσίες Χρησιμοποιώντας Κλειδιά σε Επίπεδο Έργου:
Με τα κλειδιά SSH σε επίπεδο έργου σε εφαρμογή, μπορείτε να κάνετε SSH σε οποιαδήποτε παρουσία εντός του έργου. Οι παρουσίες που δεν αποκλείουν τα κλειδιά σε επίπεδο έργου θα αποδεχτούν το κλειδί SSH, παρέχοντας πρόσβαση.
Μια άμεση μέθοδος για να κάνετε SSH σε μια παρουσία είναι η χρήση της εντολής gcloud compute ssh [INSTANCE]
. Αυτή η εντολή χρησιμοποιεί το τρέχον όνομα χρήστη σας και τα κλειδιά SSH που έχουν οριστεί σε επίπεδο έργου για να προσπαθήσει να αποκτήσει πρόσβαση.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)