GCP - Compute Instances
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
基本信息
Google Cloud Compute Instances 是 可定制的虚拟机,运行在 Google 的云基础设施上,为各种应用提供可扩展和按需的计算能力。它们提供全球部署、持久存储、灵活的操作系统选择以及强大的网络和安全集成等功能,使其成为高效托管网站、处理数据和运行应用程序的多功能选择。
保密虚拟机
保密虚拟机使用 最新一代 AMD EPYC 处理器 提供的 基于硬件的安全特性,包括内存加密和安全加密虚拟化。这些特性使虚拟机能够保护处理和存储的数据,甚至防止宿主操作系统和虚拟机监控程序的访问。
要运行保密虚拟机,可能需要 更改 一些设置,例如 机器类型、网络 接口、启动磁盘映像。
磁盘与磁盘加密
可以 选择要使用的磁盘 或 创建一个新磁盘。如果选择新磁盘,可以:
- 选择磁盘的 大小
- 选择 操作系统
- 指定是否希望在实例被删除时 删除磁盘
- 加密:默认情况下将使用 Google 管理的密钥,但您也可以 从 KMS 选择一个密钥 或指定 要使用的原始密钥。
部署容器
可以在虚拟机内部署 容器。
可以配置要使用的 映像,设置要在内部运行的 命令、参数、挂载 卷 和 环境变量(敏感信息?),并为该容器配置多个选项,例如以 特权模式 执行、标准输入和伪 TTY。
服务账户
默认情况下,将使用 Compute Engine 默认服务账户。该服务账户的电子邮件格式为:<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)
防火墙
可以允许 HTTP 和 HTTPS 流量。
.png)
网络
- IP 转发:可以在实例创建时 启用 IP 转发。
- 主机名:可以为实例提供一个永久主机名。
- 接口:可以添加网络接口。
额外安全性
这些选项将 提高虚拟机的安全性,并且推荐使用:
- 安全启动:安全启动有助于保护您的虚拟机实例免受启动级和内核级恶意软件和根套件的攻击。
- 启用 vTPM:虚拟受信任平台模块(vTPM)验证您的客户虚拟机的预启动和启动完整性,并提供密钥生成和保护。
- 完整性监控:完整性监控让您可以使用 Stackdriver 报告监控和验证受保护虚拟机实例的运行时启动完整性。需要启用 vTPM。
虚拟机访问
启用对虚拟机的访问的常见方法是 允许某些 SSH 公钥 访问虚拟机。
不过,也可以通过 使用 IAM 的 os-config 服务启用对虚拟机的访问。此外,还可以通过此服务启用 2FA 以访问虚拟机。
当此 服务 被 启用 时,通过 SSH 密钥的访问将被禁用。
.png)
元数据
可以定义 自动化(AWS 中的 userdata),这些是每次机器启动或重启时将执行的 shell 命令。
还可以 添加额外的元数据键值对,这些将可以从元数据端点访问。此信息通常用于环境变量和启动/关闭脚本。可以使用 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 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
HackTricks Cloud

