GCP - Add Custom SSH Metadata
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
인스턴스의 메타데이터 수정은 공격자가 필요한 권한을 얻을 경우 심각한 보안 위험을 초래할 수 있습니다.
GCP에서 리눅스 시스템은 종종 Google Compute Engine용 Python Linux Guest Environment에서 스크립트를 실행합니다. 이의 중요한 구성 요소는 정기적으로 인스턴스 메타데이터 엔드포인트를 확인하여 허가된 SSH 공개 키의 업데이트를 확인하는 accounts daemon입니다.
따라서 공격자가 사용자 정의 메타데이터를 수정할 수 있다면, 그는 데몬이 새로운 공개 키를 찾도록 만들 수 있으며, 이는 처리되어 로컬 시스템에 통합됩니다. 키는 기존 사용자의 ~/.ssh/authorized_keys
파일에 추가되거나, 키의 형식에 따라 sudo
권한이 있는 새로운 사용자를 생성할 수 있습니다. 그리고 공격자는 호스트를 손상시킬 수 있습니다.
인스턴스의 기존 SSH 키 확인:
인스턴스와 그 메타데이터를 설명하는 명령을 실행하여 기존 SSH 키를 찾습니다. 출력의 관련 섹션은 metadata
아래, 특히 ssh-keys
키에 있습니다.
SSH 키의 형식에 주의하십시오: 사용자 이름은 키 앞에 위치하며, 콜론으로 구분됩니다.
SSH 키 메타데이터를 위한 텍스트 파일 준비:
사용자 이름과 해당 SSH 키의 세부 정보를 meta.txt
라는 텍스트 파일에 저장합니다. 이는 기존 키를 보존하면서 새로운 키를 추가하는 데 필수적입니다.
대상 사용자(alice
예시)의 새로운 SSH 키 생성:
ssh-keygen
명령을 사용하여 새로운 SSH 키를 생성하며, 주석 필드(-C
)가 대상 사용자 이름과 일치하도록 합니다.
새로운 공개 키를 meta.txt
에 추가하여 인스턴스의 메타데이터에서 찾은 형식을 모방합니다.
인스턴스의 SSH 키 메타데이터 업데이트:
gcloud compute instances add-metadata
명령을 사용하여 인스턴스에 업데이트된 SSH 키 메타데이터를 적용합니다.
새로운 SSH 키를 사용하여 인스턴스에 접근:
새로운 키를 사용하여 SSH로 인스턴스에 연결하고, 대상 사용자(alice
예시)의 컨텍스트에서 셸에 접근합니다.
흥미로운 사용자가 발견되지 않으면, sudo
권한이 부여된 새로운 사용자를 생성할 수 있습니다:
프로젝트 수준에서 SSH 키를 적용하여 클라우드 환경의 여러 가상 머신(VM)에 대한 SSH 액세스 범위를 넓힐 수 있습니다. 이 접근 방식은 프로젝트 내에서 명시적으로 프로젝트 전체 SSH 키를 차단하지 않은 모든 인스턴스에 SSH 액세스를 허용합니다. 요약 가이드는 다음과 같습니다:
프로젝트 수준에서 SSH 키 적용:
gcloud compute project-info add-metadata
명령을 사용하여 meta.txt
의 SSH 키를 프로젝트의 메타데이터에 추가합니다. 이 작업은 VM이 "프로젝트 전체 SSH 키 차단" 옵션을 활성화하지 않는 한, SSH 키가 프로젝트의 모든 VM에서 인식되도록 보장합니다.
프로젝트 전체 키를 사용하여 인스턴스에 SSH 접속:
프로젝트 전체 SSH 키가 설정되면, 프로젝트 내의 모든 인스턴스에 SSH 접속할 수 있습니다. 프로젝트 전체 키를 차단하지 않는 인스턴스는 SSH 키를 수락하여 액세스를 허용합니다.
인스턴스에 SSH 접속하는 직접적인 방법은 gcloud compute ssh [INSTANCE]
명령을 사용하는 것입니다. 이 명령은 현재 사용자 이름과 프로젝트 수준에서 설정된 SSH 키를 사용하여 액세스를 시도합니다.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)