
Identifiziere Privilegien-Eskalationspfade innerhalb und zwischen verschiedenen Clouds

Dieses Tool ruft Ressourcen aus verschiedenen Cloud-/SaaS-Anwendungen ab, wobei der Fokus auf Berechtigungen liegt, um Privilege-Escalation-Pfade und gefährliche Berechtigungen in den Cloud-/SaaS-Konfigurationen zu identifizieren. Beachten Sie, dass PurplePanda sowohl Privilege-Escalation-Pfade innerhalb einer Plattform als auch plattformübergreifend durchsucht.
Der Name leitet sich vom Tier Roter Panda ab. Dieser Panda frisst Erbsen, genau wie Purple Panda, das API-Schlüssel/Tokens fressen kann, die von diesen PEASS-Tools gefunden werden. Die Farbe wurde zu Lila geändert, da dieses Tool hauptsächlich für Purple Teams gedacht ist (weil es sowohl für Blue als auch für Red Teams äußerst nützlich sein kann).
Jeder Ordner in /intel definiert eine Plattform, die enumeriert werden kann, und enthält eine README.md-Datei, die erklärt, wie man dieses spezifische Modul verwendet.
Laden Sie Neo4jDesktop herunter und erstellen Sie eine Datenbank. Setzen Sie dann die Umgebungsvariablen PURPLEPANDA_NEO4J_URL und PURPLEPANDA_PWD mit der URL zur Neo4j-Datenbank und dem Passwort.
Wenn Sie Shodan mit den während der Enumeration entdeckten öffentlichen IPs verwenden möchten, exportieren Sie eine Umgebungsvariable namens SHODAN_KEY mit einem gültigen API-Schlüssel von Shodan.
Dann installieren und starten Sie das Programm und geben Sie die Plattformen an, die Sie enumerieren möchten, durch Kommas getrennt, wie folgt.
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"
# Installieren Sie dies, wenn Sie GCP verwenden
gcloud components install gke-gcloud-auth-plugin
python3 main.py -h # Hilfe anzeigen
python3 main.py -e -p google,github,k8s --github-only-org --k8s-get-secret-values --gcp-get-secret-values # Enumeriere Google, GitHub und K8s
# Fügen Sie die API-Schlüssel ggf. in die Dockerfile ein
docker rm -f purplepanda
docker build --tag=purplepanda .
# Ausführen mit -h
## Ersetzen Sie -h durch die Parameter, mit denen Sie purplepanda ausführen möchten
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 wird benötigt, um die Ausgabe korrekt zu sehen
## Wenn Sie Neo4Desktop verwenden, um eine Verbindung zur Datenbank herzustellen, verwenden Sie die Domain host.docker.internal
## Möglicherweise müssen Sie die Option '-v' verwenden, um Dateien mit Konfigurationen bereitzustellen
PurplePanda hat 2 Analysemodi:
-e (enumerate): Dies ist der Hauptmodus, er versucht Daten zu sammeln und zu analysieren.-a (analyze): Dies führt eine schnelle Analyse der bereitgestellten Anmeldeinformationen durch.Sehen Sie, wie Sie die von PurplePanda gesammelten Daten verwenden und inspizieren:
Verwenden Sie Anmeldeinformationen für jede Plattform mit mindestens Admin-Lesezugriff auf alle Ressourcen der Plattform. Dies hilft Ihnen, genau die Privilege-Escalation-Pfade zu sehen, die innerhalb Ihrer Konfigurationen in jeder Plattform und plattformübergreifend missbraucht werden können.
PurplePanda ist auch für den Einsatz durch Red Teams konzipiert. Im Allgemeinen gewähren Cloud-/SaaS-Plattformen nicht jedem Zugriff zum Lesen der Konfiguration der Plattform. Daher unterstützt PurplePanda die Verwendung mehrerer Schlüssel für dieselbe Plattform, um alles mit allen kompromittierten Schlüsseln zu enumerieren und eine möglichst genaue Ansicht der Plattformkonfiguration zu erhalten.
Verwenden Sie den Parameter -d mit einem Verzeichnis. Dann schreibt PurplePanda in dieses Verzeichnis mehrere interessante Analysen im csv-Format der Informationen aller Plattformen. Die Empfehlung ist, interessante und unerwartete Dinge in diesen Dateien zu finden und dann zu diesen interessanten Fällen mit den Graphen überzugehen.
Jeder Ordner in /intel definiert eine Plattform, die enumeriert werden kann, und enthält eine README.md-Datei, die erklärt, wie man dieses spezifische Modul verwendet. Darüber hinaus enthält jeder Ordner auch eine HOW_TO_USE.md-Datei und eine QUERIES.md-Datei.
In der HOW_TO_USE.md-Datei finden Sie die besten Abfragen, um eine Untersuchung zur Eskalation von Privilegien durchzuführen (für Purple-, Blue- und Red Teams).
In der QUERIES.md-Datei finden Sie alle vorgeschlagenen Abfragen, um die Daten leichter zu untersuchen.
Befolgen Sie die Anweisungen in VISUALIZE_GRAPHS.md
Im Stammverzeichnis und in jedem Ordner in intel/ finden Sie eine TODO.md-Datei. In diesen Dateien können Sie sehen, wie Sie helfen können. Senden Sie einfach einen PR mit der Ergänzung.
PRs mit Fixes sind ebenfalls willkommen :)
Wenn Sie andere Ideen haben, die nicht in diesen TODO-Dateien stehen, können Sie gerne einen PR senden.
Von Carlos PolopTM