GCP - Sourcerepos Privesc
소스 저장소
소스 저장소에 대한 자세한 정보는 확인하세요:
pageGCP - Source Repositories Enumsource.repos.get
source.repos.get
이 권한으로 로컬로 저장소를 다운로드할 수 있습니다:
source.repos.update
source.repos.update
이 권한을 가진 주체는 gcloud source repos clone <repo>
로 복제된 저장소에 코드를 작성할 수 있습니다. 그러나 이 권한은 사용자 정의 역할에 할당할 수 없으므로 다음과 같은 미리 정의된 역할을 통해 제공되어야 합니다:
소유자
편집자
소스 저장소 관리자 (
roles/source.admin
)소스 저장소 작성자 (
roles/source.writer
)
코드를 작성하려면 단순히 **git push
**를 실행하면 됩니다.
source.repos.setIamPolicy
source.repos.setIamPolicy
이 권한을 가진 공격자는 이전 권한을 부여할 수 있습니다.
비밀 액세스
공격자가 토큰이 저장된 비밀에 액세스할 수 있다면, 해당 토큰을 도난당할 수 있습니다. 비밀에 액세스하는 방법에 대한 자세한 정보는 다음을 확인하십시오:
pageGCP - Secretmanager PrivescSSH 키 추가
웹 콘솔에서 소스 저장소 프로젝트에 SSH 키를 추가할 수 있습니다. 이는 **/v1/sshKeys:add
**로 POST 요청을 수행하며 https://source.cloud.google.com/user/ssh_keys에서 구성할 수 있습니다.
SSH 키를 설정한 후, 다음과 같이 저장소에 액세스할 수 있습니다:
그런 다음 git
명령을 평소처럼 사용합니다.
수동 자격 증명
소스 저장소에 액세스하기 위해 수동 자격 증명을 만들 수 있습니다:
첫 번째 링크를 클릭하면 https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3로 이동됩니다.
이 링크를 클릭하면 Google Cloud Development에 액세스 권한을 부여하기 위한 Oauth 인증 프롬프트가 나타납니다. 따라서 이를 위해 사용자의 자격 증명 또는 브라우저에서 열린 세션이 필요합니다.
이 페이지로 이동하여 bash 스크립트를 실행하고 **$HOME/.gitcookies
**에 git 쿠키를 구성할 수 있습니다.
스크립트를 실행하면 git clone, push...를 사용할 수 있습니다.
source.repos.updateProjectConfig
source.repos.updateProjectConfig
이 권한을 사용하면 Source Repositories의 기본 보호 기능을 비활성화하여 개인 키가 포함된 코드를 업로드하지 않을 수 있습니다:
당신은 다른 pub/sub 주제를 구성하거나 완전히 비활성화할 수도 있습니다:
最終更新