GCP - Storage 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 지원하기

Cloud Storage

Cloud Storage에 대한 자세한 정보는 다음 페이지를 확인하세요:

GCP - Storage Enum

공개 액세스 허용

외부 사용자(GCP에 로그인했든 아니든)에게 버킷 콘텐츠에 대한 접근을 허용할 수 있습니다. 그러나 기본적으로 버킷은 공개 노출 옵션이 비활성화되어 있습니다:

# Disable public prevention
gcloud storage buckets update gs://BUCKET_NAME --no-public-access-prevention

# Make all objects in a bucket public
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
## I don't think you can make specific objects public just with IAM

# Make a bucket or object public (via ACL)
gcloud storage buckets update gs://BUCKET_NAME --add-acl-grant=entity=AllUsers,role=READER
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --add-acl-grant=entity=AllUsers,role=READER

ACLs가 비활성화된 버킷에 ACLs를 부여하려고 하면 다음과 같은 오류가 나타납니다: ERROR: HTTPError 400: Cannot use ACL API to update bucket policy when uniform bucket-level access is enabled. Read more at https://cloud.google.com/storage/docs/uniform-bucket-level-access

브라우저에서 공개된 버킷에 접근하려면 URL https://<bucket_name>.storage.googleapis.com/ 또는 https://<bucket_name>.storage.googleapis.com/<object_name> 에 접속하세요

storage.objects.delete (storage.objects.get)

객체를 삭제하려면:

gcloud storage rm gs://<BUCKET_NAME>/<OBJECT_NAME> --project=<PROJECT_ID>

storage.buckets.delete, storage.objects.delete & storage.objects.list

버킷을 삭제하려면:

gcloud storage rm -r gs://<BUCKET_NAME>

HMAC Keys 비활성화

권한 storage.hmacKeys.update는 HMAC Keys를 비활성화할 수 있게 해주며, 권한 storage.hmacKeys.delete는 Cloud Storage에 있는 서비스 계정과 연결된 HMAC Keys를 삭제할 수 있게 합니다.

# Deactivate
gcloud storage hmac update <ACCESS_ID> --deactivate

# Delete
gcloud storage hmac delete <ACCESS_ID>

storage.buckets.setIpFilter & storage.buckets.update

권한 storage.buckets.setIpFilterstorage.buckets.update 권한과 함께 주체가 Cloud Storage 버킷의 IP 주소 필터를 구성할 수 있게 하며, 버킷 리소스에 접근을 허용할 IP 범위나 주소를 지정할 수 있습니다.

IP 필터를 완전히 제거하려면 다음 명령을 사용할 수 있습니다:

gcloud storage buckets update gs://<BUCKET_NAME> --project=<PROJECT_ID>

필터링된 IP를 변경하려면 다음 명령을 사용할 수 있습니다:

gcloud storage buckets update gs://<BUCKET_NAME> \
--ip-filter-file=ip-filter.json \
--project=<PROJECT_ID>

JSON 파일은 필터 자체를 나타내며, 다음과 같습니다:

{
"mode": "Enabled",
"publicNetworkSource": {
"allowedIpCidrRanges": ["<IP>/<MASK>"]
},
"allowCrossOrgVpcs": false,
"allowAllServiceAgentAccess": false
}

storage.buckets.restore

버킷을 복원하려면 다음을 사용하세요:

gcloud storage restore gs://<BUCKET_NAME>#<GENERATION> \
--project=<PROJECT_ID>

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 지원하기