GCP - Sourcerepos Privesc
Reading time: 4 minutes
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
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Repository di origine
Per ulteriori informazioni sui Repository di origine controlla:
GCP - Source Repositories Enum
source.repos.get
Con questo permesso è possibile scaricare il repository localmente:
gcloud source repos clone <repo-name> --project=<project-uniq-name>
source.repos.update
Un principale con questo permesso sarà in grado di scrivere codice all'interno di un repository clonato con gcloud source repos clone <repo>
. Ma nota che questo permesso non può essere assegnato a ruoli personalizzati, quindi deve essere dato tramite un ruolo predefinito come:
- Proprietario
- Editor
- Amministratore del Repository Sorgente (
roles/source.admin
) - Scrittore del Repository Sorgente (
roles/source.writer
)
Per scrivere, basta eseguire un normale git push
.
source.repos.setIamPolicy
Con questo permesso un attaccante potrebbe concedere a se stesso i permessi precedenti.
Accesso ai segreti
Se l'attaccante ha accesso ai segreti dove sono memorizzati i token, sarà in grado di rubarli. Per ulteriori informazioni su come accedere a un segreto, controlla:
Aggiungi chiavi SSH
È possibile aggiungere chiavi ssh al progetto del Repository Sorgente nella console web. Viene effettuata una richiesta post a /v1/sshKeys:add
e può essere configurata in https://source.cloud.google.com/user/ssh_keys
Una volta impostata la tua chiave ssh, puoi accedere a un repo con:
git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>
E poi usa i comandi git
come al solito.
Credenziali Manuali
È possibile creare credenziali manuali per accedere ai Repository Sorgente:
.png)
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à un prompt di autorizzazione Oauth per dare accesso a Google Cloud Development. Quindi avrai bisogno o delle credenziali dell'utente o di una sessione aperta nel browser per questo.
Questo ti porterà a una pagina con uno script bash da eseguire e configurare un cookie git in $HOME/.gitcookies
.png)
Eseguendo lo script puoi quindi usare git clone, push... e funzionerà.
source.repos.updateProjectConfig
Con questo permesso è possibile disabilitare la protezione predefinita dei Repository Sorgente per non caricare codice contenente Chiavi Private:
gcloud source project-configs update --disable-pushblock
Puoi anche configurare un argomento pub/sub diverso o addirittura disabilitarlo completamente:
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
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.