GCP - Compute Enum

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

HackTricks를 지원하는 다른 방법:

GCP VPC & Networking

다음에서 이 작업 방식에 대해 알아보세요:

pageGCP - VPC & Networking

열거

# List networks
gcloud compute networks list
gcloud compute networks describe <network>

# List subnetworks
gcloud compute networks subnets list
gcloud compute networks subnets get-iam-policy <name> --region <region>
gcloud compute networks subnets describe <name> --region <region>

# List FW rules in networks
gcloud compute firewall-rules list --format="table(
name,
network,
direction,
priority,
sourceRanges.list():label=SRC_RANGES,
destinationRanges.list():label=DEST_RANGES,
allowed[].map().firewall_rule().list():label=ALLOW,
denied[].map().firewall_rule().list():label=DENY,
sourceTags.list():label=SRC_TAGS,
sourceServiceAccounts.list():label=SRC_SVC_ACCT,
targetTags.list():label=TARGET_TAGS,
targetServiceAccounts.list():label=TARGET_SVC_ACCT,
disabled
)"

# List Hierarchical Firewalls
gcloud compute firewall-policies list  (--folder <value>| --organization <value>)
gcloud compute firewall-policies describe <fw_policy>
gcloud compute firewall-policies list-rules <fw_policy>

# Get Firewalls of each region
gcloud compute network-firewall-policies list
## Get final FWs applied in a region
gcloud compute network-firewall-policies get-effective-firewalls --network=<vpc_name> --region <region>

https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_firewall_enum을 사용하여 오픈된 방화벽 규칙을 가진 컴퓨팅 인스턴스를 쉽게 찾을 수 있습니다.

컴퓨팅 인스턴스

이것은 GCP 내에서 가상 머신을 실행하는 방법입니다. 자세한 정보는 다음 페이지를 확인하십시오:

pageGCP - Compute Instances

열거

# Get list of zones
# It's interesting to know which zones are being used
gcloud compute regions list | grep -E "NAME|[^0]/"

# List compute instances & get info
gcloud compute instances list
gcloud compute instances describe <instance name>
gcloud compute instances get-iam-policy <instance> --zone=ZONE
gcloud compute instances get-screenshot <instance name> # Instace must have "Display Device" enabled
gcloud compute instances os-inventory list-instances # Get OS info of instances (OS Config agent is running on instances)


# Enumerate disks
gcloud compute disks list
gcloud compute disks describe <disk>
gcloud compute disks get-iam-policy <disk>

권한 상승

다음 페이지에서 컴퓨팅 권한을 남용하여 권한을 상승하는 방법을 확인할 수 있습니다:

pageGCP - Compute Privesc

인증되지 않은 열거

pageGCP - Compute Unauthenticated Enum

사후 침투

pageGCP - Compute Post Exploitation

지속성

pageGCP - Compute Persistence

시리얼 콘솔 로그

Compute Engine 시리얼 콘솔 로그는 가상 머신 인스턴스의 부팅 및 운영 체제 로그를 보고 진단할 수 있는 기능입니다.

시리얼 콘솔 로그는 인스턴스의 부팅 프로세스를 저수준으로 보여줍니다. 이는 커널 메시지, init 스크립트 및 부팅 중에 발생하는 기타 시스템 이벤트를 포함합니다. 이는 부팅 문제의 디버깅, 구성 오류 또는 소프트웨어 오류 식별, 또는 네트워크 연결 문제 해결에 유용할 수 있습니다.

이러한 로그는 일반적으로 저레벨 사용자가 보지 못하는 시스템 로그에서 민감한 정보를 노출할 수 있지만 적절한 IAM 권한이 있으면 읽을 수 있을 수 있습니다.

시리얼 포트 로그를 쿼리하기 위해 다음 gcloud 명령을 사용할 수 있습니다(필요한 권한은 compute.instances.getSerialPortOutput입니다):

gcloud compute instances get-serial-port-output <instance-name>

OS 구성 관리자

OS 구성 관리 서비스를 사용하여 VM 인스턴스(VM)에 일관된 구성(원하는 상태 및 소프트웨어)를 배포, 쿼리 및 유지할 수 있습니다. Compute Engine에서는 VM에 일관된 소프트웨어 구성을 유지하기 위해 게스트 정책을 사용해야 합니다.

OS 구성 관리 기능을 사용하면 설치해야 하는 소프트웨어 패키지, 활성화해야 하는 서비스 및 VM에 있어야 하는 파일 또는 구성을 지정하는 구성 정책을 정의할 수 있습니다. VM의 소프트웨어 구성을 관리하기 위해 선언적 접근 방식을 사용할 수 있어 구성 관리 프로세스를 자동화하고 확장할 수 있습니다.

또한 IAM 권한을 통해 인스턴스에 로그인할 수 있도록 허용하므로 권한 상승 및 피벗에 매우 유용합니다.

프로젝트 전체 또는 인스턴스에서 os-config를 활성화하려면 원하는 수준에서 enable-oslogin 메타데이터 키를 **true**로 설정하면 됩니다. 또한 2단계 인증을 활성화하려면 메타데이터 **enable-oslogin-2fa**를 **true**로 설정할 수 있습니다.

인스턴스 생성 시 활성화하면 메타데이터 키가 자동으로 설정됩니다.

OS-config의 2단계 인증에 대해 더 알아보면, 사용자인 경우에만 적용되며, 컴퓨트 SA와 같은 SA의 경우 추가 조치가 필요하지 않습니다.

열거

gcloud compute os-config patch-deployments list
gcloud compute os-config patch-deployments describe <patch-deployment>

gcloud compute os-config patch-jobs list
gcloud compute os-config patch-jobs describe <patch-job>

이미지

사용자 정의 이미지

사용자 정의 컴퓨팅 이미지에는 민감한 세부 정보나 다른 취약한 구성 요소가 포함될 수 있습니다.

이미지가 생성될 때 Google 관리 키(기본값), KMS에서 키를 사용하거나 클라이언트가 제공한 원시 키를 사용하여 3 종류의 암호화를 선택할 수 있습니다.

열거

다음 명령을 사용하여 프로젝트 내의 비표준 이미지 목록을 조회할 수 있습니다:

gcloud compute machine-images list
gcloud compute machine-images describe <name>
gcloud compute machine-images get-iam-policy <name>

그런 다음 export를 사용하여 여러 형식으로 이미지에서 가상 디스크내보낼 수 있습니다. 다음 명령은 qcow2 형식으로 이미지 test-image를 내보내어 파일을 다운로드하고 추가 조사를 위해 로컬에서 VM을 빌드할 수 있습니다:

gcloud compute images export --image test-image \
--export-format qcow2 --destination-uri [BUCKET]

# Execute container inside a docker
docker run --rm -ti gcr.io/<project-name>/secret:v1 sh

권한 상승

Compute Instances 권한 상승 섹션을 확인합니다.

사용자 지정 인스턴스 템플릿

인스턴스 템플릿은 일관된 구성을 배포하는 데 도움이 되는 인스턴스 속성을 정의합니다. 이들은 실행 중인 인스턴스의 사용자 정의 메타데이터와 동일한 유형의 민감한 데이터를 포함할 수 있습니다. 다음 명령을 사용하여 조사할 수 있습니다:

# List the available templates
gcloud compute instance-templates list

# Get the details of a specific template
gcloud compute instance-templates describe [TEMPLATE NAME]

스냅샷

스냅샷은 디스크의 백업입니다. 이는 디스크를 복제하는 것과는 다른 기능임을 유의하십시오. 스냅샷은 가져온 디스크와 동일한 암호화를 사용합니다.

열거

gcloud compute snapshots list
gcloud compute snapshots describe <snapshot>
gcloud compute snapshots get-iam-policy <snapshot>

권한 상승

컴퓨팅 인스턴스 권한 상승 섹션을 확인하십시오.

참고 자료

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

HackTricks를 지원하는 다른 방법:

最終更新