
该工具从不同的云/SaaS应用中获取资源,重点关注权限,以便识别云/SaaS配置中的权限提升路径和危险权限。注意,PurplePanda 会同时搜索平台内和跨平台的权限提升路径。
名称来源于动物Red Panda。这只熊猫吃豌豆,就像 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="s3cr3tpassword"
# Install this if you are going to use 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
# Consider adding the API keys in the Dockerfile
docker rm -f purplepanda
docker build --tag=purplepanda .
# Execute -h
## Change -h for the params you want to run purplepanda with
docker run -t \
-e PURPLEPANDA_NEO4J_URL="bolt://[email protected]: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 is needed to see the output properly
## If you are using Neo4jDesktop to connect to the DB, use the domain host.docker.internal
## You might need to use the option '-v' to mount files with configurations
PurplePanda 有 2 种分析模式:
-e(枚举):这是主要模式,它会尝试收集数据并进行分析。-a(分析):这将执行对所提供凭据的快速分析。查看如何使用并检查 PurplePanda 收集的数据:
使用每个平台的凭据,至少具有对该平台所有资源的读取管理权限。这将帮助您准确了解在每个平台内以及跨平台配置中可能被滥用的权限提升路径。
PurplePanda 也设计为可供红队使用。通常,云/SaaS 平台不会允许所有人读取平台配置,因此 PurplePanda 支持为同一平台使用多个密钥,以便用所有已攻陷的密钥尝试枚举所有内容,从而获得最准确的平台配置视图。
使用 -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