GCP - Compute Instances
Reading time: 5 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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Basic Information
Google Cloud Compute Instances є налаштовуваними віртуальними машинами на хмарній інфраструктурі Google, що пропонують масштабовану та за запитом обчислювальну потужність для широкого спектру застосувань. Вони надають такі функції, як глобальне розгортання, постійне зберігання, гнучкий вибір ОС та потужні інтеграції мережі та безпеки, що робить їх універсальним вибором для хостингу веб-сайтів, обробки даних та ефективного виконання застосувань у хмарі.
Confidential VM
Confidential VMs використовують апаратні засоби безпеки, які пропонуються останнім поколінням процесорів AMD EPYC, що включають шифрування пам'яті та безпечну зашифровану віртуалізацію. Ці функції дозволяють VM захищати дані, які обробляються та зберігаються в ній, навіть від хостової операційної системи та гіпервізора.
Щоб запустити Confidential VM, можливо, потрібно змінити такі речі, як тип машини, мережевий інтерфейс, образ завантажувального диска.
Disk & Disk Encryption
Можливо вибрати диск для використання або створити новий. Якщо ви виберете новий, ви можете:
- Вибрати розмір диска
- Вибрати ОС
- Вказати, чи хочете ви видалити диск, коли екземпляр буде видалено
- Шифрування: За замовчуванням буде використано ключ, керований Google, але ви також можете вибрати ключ з KMS або вказати сирий ключ для використання.
Deploy Container
Можливо розгорнути контейнер всередині віртуальної машини.
Можливо налаштувати образ для використання, встановити команду для виконання всередині, аргументи, змонтувати об'єм та змінні середовища (чутлива інформація?) і налаштувати кілька параметрів для цього контейнера, таких як виконання як привілейований, stdin та псевдо TTY.
Service Account
За замовчуванням буде використано обліковий запис служби за замовчуванням Compute Engine. Електронна пошта цього SA виглядає так: <proj-num>-compute@developer.gserviceaccount.com
Цей обліковий запис служби має роль редактора на всьому проекті (високі привілеї).
А стандартні області доступу такі:
- https://www.googleapis.com/auth/devstorage.read_only -- Доступ на читання до бакетів :)
- https://www.googleapis.com/auth/logging.write
- https://www.googleapis.com/auth/monitoring.write
- https://www.googleapis.com/auth/servicecontrol
- https://www.googleapis.com/auth/service.management.readonly
- https://www.googleapis.com/auth/trace.append
Однак, можливо надати йому cloud-platform
одним кліком або вказати кастомні.
.png)
Firewall
Можливо дозволити HTTP та HTTPS трафік.
.png)
Networking
- IP Forwarding: Можливо увімкнути IP пересилання з моменту створення екземпляра.
- Hostname: Можливо надати екземпляру постійне ім'я хоста.
- Interface: Можливо додати мережевий інтерфейс
Extra Security
Ці параметри збільшать безпеку VM і рекомендуються:
- Secure boot: Secure boot допомагає захистити ваші VM екземпляри від шкідливих програм на рівні завантаження та ядра.
- Enable vTPM: Віртуальний модуль довіреної платформи (vTPM) перевіряє цілісність вашого гостьового VM перед завантаженням та під час завантаження, а також пропонує генерацію та захист ключів.
- Integrity supervision: Моніторинг цілісності дозволяє вам контролювати та перевіряти цілісність завантаження ваших захищених VM екземплярів за допомогою звітів Stackdriver. Вимагає увімкнення vTPM.
VM Access
Звичайний спосіб увімкнення доступу до VM - це дозволити певні SSH публічні ключі для доступу до VM.
Однак також можливо увімкнути доступ до VM через сервіс os-config
, використовуючи IAM. Більше того, можливо увімкнути 2FA для доступу до VM, використовуючи цей сервіс.
Коли цей сервіс увімкнено, доступ через SSH ключі вимкнено.
.png)
Metadata
Можливо визначити автоматизацію (userdata в AWS), яка є командами оболонки, що виконуватимуться щоразу, коли машина вмикається або перезавантажується.
Також можливо додати додаткові метадані у форматі ключ-значення, які будуть доступні з кінцевої точки метаданих. Ця інформація зазвичай використовується для змінних середовища та скриптів запуску/вимкнення. Це можна отримати, використовуючи метод describe
з команди в розділі перерахування, але також може бути отримано зсередини екземпляра, отримуючи доступ до кінцевої точки метаданих.
# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"
# view instance metadata
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"
Крім того, токен автентифікації для прикріпленого облікового запису служби та загальна інформація про екземпляр, мережу та проект також будуть доступні з метаданих. Для отримання додаткової інформації перегляньте:
Шифрування
За замовчуванням використовується ключ шифрування, керований Google, але можна налаштувати ключ шифрування, керований клієнтом (CMEK). Ви також можете налаштувати, що робити, коли використаний CMEK відкликано: нічого або вимкнути віртуальну машину.
.png)
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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.