GCP - 计算枚举
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 来分享黑客技巧。
GCP VPC 和网络
了解其工作原理:
枚举
# List networks
gcloud compute networks list
gcloud compute networks describe <network>
# List subnetworks
gcloud compute networks subnets list
gcloud compute networks subnets get-iam-policy <name> --region <region>
gcloud compute networks subnets describe <name> --region <region>
# List FW rules in networks
gcloud compute firewall-rules list --format="table(
name,
network,
direction,
priority,
sourceRanges.list():label=SRC_RANGES,
destinationRanges.list():label=DEST_RANGES,
allowed[].map().firewall_rule().list():label=ALLOW,
denied[].map().firewall_rule().list():label=DENY,
sourceTags.list():label=SRC_TAGS,
sourceServiceAccounts.list():label=SRC_SVC_ACCT,
targetTags.list():label=TARGET_TAGS,
targetServiceAccounts.list():label=TARGET_SVC_ACCT,
disabled
)"
# List Hierarchical Firewalls
gcloud compute firewall-policies list (--folder <value>| --organization <value>)
gcloud compute firewall-policies describe <fw_policy>
gcloud compute firewall-policies list-rules <fw_policy>
# Get Firewalls of each region
gcloud compute network-firewall-policies list
## Get final FWs applied in a region
gcloud compute network-firewall-policies get-effective-firewalls --network=<vpc_name> --region <region>
您可以轻松找到具有开放防火墙规则的计算实例,链接:https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_firewall_enum
计算实例
这是您可以在 GCP 内运行虚拟机的方式。有关更多信息,请查看此页面:
枚举
# Get list of zones
# It's interesting to know which zones are being used
gcloud compute regions list | grep -E "NAME|[^0]/"
# List compute instances & get info
gcloud compute instances list
gcloud compute instances describe <instance name>
gcloud compute instances get-iam-policy <instance> --zone=ZONE
gcloud compute instances get-screenshot <instance name> # Instace must have "Display Device" enabled
gcloud compute instances os-inventory list-instances # Get OS info of instances (OS Config agent is running on instances)
# Enumerate disks
gcloud compute disks list
gcloud compute disks describe <disk>
gcloud compute disks get-iam-policy <disk>
有关如何SSH或修改实例的元数据以提升权限的更多信息,请查看此页面:
GCP - local privilege escalation ssh pivoting
权限提升
在以下页面中,您可以查看如何滥用计算权限以提升权限:
未经身份验证的枚举
GCP - Compute Unauthenticated Enum
后期利用
GCP - Compute Post Exploitation
持久性
串行控制台日志
计算引擎串行控制台日志是一个功能,允许您查看和诊断虚拟机实例的启动和操作系统日志。
串行控制台日志提供了实例启动过程的低级视图,包括内核消息、初始化脚本和启动过程中发生的其他系统事件。这对于调试启动问题、识别配置错误或软件错误,或排除网络连接问题非常有用。
这些日志可能会暴露敏感信息,低权限用户通常无法看到,但如果拥有适当的IAM权限,您可能能够读取它们。
您可以使用以下gcloud命令查询串行端口日志(所需权限为compute.instances.getSerialPortOutput):
gcloud compute instances get-serial-port-output <instance-name>
启动脚本输出
可以通过执行 VM 来查看 启动脚本的输出:
sudo journalctl -u google-startup-scripts.service
OS Configuration Manager
您可以使用 OS 配置管理服务来 部署、查询和维护一致的配置(期望状态和软件)以用于您的 VM 实例(VM)。在 Compute Engine 上,您必须使用 guest policies 来维护 VM 上一致的软件配置。
OS 配置管理功能允许您定义配置策略,指定应安装哪些软件包、应启用哪些服务以及应在您的 VMs 上存在哪些文件或配置。您可以使用声明性方法来管理 VMs 的软件配置,这使您能够更轻松地自动化和扩展配置管理过程。
这也允许通过 IAM 权限登录实例,因此对 提权和横向移动 非常 有用。
Warning
为了 在整个项目或实例中启用 os-config,您只需在所需级别将 metadata 键
enable-oslogin设置为true。
此外,您可以将 metadataenable-oslogin-2fa设置为true以启用 2fa。当您在创建实例时启用它时,metadata 键将自动设置。
有关 OS-config 中的 2fa 的更多信息,仅在用户为用户时适用,如果是 SA(如计算 SA),则不需要任何额外的要求。
Enumeration
gcloud compute os-config patch-deployments list
gcloud compute os-config patch-deployments describe <patch-deployment>
gcloud compute os-config patch-jobs list
gcloud compute os-config patch-jobs describe <patch-job>
Images
Custom Images
自定义计算镜像可能包含敏感细节或其他易受攻击的配置,您可以利用这些配置。
创建镜像时,您可以选择3种加密类型:使用Google 管理的密钥(默认),KMS 的密钥,或客户提供的原始密钥。
Enumeration
您可以使用以下命令查询项目中的非标准镜像列表:
gcloud compute machine-images list
gcloud compute machine-images describe <name>
gcloud compute machine-images get-iam-policy <name>
您可以从任何镜像中以多种格式导出 虚拟磁盘。以下命令将以qcow2格式导出镜像test-image,允许您下载文件并在本地构建VM以进行进一步调查:
gcloud compute images export --image test-image \
--export-format qcow2 --destination-uri [BUCKET]
# Execute container inside a docker
docker run --rm -ti gcr.io/<project-name>/secret:v1 sh
权限提升
检查计算实例权限提升部分。
自定义实例模板
一个 实例模板 定义实例属性 以帮助部署一致的配置。这些可能包含与运行实例的自定义元数据相同类型的敏感数据。您可以使用以下命令进行调查:
# List the available templates
gcloud compute instance-templates list
# Get the details of a specific template
gcloud compute instance-templates describe [TEMPLATE NAME]
了解新镜像使用哪个磁盘可能很有趣,但这些模板通常不会包含敏感信息。
快照
快照是磁盘的备份。请注意,这与克隆磁盘(另一可用功能)不同。
快照将使用与其来源磁盘相同的加密。
枚举
gcloud compute snapshots list
gcloud compute snapshots describe <snapshot>
gcloud compute snapshots get-iam-policy <snapshot>
权限提升
检查计算实例权限提升部分。
参考
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

