GCP - Compute Enum

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

GCP VPC & Networking

Μάθετε πώς λειτουργεί αυτό στο:

GCP - VPC & Networking

Enumeration

# List networks
gcloud compute networks list
gcloud compute networks describe <network>

# List subnetworks
gcloud compute networks subnets list
gcloud compute networks subnets get-iam-policy <name> --region <region>
gcloud compute networks subnets describe <name> --region <region>

# List FW rules in networks
gcloud compute firewall-rules list --format="table(
name,
network,
direction,
priority,
sourceRanges.list():label=SRC_RANGES,
destinationRanges.list():label=DEST_RANGES,
allowed[].map().firewall_rule().list():label=ALLOW,
denied[].map().firewall_rule().list():label=DENY,
sourceTags.list():label=SRC_TAGS,
sourceServiceAccounts.list():label=SRC_SVC_ACCT,
targetTags.list():label=TARGET_TAGS,
targetServiceAccounts.list():label=TARGET_SVC_ACCT,
disabled
)"

# List Hierarchical Firewalls
gcloud compute firewall-policies list  (--folder <value>| --organization <value>)
gcloud compute firewall-policies describe <fw_policy>
gcloud compute firewall-policies list-rules <fw_policy>

# Get Firewalls of each region
gcloud compute network-firewall-policies list
## Get final FWs applied in a region
gcloud compute network-firewall-policies get-effective-firewalls --network=<vpc_name> --region <region>

Μπορείτε εύκολα να βρείτε υπολογιστικά instances με ανοιχτούς κανόνες τείχους προστασίας με https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_firewall_enum

Υπολογιστικά instances

Αυτή είναι η μέθοδος για να τρέξετε εικονικές μηχανές μέσα στο GCP. Ελέγξτε αυτή τη σελίδα για περισσότερες πληροφορίες:

GCP - Compute Instances

Αριθμητική

# Get list of zones
# It's interesting to know which zones are being used
gcloud compute regions list | grep -E "NAME|[^0]/"

# List compute instances & get info
gcloud compute instances list
gcloud compute instances describe <instance name>
gcloud compute instances get-iam-policy <instance> --zone=ZONE
gcloud compute instances get-screenshot <instance name> # Instace must have "Display Device" enabled
gcloud compute instances os-inventory list-instances # Get OS info of instances (OS Config agent is running on instances)


# Enumerate disks
gcloud compute disks list
gcloud compute disks describe <disk>
gcloud compute disks get-iam-policy <disk>

Για περισσότερες πληροφορίες σχετικά με το πώς να SSH ή να τροποποιήσετε τα μεταδεδομένα μιας παρουσίας για να ανεβάσετε δικαιώματα, ελέγξτε αυτή τη σελίδα:

GCP - local privilege escalation ssh pivoting

Ανάβαση Δικαιωμάτων

Στην επόμενη σελίδα, μπορείτε να δείτε πώς να καταχραστείτε τις άδειες υπολογιστή για να ανεβάσετε δικαιώματα:

GCP - Compute Privesc

Μη Αυθεντικοποιημένη Enum

GCP - Compute Unauthenticated Enum

Μετά την Εκμετάλλευση

GCP - Compute Post Exploitation

Επιμονή

GCP - Compute Persistence

Καταγραφές Σειριακής Κονσόλας

Οι Καταγραφές Σειριακής Κονσόλας του Compute Engine είναι μια δυνατότητα που σας επιτρέπει να δείτε και να διαγνώσετε τα αρχεία καταγραφής εκκίνησης και λειτουργικού συστήματος των εικονικών μηχανών σας.

Οι Καταγραφές Σειριακής Κονσόλας παρέχουν μια χαμηλού επιπέδου άποψη της διαδικασίας εκκίνησης της παρουσίας, συμπεριλαμβανομένων των μηνυμάτων πυρήνα, των scripts init και άλλων συστημικών γεγονότων που συμβαίνουν κατά την εκκίνηση. Αυτό μπορεί να είναι χρήσιμο για την αποσφαλμάτωση προβλημάτων εκκίνησης, την αναγνώριση κακών ρυθμίσεων ή σφαλμάτων λογισμικού, ή την επίλυση προβλημάτων συνδεσιμότητας δικτύου.

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

Μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή gcloud για να ερωτήσετε τις καταγραφές σειριακής θύρας (η απαιτούμενη άδεια είναι compute.instances.getSerialPortOutput):

gcloud compute instances get-serial-port-output <instance-name>

Startup Scripts output

Είναι δυνατή η προβολή της έξοδου των startup scripts από το VM εκτελώντας:

sudo journalctl -u google-startup-scripts.service

OS Configuration Manager

Μπορείτε να χρησιμοποιήσετε την υπηρεσία διαχείρισης διαμόρφωσης OS για να αναπτύξετε, ερωτήσετε και διατηρήσετε συνεπείς διαμορφώσεις (επιθυμητή κατάσταση και λογισμικό) για την VM instance (VM) σας. Στο Compute Engine, πρέπει να χρησιμοποιήσετε guest policies για να διατηρήσετε συνεπείς διαμορφώσεις λογισμικού σε μια VM.

Η δυνατότητα διαχείρισης διαμόρφωσης OS σας επιτρέπει να ορίσετε πολιτικές διαμόρφωσης που καθορίζουν ποια πακέτα λογισμικού θα πρέπει να είναι εγκατεστημένα, ποιες υπηρεσίες θα πρέπει να είναι ενεργοποιημένες και ποια αρχεία ή διαμορφώσεις θα πρέπει να είναι παρόντα στις VMs σας. Μπορείτε να χρησιμοποιήσετε μια δηλωτική προσέγγιση για τη διαχείριση της διαμόρφωσης λογισμικού των VMs σας, η οποία σας επιτρέπει να αυτοματοποιήσετε και να κλιμακώσετε τη διαδικασία διαχείρισης διαμόρφωσης πιο εύκολα.

Αυτό επιτρέπει επίσης την είσοδο σε instances μέσω IAM permissions, οπότε είναι πολύ χρήσιμο για privesc και pivoting.

Warning

Για να ενεργοποιήσετε το os-config σε ολόκληρο το έργο ή σε μια instance χρειάζεται απλώς να ορίσετε το metadata key enable-oslogin σε true στο επιθυμητό επίπεδο.
Επιπλέον, μπορείτε να ορίσετε το metadata enable-oslogin-2fa σε true για να ενεργοποιήσετε το 2fa.

Όταν το ενεργοποιείτε κατά τη δημιουργία μιας instance, τα metadata keys θα ρυθμιστούν αυτόματα.

Περισσότερα σχετικά με 2fa στο OS-config, ισχύει μόνο αν ο χρήστης είναι χρήστης, αν είναι SA (όπως ο compute SA) δεν θα απαιτεί τίποτα επιπλέον.

Enumeration

gcloud compute os-config patch-deployments list
gcloud compute os-config patch-deployments describe <patch-deployment>

gcloud compute os-config patch-jobs list
gcloud compute os-config patch-jobs describe <patch-job>

Εικόνες

Προσαρμοσμένες Εικόνες

Οι προσαρμοσμένες εικόνες υπολογιστή μπορεί να περιέχουν ευαίσθητες λεπτομέρειες ή άλλες ευάλωτες ρυθμίσεις που μπορείτε να εκμεταλλευτείτε.

Όταν δημιουργείται μια εικόνα, μπορείτε να επιλέξετε 3 τύπους κρυπτογράφησης: Χρησιμοποιώντας κλειδί διαχειριζόμενο από την Google (προεπιλογή), ένα κλειδί από το KMS, ή ένα ακατέργαστο κλειδί που παρέχεται από τον πελάτη.

Αριθμητική

Μπορείτε να ερωτήσετε τη λίστα των μη τυπικών εικόνων σε ένα έργο με την ακόλουθη εντολή:

gcloud compute machine-images list
gcloud compute machine-images describe <name>
gcloud compute machine-images get-iam-policy <name>

Μπορείτε στη συνέχεια να εξάγετε τους εικονικούς δίσκους από οποιαδήποτε εικόνα σε πολλαπλές μορφές. Η παρακάτω εντολή θα εξάγει την εικόνα test-image σε μορφή qcow2, επιτρέποντάς σας να κατεβάσετε το αρχείο και να δημιουργήσετε μια VM τοπικά για περαιτέρω έρευνα:

gcloud compute images export --image test-image \
--export-format qcow2 --destination-uri [BUCKET]

# Execute container inside a docker
docker run --rm -ti gcr.io/<project-name>/secret:v1 sh

Ανύψωση Δικαιωμάτων

Ελέγξτε την ενότητα ανύψωσης δικαιωμάτων των Compute Instances.

Προσαρμοσμένα Πρότυπα Στιγμιότυπων

Ένα πρότυπο στιγμιότυπου ορίζει τις ιδιότητες του στιγμιότυπου για να βοηθήσει στην ανάπτυξη συνεπών ρυθμίσεων. Αυτά μπορεί να περιέχουν τους ίδιους τύπους ευαίσθητων δεδομένων όπως τα προσαρμοσμένα μεταδεδομένα ενός εκτελούμενου στιγμιότυπου. Μπορείτε να χρησιμοποιήσετε τις παρακάτω εντολές για να ερευνήσετε:

# List the available templates
gcloud compute instance-templates list

# Get the details of a specific template
gcloud compute instance-templates describe [TEMPLATE NAME]

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

Snapshots

Τα snapshots είναι αντίγραφα ασφαλείας δίσκων. Σημειώστε ότι αυτό δεν είναι το ίδιο με την κλωνοποίηση ενός δίσκου (μια άλλη διαθέσιμη δυνατότητα).
Το snapshot θα χρησιμοποιήσει την ίδια κρυπτογράφηση με τον δίσκο από τον οποίο έχει ληφθεί.

Enumeration

gcloud compute snapshots list
gcloud compute snapshots describe <snapshot>
gcloud compute snapshots get-iam-policy <snapshot>

Ανύψωση Δικαιωμάτων

Ελέγξτε την ενότητα ανύψωσης δικαιωμάτων των Compute Instances.

Αναφορές

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