
異なるクラウド内およびクラウド間での特権昇格経路を特定する

このツールは、さまざまなクラウド/SaaSアプリケーションからリソースを取得し、権限に焦点を当てて、特権昇格パスと危険な権限をクラウド/SaaS構成内で特定します。PurplePandaは、プラットフォーム内およびプラットフォーム間の両方の特権昇格パスを検索することに注意してください。
名前は動物のレッサーパンダに由来します。このパンダはエンドウ豆を食べます。PurplePandaも同様に、PEASS が見つけたAPIキー/トークンを摂取できます。色が紫に変更されたのは、このツールが主にパープルチーム向けであるためです(ブルーチームとレッドチームの両方に非常に有用です)。
/intel内の各フォルダは、列挙可能な1つのプラットフォームを定義し、その特定のモジュールの使用方法を説明する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 Neo4Desktop to connec 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内のフォルダは、列挙可能な1つのプラットフォームを定義し、その特定のモジュールの使用方法を説明するREADME.mdファイルが含まれています。さらに、各フォルダにはHOW_TO_USE.mdファイルとQUERIES.mdファイルも含まれています。
HOW_TO_USE.mdファイルには、特権昇格の調査方法に関する最適なクエリ(パープル、ブルー、レッドチーム向け)があります。
QUERIES.mdファイルには、データを容易に調査するためのすべての提案クエリがあります。
VISUALIZE_GRAPHS.md の指示に従ってください。
ルートフォルダおよびintel/内の各フォルダには**TODO.mdファイル**があります。これらのファイルでどのように貢献できるかがわかります。修正を含むPRも歓迎します。
また、それらのTODOファイルにない他のアイデアがあれば、遠慮なくPRを送ってください。
Carlos PolopTM 作