GCP - Cloud Shell Persistence
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 - Cloud Shell EnumGoogle Cloud Shell надає вам доступ до командного рядка ваших хмарних ресурсів безпосередньо з вашого браузера без будь-яких супутніх витрат.
Ви можете отримати доступ до Cloud Shell Google з веб-консолі або запустивши gcloud cloud-shell ssh
.
Ця консоль має деякі цікаві можливості для атакуючих:
Будь-який користувач Google з доступом до Google Cloud має доступ до повністю автентифікованого екземпляра Cloud Shell (Службові облікові записи можуть, навіть будучи власниками організації).
Вказаний екземпляр зберігатиме свій домашній каталог принаймні 120 днів, якщо не буде жодної активності.
Немає можливостей для організації моніторити активність цього екземпляра.
Це в основному означає, що атакуючий може помістити бекдор у домашній каталог користувача, і поки користувач підключається до GC Shell принаймні кожні 120 днів, бекдор виживе, і атакуючий отримає оболонку щоразу, коли вона запускається, просто виконавши:
Є ще один файл у домашній папці під назвою .customize_environment
, який, якщо існує, буде виконуватись щоразу, коли користувач отримує доступ до cloud shell (як у попередній техніці). Просто вставте попередній бекдор або один з наступних, щоб підтримувати стійкість, поки користувач "часто" використовує cloud shell:
Важливо зазначити, що перший раз, коли виконується дія, що вимагає аутентифікації, у браузері користувача з'являється вікно авторизації. Це вікно потрібно прийняти, перш ніж команда зможе виконатися. Якщо з'явиться несподіване спливаюче вікно, це може викликати підозру і потенційно скомпрометувати метод збереження.
Це спливаюче вікно від виконання gcloud projects list
з cloud shell (як атакуючий), яке видно в сеансі користувача браузера:
Однак, якщо користувач активно використовував cloudshell, спливаюче вікно не з'явиться, і ви можете збирати токени користувача за допомогою:
В основному, використовуються ці 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 адресу 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
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)