E-PUR
PurplePanda
Grafica permisos y relaciones en GCP, Kubernetes, GitHub, Okta y Azure para revelar rutas de escalada de privilegios.
Sitio oficialVolver al catálogo
RESUMEN
PurplePanda (github.com/carlospolop/PurplePanda, del autor de HackTricks y PEASS-ng) obtiene identidades, permisos y recursos de GCP, Kubernetes, GitHub, Okta y (de forma más limitada) Azure, y los carga en un grafo Neo4j para identificar rutas de escalada de privilegios tanto dentro de una sola plataforma como entre plataformas.
Está pensada explícitamente para purple teams — capaz de ingerir claves de API y tokens hallados por otras herramientas de la familia PEASS — y su salida de enumeración también se escribe en archivos CSV junto al grafo, de modo que quien revisa puede hojear en busca de algo inesperado antes de profundizar con consultas Cypher en los casos más interesantes.
CASOS DE USO
Casos de uso en un engagement
- 01
Mapear bindings de IAM en GCP, cadenas de impersonación de service accounts y RBAC de Kubernetes en un único grafo.
- 02
Encontrar rutas de escalada de privilegios que cruzan plataformas, por ejemplo un secreto de GitHub Actions que llega a un service account de GCP.
- 03
Revisar aplicaciones y asignaciones de grupos en Okta junto con los permisos cloud que otorgan más adelante.
- 04
Hojear los resúmenes CSV de permisos enumerados para priorizar qué hallazgos merecen una consulta Cypher más profunda.
PRIMEROS PASOS
Durante revisiones de purple team o seguridad cloud que abarcan GCP, Kubernetes, GitHub y Okta para hallar rutas de escalada de privilegios entre plataformas.
- Clona el repositorio, crea un virtualenv e instala las dependencias con `pip install -r requirements.txt`.
- Inicia una instancia de Neo4j y define las variables de entorno `PURPLEPANDA_NEO4J_URL` y `PURPLEPANDA_PWD`.
- Configura las credenciales de las plataformas en alcance (clave de service account de GCP, token de GitHub, kubeconfig, token de API de Okta).
- Ejecuta `main.py` en modo enumerate con las plataformas objetivo y revisa los archivos CSV generados y el grafo en Neo4j.
python3 main.py -e -p google,github,k8s --github-only-orgANTES DE USARLA
Qué revisar antes de lanzarla
La enumeración en las APIs de GCP, GitHub, Okta y Kubernetes genera muchas llamadas de lectura en poco tiempo — confirma el volumen esperado con el cliente, ya que algunas quedan registradas en los logs de auditoría de cada proveedor (Cloud Audit Logs de GCP, audit log de GitHub, system log de Okta).
La herramienta usa una licencia personalizada basada en GPLv2 (los mismos términos que otras herramientas de la familia PEASS del autor) con cláusulas adicionales sobre obras derivadas — revisa el LICENSE antes de integrarla en otras herramientas.
El grafo resultante y la salida CSV enumeran cada ruta de escalada de privilegios entre plataformas encontrada — trátalos y almacénalos según las reglas de manejo de datos del engagement.