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 albergar tu código fuente en un entorno completamente gestionado, integrándose sin problemas con otras herramientas y servicios de GCP. Ofrece un lugar colaborativo y seguro para que los equipos almacenen, gestionen y rastreen 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 usar comandos y flujos de trabajo de Git regulares.

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

  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 automatizados de tu código fuente, identificando problemas potenciales como errores, vulnerabilidades o malas prácticas de codificación.

  5. Herramientas de Colaboración: Soporta 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, habilitando la sincronización automática y proporcionando una vista unificada de todos tus repositorios.

Información de OffSec

  • La configuración de los repositorios de código dentro de un proyecto tendrá una Cuenta de Servicio utilizada para publicar mensajes de Cloud Pub/Sub. La que se usa por defecto es la Compute SA. Sin embargo, no creo que sea posible robar su token de los Repositorios de Código ya que se está ejecutando en segundo plano.

  • Para ver el código dentro de la consola web de GCP Cloud Source Repositories (https://source.cloud.google.com/), necesitas que el código esté dentro de la rama master por defecto.

  • También puedes crear un Repositorio en Espejo de Cloud apuntando a un repo de Github o Bitbucket (dando acceso a esas plataformas).

  • Es posible codificar y depurar desde dentro de GCP.

  • Por defecto, los Repositorios de Código previenen que claves privadas sean enviadas en commits, pero esto se puede desactivar.

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...

Escalación de Privilegios y Post Explotación

GCP - Sourcerepos Privesc

Enumeración No Autenticada

GCP - Source Repositories Unauthenticated Enum
Apoya a HackTricks

Last updated