GCP - local privilege escalation ssh pivoting

htARTE (HackTricks AWS Red Team Expert)를 통해 제로부터 영웅이 될 때까지 AWS 해킹을 배우세요 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법:

이 시나리오에서는 Compute Engine 프로젝트 내의 VM에서 권한이 없는 계정을 침해했다고 가정합니다.

놀랍게도, 침해한 Compute Engine의 GCP 권한을 사용하여 로컬에서 권한 상승을 할 수 있습니다. 클라우드 환경에서 항상 매우 유용하지는 않겠지만 가능하다는 것을 알고 있는 것이 좋습니다.

스크립트 읽기

Compute Instances는 서비스 계정을 사용하여 일부 스크립트를 실행하는 데 사용될 수 있습니다.

IAM이 매우 세분화되어 있기 때문에 계정은 리소스에 대한 읽기/쓰기 권한을 가질 수 있지만 목록 권한은 없을 수 있습니다.

이를 위한 좋은 가상의 예는 instance82736-long-term-xyz-archive-0332893라는 저장 버킷에 백업을 읽고 쓸 수 있는 권한이 있는 Compute Instance입니다.

명령 줄에서 gsutil ls를 실행하면 서비스 계정이 storage.buckets.list IAM 권한이 없기 때문에 아무것도 반환되지 않습니다. 그러나 gsutil ls gs://instance82736-long-term-xyz-archive-0332893를 실행하면 완전한 파일 시스템 백업을 찾을 수 있으며, 이를 통해 로컬 Linux 계정이 액세스할 수 없는 데이터에 대한 평문 액세스를 얻을 수 있습니다.

이 버킷 이름을 bash, Python, Ruby 스크립트에서 찾을 수 있습니다.

사용자 정의 메타데이터

관리자는 인스턴스프로젝트 수준에서 사용자 정의 메타데이터를 추가할 수 있습니다. 이는 인스턴스로 임의의 키/값 쌍을 전달하는 방법으로, 주로 환경 변수 및 시작/종료 스크립트에 사용됩니다.

또한 userdata를 추가할 수 있으며, 이는 기계가 시작되거나 다시 시작될 때마다 실행되는 스크립트로, 메타데이터 엔드포인트에서도 액세스할 수 있습니다.

자세한 정보는 확인하세요:

IAM 권한 남용

다음 제안된 권한 대부분은 기본 Compute SA에게 부여되지만 기본 액세스 범위로 인해 SA가 사용할 수 없습니다. 그러나 cloud-platform 범위가 활성화되어 있거나 compute 범위만 활성화되어 있다면 이를 남용할 수 있습니다.

다음 권한을 확인하세요:

파일 시스템에서 키 검색

상자 내에서 다른 사용자가 gcloud에 로그인하고 파일 시스템에 자격 증명을 남긴 경우를 확인하세요:

sudo find / -name "gcloud"

다음은 가장 흥미로운 파일들입니다:

  • ~/.config/gcloud/credentials.db

  • ~/.config/gcloud/legacy_credentials/[ACCOUNT]/adc.json

  • ~/.config/gcloud/legacy_credentials/[ACCOUNT]/.boto

  • ~/.credentials.json

더 많은 API 키 regexes

TARGET_DIR="/path/to/whatever"

# Service account keys
grep -Pzr "(?s){[^{}]*?service_account[^{}]*?private_key.*?}" \
"$TARGET_DIR"

# Legacy GCP creds
grep -Pzr "(?s){[^{}]*?client_id[^{}]*?client_secret.*?}" \
"$TARGET_DIR"

# Google API keys
grep -Pr "AIza[a-zA-Z0-9\\-_]{35}" \
"$TARGET_DIR"

# Google OAuth tokens
grep -Pr "ya29\.[a-zA-Z0-9_-]{100,200}" \
"$TARGET_DIR"

# Generic SSH keys
grep -Pzr "(?s)-----BEGIN[ A-Z]*?PRIVATE KEY[a-zA-Z0-9/\+=\n-]*?END[ A-Z]*?PRIVATE KEY-----" \
"$TARGET_DIR"

# Signed storage URLs
grep -Pir "storage.googleapis.com.*?Goog-Signature=[a-f0-9]+" \
"$TARGET_DIR"

# Signed policy documents in HTML
grep -Pzr '(?s)<form action.*?googleapis.com.*?name="signature" value=".*?">' \
"$TARGET_DIR"

참고 자료

htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅까지 AWS 해킹 배우기**!

HackTricks를 지원하는 다른 방법:

最終更新