carlospolop/PurplePanda

GitHub: carlospolop/PurplePanda

PurplePanda 是一款基于图数据库的云与 SaaS 权限分析工具,用于识别云环境及跨平台配置中的提权路径与危险权限。

Stars: 718 | Forks: 88

# PurplePanda ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/60b6095b1e183550.png) 该工具从不同的云/SaaS 应用程序中获取资源,重点关注权限,以便**识别云/SaaS 配置中的提权路径和危险权限**。请注意,PurplePanda 同时搜索**平台内部和跨平台的提权路径**。 这个名字来源于动物 **Red Panda**(小熊猫)。这种熊猫吃豌豆,就像 Purple Panda 可以摄入由这些 **[PEASS](https://github.com/carlospolop/PEASS-ng)** 发现的 API 密钥/令牌一样。颜色被改为紫色,是因为该工具主要面向 **Purple Teams**(紫队)(因为它对 **Blue Teams(蓝队)和 Red Teams(红队)都非常有用**)。 ## 如何使用 `/intel` 内的每个文件夹定义了一个可以被枚举的平台,并且**包含一个 README.md 文件,解释了如何使用该特定模块**。 下载 **[Neo4jDesktop](https://neo4j.com/download-center/#desktop)** 并创建一个数据库。然后**导出环境变量 `PURPLEPANDA_NEO4J_URL` 和 `PURPLEPANDA_PWD`**,填入 neo4j 数据库的 URL 和密码。 如果你希望在枚举过程中针对发现的公网 IP 使用 **shodan**,请**导出一个名为 *SHODAN_KEY* 的环境变量,其中包含一个有效的 shodan api key**。 然后只需安装并启动程序,用逗号分隔指示你想要枚举的平台。 ### 本地安装 ``` git clone https://github.com/carlospolop/PurplePanda cd PurplePanda python3 -m venv . source bin/activate python3 -m pip install -r requirements.txt export PURPLEPANDA_NEO4J_URL="bolt://neo4j@localhost:7687" export PURPLEPANDA_PWD="s3cr3tpassword" # 如果您打算使用 GCP,请安装此程序 gcloud components install gke-gcloud-auth-plugin python3 main.py -h # Get help python3 main.py -e -p google,github,k8s --github-only-org --k8s-get-secret-values --gcp-get-secret-values # Enumerate google, github and k8s ``` ### Docker ``` # 考虑在 Dockerfile 中添加 API keys docker rm -f purplepanda docker build --tag=purplepanda . # 执行 -h ## 将 -h 更改为您想要运行 purplepanda 的参数 docker run -t \ -e PURPLEPANDA_NEO4J_URL="bolt://neo4j@host.docker.internal:7687" \ -e PURPLEPANDA_PWD="s3cr3tpassword" \ -e GOOGLE_DISCOVERY=... \ -e GITHUB_DISCOVERY=... \ -e K8S_DISCOVERY=... \ -e CONCOURSE_DISCOVERY=... \ -e CIRCLECI_DISCOVERY=... \ purplepanda python3 main.py -h ## 需要 -t 才能正确查看输出 ## 如果您使用 Neo4Desktop 连接到数据库,请使用域名 host.docker.internal ## 您可能需要使用 '-v' 选项来挂载包含配置的文件 ``` PurplePanda 有 **2 种分析模式**: - `-e` (*enumerate* / 枚举):这是**主要模式**,它将尝试收集数据并进行分析。 - `-a` (*analyze* / 分析):这将执行对**所提供凭据的快速分析**。 ### 视频教程 查看如何使用和检查 PurplePanda 收集的数据: [![教程](https://img.youtube.com/vi/zl5NdvoWHX4/0.jpg)](https://www.youtube.com/watch?v=zl5NdvoWHX4) ### 对于 Blue/Purple Teams 使用每个平台的凭据,且该凭据至少对平台的所有资源具有**管理员读取权限**。这将帮助你准确地看到可以在每个平台配置中以及跨平台滥用的**提权路径**。 ### 对于 Red Teams PurplePanda 也**专为 Red Teams(红队)设计**。通常,云/SaaS 平台**不会给予所有人读取平台配置的权限**,这就是为什么 PurplePanda 支持为**同一平台使用多个密钥**,以便尝试利用你获取的所有密钥枚举所有内容,从而获得平台配置最准确的视图。 ## 支持的平台 - **Google Cloud Platform (GCP)**:要了解 GCP 安全的工作原理以及如何滥用角色和权限,**请阅读 https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security** - **Github**:要了解 Github 安全的工作原理以及如何绕过分支保护、窃取机密、提权……**请阅读 https://cloud.hacktricks.xyz/pentesting-ci-cd/github-security** - **Kubernetes (K8s)**:要了解 Kubernetes RBAC 安全的工作原理以及如何滥用角色、提权到其他云……**请阅读 https://cloud.hacktricks.xyz/pentesting-cloud/kubernetes-security** ## 如何使用数据 **使用 `-d` 参数**指示一个目录。然后,**PurplePanda 将在该目录中以 `csv` 格式写入若干有趣的分析**,内容涉及从所有平台获得的信息。建议是**在这些文件中寻找有趣和意想不到的东西**,然后转而**利用图表分析那些有趣的案例**。 `/intel` 内的每个文件夹定义了一个可以被枚举的平台,并且**包含一个 README.md 文件,解释了如何使用该特定模块**。此外,每个文件夹还包含一个 `HOW_TO_USE.md` 文件和一个 `QUERIES.md` 文件。 在 `HOW_TO_USE.md` 文件中,你可以找到**用于调查如何提升权限的最佳查询**(*适用于 Purple、Blue 和 Red Teams*)。 在 `QUERIES.md` 文件中,你将找到**所有建议的查询**,以便更轻松地调查数据。 ### 如何在图表中可视化数据 遵循 **[VISUALIZE_GRAPHS.md](https://github.com/carlospolop/PurplePanda/blob/master/VISUALIZE_GRAPHS.md)** 中指示的说明。 ## 如何贡献 在**根文件夹和 `intel/` 内的每个文件夹**中,你都会找到一个 **`TODO.md` 文件**。你可以在这些文件中找到你可以提供帮助的方式。只需**发送一个包含补充内容的 PR**。 **包含修复的 PR** 也欢迎 :) 此外,如果你有那些 TODO 文件中没有列出的**其他想法**,欢迎随时发送 PR。 By Carlos PolopTM
标签:API密钥, GCP, IAM, Neo4j, PEASS, SaaS, StruQ, Web报告查看器, 协议分析, 危险权限检测, 攻击路径分析, 数据展示, 权限提升, 权限枚举, 紫队, 红队, 请求拦截, 身份与访问管理, 逆向工具