PE-GCP
gcp_scanner
Enumera exactamente qué recursos y permisos de GCP otorga realmente una clave de service account u OAuth token filtrado — descubrimiento de privilegios y alcance tras un compromiso.
Sitio oficialVolver al catálogo
RESUMEN
gcp_scanner (github.com/google/gcp_scanner) es una herramienta de enumeración de recursos, publicada originalmente por integrantes del propio equipo de seguridad de Google, construida para responder exactamente una pregunta post-compromiso: dada una clave de service account de GCP, un OAuth2 refresh token, o acceso a una VM/container/pod comprometidos, ¿a qué puede realmente acceder esta credencial? En lugar de depender de `gcloud` o cualquier otro SDK — que puede ni siquiera estar instalado en un host comprometido — habla directamente con las APIs de Google Cloud, por lo que puede ejecutarse como binario independiente desde un punto de apoyo mínimo.
Recorre sistemáticamente los proyectos, buckets, instancias de compute, clústeres de Kubernetes, instancias de Cloud SQL y permisos IAM alcanzables por la credencial provista y reporta lo que encontró, dando al evaluador una imagen concreta del radio de impacto en lugar de tener que consultar cada API de GCP a mano. El proyecto declara explícitamente que no cuenta con soporte oficial de Google — es una herramienta de investigación de seguridad publicada desde una cuenta afiliada a Google, no un producto soportado de Google Cloud.
CASOS DE USO
Casos de uso en un engagement
- 01
Determinar el radio de impacto completo de una clave JSON de service account de GCP filtrada o encontrada.
- 02
Enumerar a qué puede acceder realmente un OAuth2 refresh token robado a través de distintos proyectos.
- 03
Evaluar el alcance de la credencial del metadata server disponible desde una VM GCE o pod GKE comprometidos.
- 04
Alimentar con una lista concreta de proyectos/buckets/instancias accesibles la explotación posterior o el informe.
PRIMEROS PASOS
Tras obtener una clave de service account de GCP comprometida, un OAuth refresh token o acceso desde una VM/container comprometidos, para determinar exactamente a qué puede acceder realmente esa credencial.
- Clona el repositorio e instala las dependencias con `pip install -r requirements.txt`.
- Confirma que la credencial comprometida (clave JSON de service account, token OAuth o acceso al metadata server) está en alcance del engagement.
- Ejecuta el scanner apuntando a la credencial, por ejemplo `python3 scanner.py -k /path/to/key.json`.
- Revisa el informe generado de proyectos, buckets y permisos IAM alcanzables antes de decidir qué validar manualmente.
python3 scanner.py -k /path/to/compromised-key.jsonANTES DE USARLA
Qué revisar antes de lanzarla
Trata su salida como un punto de partida para confirmar explotabilidad, no como prueba de impacto por sí sola — valida manualmente cualquier hallazgo de alto valor antes de reportarlo como explotable.
Cada llamada de enumeración es una petición real a la API contra los proyectos de la credencial y queda registrada en Cloud Audit Logs — documenta con el cliente el volumen de llamadas esperado de antemano.
La herramienta es no oficial y sin soporte de Google a pesar de su origen — revisa el código fuente actual antes de confiar en ella, ya que la cobertura y el comportamiento de la API pueden quedar atrás respecto a cambios en los servicios de GCP.