GCP - Sourcerepos Privesc

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Source Repositories

Per maggiori informazioni su Source Repositories consulta:

GCP - Source Repositories Enum

source.repos.get

Con questo permesso è possibile scaricare il repository localmente:

Clone source repository ```bash gcloud source repos clone --project= ```

source.repos.update

Un principal con questo permesso potrà scrivere codice all’interno di un repository clonato con gcloud source repos clone <repo>. Nota però che questo permesso non può essere associato a ruoli custom, quindi deve essere concesso tramite un ruolo predefinito come:

  • Owner
  • Editor
  • Source Repository Administrator (roles/source.admin)
  • Source Repository Writer (roles/source.writer)

Per scrivere esegui semplicemente un normale git push.

source.repos.setIamPolicy

Con questo permesso un attacker potrebbe concedersi i permessi precedenti.

Accesso ai secret

Se l’attacker ha accesso ai secret dove sono memorizzati i token, potrà rubarli. Per maggiori informazioni su come accedere a un secret controlla:

GCP - Secretmanager Privesc

Aggiungere chiavi SSH

È possibile aggiungere chiavi SSH al progetto Source Repository nella web console. Fa una richiesta POST a /v1/sshKeys:add e può essere configurato in https://source.cloud.google.com/user/ssh_keys

Una volta che la tua chiave SSH è impostata, puoi accedere a un repo con:

Clonare il repository usando SSH ```bash git clone ssh://username@domain.com@source.developers.google.com:2022/p//r/ ```

E poi usare i comandi git come al solito.

Credenziali manuali

È possibile creare credenziali manuali per accedere a Source Repositories:

Cliccando sul primo link verrai indirizzato a https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3

Questo mostrerà una finestra di autorizzazione OAuth per dare accesso a Google Cloud Development. Quindi ti serviranno o le credenziali dell’utente o una sessione aperta nel browser.

Questo ti porterà a una pagina con uno script bash da eseguire che configurerà un git cookie in $HOME/.gitcookies

Eseguendo lo script potrai poi usare git clone, push… e funzionerà.

source.repos.updateProjectConfig

Con questo permesso è possibile disabilitare la protezione predefinita di Source Repositories che impedisce di caricare codice contenente chiavi private:

Disabilitare pushblock e modificare la configurazione pub/sub ```bash gcloud source project-configs update --disable-pushblock ``` Puoi anche configurare un diverso pub/sub topic o addirittura disabilitarlo completamente: ```bash gcloud source project-configs update --remove-topic=REMOVE_TOPIC gcloud source project-configs update --remove-topic=UPDATE_TOPIC ```

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks