0x01 基础信息
0x01 基础信息
https://cloud.hacktricks.xyz/pentesting-cloud/gcp-pentesting/gcp-basic-information
0x02 在线实验室
0x02 在线实验室
-
https://github.com/ine-labs/GCPGoat
https://github.com/carlospolop/gcp_privesc_scripts
0x03 GCP Pentest /红队方法论
为了审核 GCP 环境,了解以下内容非常重要:正在使用哪些服务、正在公开什么、谁可以访问什么以及内部 GCP 服务与外部服务如何连接。
为了审核 GCP 环境,了解以下内容非常重要:正在使用哪些服务、正在公开什么、谁可以访问什么以及内部 GCP 服务与外部服务如何连接。
从红队的角度来看,破坏 GCP 环境的第一步是设法获得一些凭据。
-
github(或类似)中的泄漏- OSINT
-
社会工程(查看页面Workspace Security)
-
密码重用(密码泄露)
-
GCP 托管应用程序中的漏洞
-
具有访问元数据端点的端请求伪造
-
读取本地文件
-
第三者违约
-
内部员工
/home/USERNAME/.config/gcloud/*
C:UsersUSERNAME.configgcloud*
或者凭据后,您需要知道这些凭据属于谁,以及他们可以访问什么,因此您需要执行一些基本的枚举:!!
0x04 基础枚举
我是谁
在 GCP 中,您可以尝试几个选项来猜测您是谁:
#如果你在一台妥协的机器里
gcloud 授权列表
curl -H "Content-Type: application/x-www-form-urlencoded" -d "access_token= $( gcloud auth print-access-token ) " https://www.googleapis.com/oauth2/v1/tokeninfo
gcloud auth print-identity-token #从令牌中获取信息
#If 你泄露了元数据令牌或以某种方式找到了 OAuth 令牌
curl -H "Content-Type: application/x-www-form-urlencoded" -d "access_token=<token>" https://www.googleapis.com/oauth2/v1/tokeninfo
组织枚举
# 获取组织
gcloud organizations list #DIRECTORY_CUSTOMER_ID 是工作区 ID
gcloud resource-manager folders list --organization < org_number > # 获取文件夹
gcloud projects list # 获取项目
Principals和 IAM 枚举
如果您有足够的权限,检查 GCP 帐户内每个实体的权限将帮助您了解您和其他身份可以做什么以及如何提升权限。如果您没有足够的权限来枚举 IAM,您可以窃取暴力破解它们来找出它们。检查如何进行计算和暴力破解:
https://cloud.hacktricks.xyz/pentesting-cloud/gcp-pentesting/gcp-services/gcp-iam-and-org-policies-enum
现在您已经有了一些关于您的凭据的信息(如果您是红队,希望您没有被发现)。是时候弄清楚环境中正在使用哪些服务了。在下一节中,您可以检查一些枚举一些常见服务的方法。
服务枚举、后期开发和持久化
GCP 有数量惊人的服务,在下面的页面中,您将找到基本信息、枚举备忘单、如何避免检测、获得持久性以及关于其中一些的其他利用后技巧:
GCP - 服务
https://cloud.hacktricks.xyz/pentesting-cloud/gcp-pentesting/gcp-services
GCP - 非服务持久性
https://cloud.hacktricks.xyz/pentesting-cloud/gcp-pentesting/gcp-non-svc-persistance
请注意,您不需要手动执行所有工作,在这篇文章的下方,您可以找到有关的部分 自动工具.此外,在此阶段您可能会发现更多服务暴露给未经身份验证的用户,您可能能够利用它们:
GCP - 未经身份验证的枚举
https://cloud.hacktricks.xyz/pentesting-cloud/gcp-pentesting/gcp-unauthenticated-enum
特权升级
一旦您获得了一些云凭证或破坏了在云中运行的某些服务,最常见的方法是滥用受感染帐户可能拥有的配置错误的特权。因此,您应该做的第一件事是枚举您的特权。此外,在此枚举期间,请记住也可以在“组织”的最高级别设置权限。
GCP - 权限升级
https://cloud.hacktricks.xyz/pentesting-cloud/gcp-pentesting/gcp-privilege-escalation
公开服务
在枚举 GCP 服务时,您可能会发现其中一些将元素暴露给 Internet (VM/容器端口、数据库或队列服务、快照或存储桶……)。作为渗透测试人员/红队成员,您应该始终检查是否可以在它们上找到敏感信息/漏洞,因为它们可能会为您提供对 AWS 帐户的进一步访问权限。
您应该找到有关如何查找暴露的 AWS 服务以及如何检查它们的信息。关于如何在暴露的网络服务中查找漏洞,我建议您在以下位置搜索特定服务
自动工具
在GCloud 控制台中,在
https://console.cloud.google.com/iam-admin/asset-inventory/dashboard
您可以看到项目正在使用的资源和 IAM。
https://cloud.google.com/asset-inventory/docs/supported-asset-types
gcp_scan:这是一个 GCP 资源扫描器,可以帮助确定某些凭据在 GCP 上拥有的访问级别。
# Install
git clone https://github.com/google/gcp_scanner.git
cd gcp_scanner
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements.txt
# Execute with gcloud creds
python3 __main__.py -o /tmp/output/ -g "$HOME/.config/gcloud"
-
gcp_枚举:使用 gcloud cli 枚举 GCP 环境并将结果保存在文件中的 Bash 脚本。
-
GCP-IAM-特权升级:用于枚举高 IAM 权限并在滥用它们的 GCP 中提升权限的脚本(我无法运行枚举脚本)。
gcloud 配置和调试
# Login so gcloud can use your credentials
gcloud auth login
gcloud config set project security-devbox
gcloud auth print-access-token
# Login so SDKs can use your user credentials
gcloud auth application-default login
gcloud auth application-default set-quota-project security-devbox
gcloud auth application-default print-access-token
# Update gcloud
gcloud components update
捕获 gcloud、gsutil...网络
请记住,您可以将参数与cli 一起使用来打印工具正在执行的请求。如果您不希望日志编辑令牌值,请使用--log-http
gcloud
gcloud config set log_http_redact_token false
此外,拦截通信:
gcloud config set proxy/address 127.0.0.1
gcloud config set proxy/port 8080
gcloud config set proxy/type http
gcloud config set auth/disable_ssl_validation True
# If you don't want to completely disable ssl_validation use:
gcloud config set core/custom_ca_certs_file cert.pem
# Back to normal
gcloud config unset proxy/address
gcloud config unset proxy/port
gcloud config unset proxy/type
gcloud config unset auth/disable_ssl_validation
gcloud config unset core/custom_ca_certs_file
原文始发于微信公众号(安全帮Live):云安全 | GCP渗透测试
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论