GCP - local privilege escalation ssh pivoting
이 시나리오에서는 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 등) 내에서 찾을 수 있습니다.
사용자 정의 메타데이터
관리자는 인스턴스 및 프로젝트 수준에서 사용자 정의 메타데이터를 추가할 수 있습니다. 이는 임의의 키/값 쌍을 인스턴스로 전달하는 방법이며, 환경 변수 및 시작/종료 스크립트에 일반적으로 사용됩니다.
또한, 사용자 데이터를 추가할 수 있으며, 이는 머신이 시작되거나 재시작될 때마다 실행되는 스크립트이며, 메타데이터 엔드포인트에서도 접근할 수 있습니다.
자세한 정보는 다음을 확인하세요:
IAM 권한 남용하기
다음에 제안된 대부분의 권한은 기본 Compute SA에 부여됩니다. 유일한 문제는 기본 액세스 범위가 SA가 이를 사용하는 것을 방지한다는 것입니다. 그러나 cloud-platform
범위가 활성화되거나 compute
범위만 활성화되면, 이를 남용할 수 있습니다.
다음 권한을 확인하세요:
파일 시스템에서 키 검색하기
다른 사용자가 박스 내에서 gcloud에 로그인하고 파일 시스템에 자격 증명을 남겼는지 확인하세요:
이것들은 가장 흥미로운 파일들입니다:
~/.config/gcloud/credentials.db
~/.config/gcloud/legacy_credentials/[ACCOUNT]/adc.json
~/.config/gcloud/legacy_credentials/[ACCOUNT]/.boto
~/.credentials.json
더 많은 API 키 정규 표현식
References
Last updated