GCP - Cloud Run Enum

htARTE (HackTricks AWS Red Team 전문가)로부터 AWS 해킹을 처음부터 전문가까지 배우세요!

HackTricks를 지원하는 다른 방법:

Cloud Run

Cloud Run은 Google의 확장 가능한 인프라 위에 직접 컨테이너를 실행할 수 있는 서버리스 관리형 컴퓨팅 플랫폼입니다.

컨테이너를 실행하거나 Go, Node.js, Python, Java, .NET Core 또는 Ruby를 사용하는 경우 소스 기반 배포 옵션을 사용하여 컨테이너를 빌드할 수 있습니다.

Google은 Cloud Run을 Google Cloud의 다른 서비스와 원활하게 작동하도록 구축했으므로 풀 기능의 애플리케이션을 구축할 수 있습니다.

서비스 및 작업

Cloud Run에서 코드는 서비스 또는 _작업_으로 계속 실행할 수 있습니다. 서비스와 작업은 동일한 환경에서 실행되며 Google Cloud의 다른 서비스와 동일한 통합을 사용할 수 있습니다.

  • Cloud Run 서비스. 웹 요청 또는 이벤트에 응답하는 코드를 실행하는 데 사용됩니다.

  • Cloud Run 작업. 작업을 수행하는 코드(작업)를 실행하고 작업이 완료되면 종료하는 데 사용됩니다.

Cloud Run 서비스

Google Cloud Run은 환경 변수를 검색할 수 있는 또 다른 서버리스 제공입니다. Cloud Run은 기본적으로 컨테이너 내부의 포트 8080에서 실행되는 작은 웹 서버를 생성하여 HTTP GET 요청을 기다리는 상태로 유지합니다. 요청을 받으면 작업이 실행되고 작업 로그가 HTTP 응답을 통해 출력됩니다.

관련 세부 정보

  • 기본적으로 웹 서버에 대한 액세스공개지만 내부 트래픽으로 제한할 수도 있습니다(VPC...) 또한 웹 서버에 연락하기 위한 인증모두 허용하거나 IAM을 통한 인증이 필요할 수 있습니다.

  • 기본적으로 암호화Google 관리 키를 사용하지만 KMSCMEK(고객 관리형 암호화 키)를 선택할 수도 있습니다.

  • 기본적으로 사용되는 서비스 계정은 프로젝트에 대한 Editor 액세스 권한을 갖는 Compute Engine 기본 계정이며 cloud-platform 스코프를 갖습니다.

  • 실행을 위해 평문 환경 변수를 정의하거나 클라우드 비밀마운트하거나 환경 변수에 추가할 수 있습니다.

  • 또한 Cloud SQL과 연결을 추가하거나 파일 시스템을 마운트할 수 있습니다.

  • 배포된 서비스의 URL은 **https://<svc-name>-<random>.a.run.app**와 유사합니다.

  • Run 서비스에는 1개 이상의 버전 또는 리비전이 있을 수 있으며 여러 리비전 사이에서 트래픽을 분할할 수 있습니다.

열거

# List services
gcloud run services list
gcloud run services list --platform=managed
gcloud run services list --platform=gke

# Get info of a service
gcloud run services describe --region <region> <svc-name>

# Get info of all the services together
gcloud run services list --format=yaml
gcloud run services list --platform=managed --format=json
gcloud run services list --platform=gke --format=json

# Get policy
gcloud run services get-iam-policy --region <region> <svc-name>

# Get revisions
gcloud run revisions list --region <region>
gcloud run revisions describe --region <region> <revision>

# Get domains
gcloud run domain-mappings list
gcloud run domain-mappings describe <name>

# Attempt to trigger a job unauthenticated
curl <url>

# Attempt to trigger a job with your current gcloud authorization
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" <url>

Cloud Run 작업

Cloud Run 작업은 완료될 때까지 실행되는 컨테이너에 더 적합합니다. 작업은 요청을 처리하거나 포트에서 수신 대기할 수 없습니다. 이는 Cloud Run 서비스와는 달리 작업은 웹 서버를 번들로 포함해서는 안 된다는 것을 의미합니다. 대신, 작업 컨테이너는 완료되면 종료해야 합니다.

열거

gcloud beta run jobs list
gcloud beta run jobs describe --region <region> <job-name>
gcloud beta run jobs get-iam-policy --region <region> <job-name>

권한 상승

다음 페이지에서 클라우드 런 권한을 남용하여 권한 상승하는 방법을 확인할 수 있습니다:

pageGCP - Run Privesc

인증되지 않은 액세스

pageGCP - Cloud Run Unauthenticated Enum

사후 침투

pageGCP - Cloud Run Post Exploitation

지속성

pageGCP - Cloud Run Persistence

참고 자료

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

HackTricks를 지원하는 다른 방법:

最終更新