GCP - Source Repositories Enum

Supporta HackTricks

Informazioni di Base

Google Cloud Source Repositories è un servizio di repository Git privato completo e scalabile. È progettato per ospitare il tuo codice sorgente in un ambiente completamente gestito, integrandosi perfettamente con altri strumenti e servizi GCP. Offre un luogo collaborativo e sicuro per i team per memorizzare, gestire e monitorare il proprio codice.

Le caratteristiche principali di Cloud Source Repositories includono:

  1. Hosting Git Completamente Gestito: Offre la funzionalità familiare di Git, il che significa che puoi utilizzare comandi e flussi di lavoro Git regolari.

  2. Integrazione con i Servizi GCP: Si integra con altri servizi GCP come Cloud Build, Pub/Sub e App Engine per la tracciabilità end-to-end dal codice al deployment.

  3. Repository Privati: Garantisce che il tuo codice sia memorizzato in modo sicuro e privato. Puoi controllare l'accesso utilizzando i ruoli di Cloud Identity and Access Management (IAM).

  4. Analisi del Codice Sorgente: Lavora con altri strumenti GCP per fornire un'analisi automatizzata del tuo codice sorgente, identificando potenziali problemi come bug, vulnerabilità o cattive pratiche di codifica.

  5. Strumenti di Collaborazione: Supporta la codifica collaborativa con strumenti come richieste di merge, commenti e revisioni.

  6. Supporto per Mirror: Ti consente di collegare Cloud Source Repositories con repository ospitati su GitHub o Bitbucket, abilitando la sincronizzazione automatica e fornendo una vista unificata di tutti i tuoi repository.

Informazioni OffSec

  • La configurazione dei repository sorgente all'interno di un progetto avrà un Account di Servizio utilizzato per pubblicare messaggi Cloud Pub/Sub. Quello predefinito utilizzato è il Compute SA. Tuttavia, non penso sia possibile rubare il suo token dai Repository Sorgente poiché viene eseguito in background.

  • Per vedere il codice all'interno della console web di GCP Cloud Source Repositories (https://source.cloud.google.com/), è necessario che il codice sia all'interno del ramo master per impostazione predefinita.

  • Puoi anche creare un Mirror Cloud Repository che punta a un repo di Github o Bitbucket (dando accesso a quelle piattaforme).

  • È possibile codificare e fare debug dall'interno di GCP.

  • Per impostazione predefinita, i Repository Sorgente prevengono che le chiavi private vengano caricate nei commit, ma questo può essere disabilitato.

Apri in Cloud Shell

È possibile aprire il repository in Cloud Shell, apparirà un prompt come questo:

Questo ti permetterà di codificare e fare debug in Cloud Shell (che potrebbe compromettere cloudshell).

Enumerazione

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

Escalation dei privilegi e Post Exploitation

Enum non autenticato

Supporta HackTricks

Last updated