GCP - Pub/Sub 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

Pub/Sub

Google Cloud Pub/Sub περιγράφεται ως μια υπηρεσία που διευκολύνει την ανταλλαγή μηνυμάτων μεταξύ ανεξάρτητων εφαρμογών. Τα κύρια συστατικά περιλαμβάνουν θέματα, στα οποία οι εφαρμογές μπορούν να εγγραφούν. Οι εγγεγραμμένες εφαρμογές έχουν τη δυνατότητα να στέλνουν και να λαμβάνουν μηνύματα. Κάθε μήνυμα περιλαμβάνει το πραγματικό περιεχόμενο μαζί με σχετικές μεταδεδομένες πληροφορίες.

Το θέμα είναι η ουρά όπου τα μηνύματα θα σταλούν, ενώ οι εγγραφές είναι τα αντικείμενα που οι χρήστες θα χρησιμοποιήσουν για να προσεγγίσουν τα μηνύματα στα θέματα. Μπορεί να υπάρχει περισσότερη από 1 εγγραφή ανά θέμα και υπάρχουν 4 τύποι εγγραφών:

  • Pull: Οι χρήστης/ες αυτής της εγγραφής χρειάζεται να τραβήξουν μηνύματα.
  • Push: Ένας URL endpoint υποδεικνύεται και τα μηνύματα θα σταλούν άμεσα σε αυτόν.
  • Big query table: Όπως το push αλλά τοποθετώντας τα μηνύματα μέσα σε έναν πίνακα Big query.
  • Cloud Storage: Παράδοση μηνυμάτων απευθείας σε έναν υπάρχοντα κάδο.

Από προεπιλογή, μια εγγραφή λήγει μετά από 31 ημέρες, αν και μπορεί να ρυθμιστεί να μην λήξει ποτέ.

Από προεπιλογή, ένα μήνυμα διατηρείται για 7 ημέρες, αλλά αυτός ο χρόνος μπορεί να αυξηθεί έως 31 ημέρες. Επίσης, αν δεν ACKed σε 10s, επιστρέφει στην ουρά. Μπορεί επίσης να ρυθμιστεί ώστε τα ACKed μηνύματα να συνεχίσουν να αποθηκεύονται.

Ένα θέμα είναι από προεπιλογή κρυπτογραφημένο χρησιμοποιώντας ένα Google managed encryption key. Αλλά μπορεί επίσης να επιλεγεί ένα CMEK (Customer Managed Encryption Key) από το KMS.

Dead letter: Οι εγγραφές μπορεί να ρυθμίσουν έναν μέγιστο αριθμό προσπαθειών παράδοσης. Όταν ένα μήνυμα δεν μπορεί να παραδοθεί, αναδημοσιεύεται στο καθορισμένο θέμα dead letter.

Snapshots & Schemas

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

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

Enumeration

# Get a list of topics in the project
gcloud pubsub topics list
gcloud pubsub topics describe <topic>
gcloud pubsub topics list-subscriptions <topic>
gcloud pubsub topics get-iam-policy <topic>

# Get a list of subscriptions across all topics
gcloud pubsub subscriptions list
gcloud pubsub subscriptions describe <subscription>
gcloud pubsub subscriptions get-iam-policy <subscription>

# Get list of schemas
gcloud pubsub schemas list
gcloud pubsub schemas describe <schema>
gcloud pubsub schemas list-revisions <schema>

# Get list of snapshots
gcloud pubsub snapshots list
gcloud pubsub snapshots describe <snapshot>

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

Κλιμάκωση Δικαιωμάτων & Μετά την Εκμετάλλευση

GCP - Pub/Sub Post Exploitation

Pub/Sub Lite

Pub/Sub Lite είναι μια υπηρεσία μηνυμάτων με ζωνική αποθήκευση. Το Pub/Sub Lite κοστίζει ένα κλάσμα του Pub/Sub και προορίζεται για υψηλής χωρητικότητας ροές (έως 10 εκατομμύρια μηνύματα ανά δευτερόλεπτο) και συστήματα που βασίζονται σε γεγονότα όπου το χαμηλό κόστος είναι η κύρια προτεραιότητα.

Στο PubSub Lite υπάρχουν θέματα και συνδρομές, δεν υπάρχουν στιγμιότυπα και σχήματα και υπάρχουν:

  • Δεσμεύσεις: Οι Δεσμεύσεις του Pub/Sub Lite είναι μια δυνατότητα που επιτρέπει στους χρήστες να δεσμεύουν χωρητικότητα σε μια συγκεκριμένη περιοχή για τις ροές μηνυμάτων τους.
  • Λειτουργίες: Αναφέρεται στις ενέργειες και τα καθήκοντα που εμπλέκονται στη διαχείριση και διοίκηση του Pub/Sub Lite.

Αρίθμηση

# lite-topics
gcloud pubsub lite-topics list
gcloud pubsub lite-topics describe <topic>
gcloud pubsub lite-topics list-subscriptions <topic>

# lite-subscriptions
gcloud pubsub lite-subscriptions list
gcloud pubsub lite-subscriptions describe <subscription>

# lite-reservations
gcloud pubsub lite-reservations list
gcloud pubsub lite-reservations describe <topic>
gcloud pubsub lite-reservations list-topics <topic>

# lite-operations
gcloud pubsub lite-operations list
gcloud pubsub lite-operations describe <topic>

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