PurplePanda
这个工具从不同的云/SaaS应用程序中获取资源,重点关注权限,以识别云/SaaS配置中的权限提升路径和危险权限。请注意,PurplePanda既搜索平台内的权限提升路径,也搜索跨平台的权限提升路径。
这个名字来源于动物小熊猫。这只熊猫吃豌豆,就像Purple Panda一样,可以摄取由**PEASS发现的API密钥/令牌。颜色改为紫色是因为这个工具主要面向紫队**(因为它对蓝队和红队都非常有用)。
使用方法
/intel
内的每个文件夹定义了一个可以枚举的平台,并包含一个README.md文件,解释如何使用该特定模块。
下载**Neo4jDesktop并创建一个数据库。然后导出环境变量PURPLEPANDA_NEO4J_URL
和PURPLEPANDA_PWD
**,分别设置为neo4j数据库的URL和密码。
如果你想在枚举过程中发现的公共IP上使用shodan,请导出一个名为SHODAN_KEY的环境变量,并设置为有效的shodan api密钥。
然后只需安装并启动程序,用逗号分隔指示你想枚举的平台。
本地安装
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="neo4j_pwd_4_purplepanda"
python3 main.py -h # 获取帮助
python3 main.py -e -p google,github,k8s --github-only-org --k8s-get-secret-values --gcp-get-secret-values # 枚举google、github和k8s
Docker
# 考虑在Dockerfile中添加API密钥
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="s3cr3t" \
-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收集的数据:
对于蓝队/紫队
对每个平台使用至少具有对平台所有资源的管理员读取权限的凭证。这将帮助你准确了解每个平台内部和跨平台的配置中可能被滥用的权限提升路径。
对于红队
PurplePanda也专为红队设计。通常,云/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
文件中,你可以找到最佳查询,用于调查如何提升权限(适用于紫队、蓝队和红队)。
在QUERIES.md
文件中,你将找到所有建议的查询,以便更轻松地调查数据。
如何在图表中可视化数据
按照**VISUALIZE_GRAPHS.md**中的说明进行操作。
如何贡献
在根文件夹和intel/
内的每个文件夹中,你会找到一个**TODO.md
文件**。你可以在这些文件中找到如何帮助的方法。只需发送一个包含添加内容的PR。
包含修复的PR也非常欢迎 :)
此外,如果你有其他想法而不在这些TODO文件中,随时发送PR。
作者:Carlos PolopTM