GCP - Source Repositories Enum

Apoya a HackTricks

Información Básica

Google Cloud Source Repositories es un servicio de repositorio Git privado, completamente funcional y escalable. Está diseñado para alojar tu código fuente en un entorno completamente gestionado, integrándose perfectamente con otras herramientas y servicios de GCP. Ofrece un lugar colaborativo y seguro para que los equipos almacenen, gestionen y hagan seguimiento de su código.

Las características clave de Cloud Source Repositories incluyen:

  1. Alojamiento Git Totalmente Gestionado: Ofrece la funcionalidad familiar de Git, lo que significa que puedes utilizar comandos y flujos de trabajo regulares de Git.

  2. Integración con Servicios de GCP: Se integra con otros servicios de GCP como Cloud Build, Pub/Sub y App Engine para tener trazabilidad de extremo a extremo desde el código hasta la implementación.

  3. Repositorios Privados: Asegura que tu código se almacene de forma segura y privada. Puedes controlar el acceso utilizando roles de Cloud Identity and Access Management (IAM).

  4. Análisis de Código Fuente: Trabaja con otras herramientas de GCP para proporcionar análisis automatizado de tu código fuente, identificando posibles problemas como errores, vulnerabilidades o malas prácticas de codificación.

  5. Herramientas de Colaboración: Admite la codificación colaborativa con herramientas como solicitudes de fusión, comentarios y revisiones.

  6. Soporte de Espejo: Te permite conectar Cloud Source Repositories con repositorios alojados en GitHub o Bitbucket, lo que permite la sincronización automática y proporciona una vista unificada de todos tus repositorios.

Información de OffSec

  • La configuración de los repositorios fuente dentro de un proyecto tendrá una Cuenta de Servicio utilizada para publicar mensajes de Cloud Pub/Sub. La que se utiliza de forma predeterminada es la Cuenta de Servicio de Compute. Sin embargo, no creo que sea posible robar su token desde Repositorios Fuente ya que se ejecuta en segundo plano.

  • Para ver el código dentro de los Repositorios Fuente de GCP en la consola web (https://source.cloud.google.com/), necesitas que el código esté dentro de la rama master de forma predeterminada.

  • También puedes crear un Repositorio en la Nube espejo apuntando a un repositorio de Github o Bitbucket (dando acceso a esas plataformas).

  • Es posible codificar y depurar desde dentro de GCP.

  • Por defecto, Source Repositories evita que se suban claves privadas en los commits, pero esto se puede deshabilitar.

Abrir en Cloud Shell

Es posible abrir el repositorio en Cloud Shell, aparecerá un aviso como este:

Esto te permitirá codificar y depurar en Cloud Shell (lo que podría comprometer cloudshell).

Enumeración

# Repos enumeration
gcloud source repos list #Get names and URLs
gcloud source repos describe <repo_name>
gcloud source repos get-iam-policy <repo_name>

# gcloud repo clone
gcloud source repos clone <REPO NAME>
gcloud source repos get-iam-policy <REPO NAME>
... git add & git commit -m ...
git push --set-upstream origin master
git push -u origin master

# Access via git
## To add a SSH key go to https://source.cloud.google.com/user/ssh_keys (no gcloud command)
git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>
git add, commit, push...

Escalada de Privilegios y Post Explotación

GCP - Sourcerepos Privesc

Enumeración sin Autenticación

GCP - Source Repositories Unauthenticated Enum
Apoya a HackTricks

Last updated