GCP - Cloud Shell Persistence
Cloud Shell
Для отримання додаткової інформації перегляньте:
GCP - Cloud Shell EnumПостійна задні двері
Google Cloud Shell надає вам доступ до командного рядка для ваших хмарних ресурсів безпосередньо з вашого браузера без будь-яких пов'язаних витрат.
Ви можете отримати доступ до Cloud Shell від веб-консолі або запустивши gcloud cloud-shell ssh
.
У цій консолі є деякі цікаві можливості для атакування:
Будь-який користувач Google з доступом до Google Cloud має доступ до повністю аутентифікованого екземпляра Cloud Shell (Службові облікові записи можуть, навіть бути власниками організації).
Зазначений екземпляр буде зберігати свій домашній каталог принаймні 120 днів, якщо не відбувається жодної діяльності.
Немає можливостей для організації моніторингу діяльності цього екземпляра.
Це в основному означає, що атакуючий може розмістити задню двері в домашньому каталозі користувача, і поки користувач підключається до GC Shell принаймні раз на 120 днів, задня двері залишиться і атакуючий отримає оболонку кожного разу, коли вона запускається, просто виконавши:
Є ще один файл у домашній папці під назвою .customize_environment
, якщо він існує, він буде виконуватися кожного разу, коли користувач отримує доступ до хмарного шелу (як у попередній техніці). Просто вставте попередній backdoor або один з таких, щоб зберігати стійкість так довго, якщо користувач використовує "часто" хмарний шел:
Важливо зауважити, що перший раз, коли виконується дія, яка вимагає автентифікації, у браузері користувача з'являється спливаюче вікно авторизації. Це вікно повинно бути прийняте перед тим, як команда може бути виконана. Якщо з'явиться неочікуване спливаюче вікно, це може викликати підозру та потенційно підірвати використану методику постійності.
Це спливаюче вікно під час виконання gcloud projects list
з оболонки хмари (як зловмисник) переглядається в сеансі користувача браузера:
Однак, якщо користувач активно використовував cloudshell, спливаюче вікно не з'явиться, і ви можете збирати токени користувача за допомогою:
Як встановлюється з'єднання SSH
Основні чинні 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)
Але ви можете знайти додаткову інформацію за посиланням https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key
Посилання
Last updated