GCP - Artifact Registry Privesc
Last updated
Last updated
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Per ulteriori informazioni su Artifact Registry controlla:
GCP - Artifact Registry EnumCon questo permesso un attaccante potrebbe caricare nuove versioni degli artefatti con codice malevolo come immagini Docker:
È stato verificato che è possibile caricare una nuova immagine docker malevola con lo stesso nome e tag di quella già presente, quindi il vecchio perderà il tag e la prossima volta che quell'immagine con quel tag verrà scaricata, quella malevola verrà scaricata.
Non è possibile caricare una libreria python con la stessa versione di quella già presente, ma è possibile caricare versioni superiori (o aggiungere un ulteriore .0
alla fine della versione se funziona -non in python però-), o eliminare l'ultima versione e caricarne una nuova con (necessario artifactregistry.versions.delete)
:
artifactregistry.repositories.downloadArtifacts
Con questo permesso puoi scaricare artefatti e cercare informazioni sensibili e vulnerabilità.
Scarica un'immagine Docker:
Scarica una python libreria:
Cosa succede se un registro remoto e un registro standard sono mescolati in uno virtuale e un pacchetto esiste in entrambi? Controlla questa pagina:
artifactregistry.tags.delete
, artifactregistry.versions.delete
, artifactregistry.packages.delete
, (artifactregistry.repositories.get
, artifactregistry.tags.get
, artifactregistry.tags.list
)Elimina artefatti dal registro, come immagini docker:
artifactregistry.repositories.delete
Elimina un intero repository (anche se ha contenuto):
artifactregistry.repositories.setIamPolicy
Un attaccante con questo permesso potrebbe concedersi i permessi per eseguire alcuni degli attacchi ai repository menzionati in precedenza.
Cloud Functions
Quando viene creata una Cloud Function, una nuova immagine docker viene inviata all'Artifact Registry del progetto. Ho provato a modificare l'immagine con una nuova e persino a eliminare l'immagine attuale (e l'immagine cache
), ma nulla è cambiato, la cloud function continua a funzionare. Pertanto, potrebbe essere possibile abusare di un attacco di Race Condition come con il bucket per cambiare il contenitore docker che verrà eseguito, ma modificare semplicemente l'immagine memorizzata non è possibile compromettere la Cloud Function.
App Engine
Anche se App Engine crea immagini docker all'interno dell'Artifact Registry. È stato testato che anche se modifichi l'immagine all'interno di questo servizio e rimuovi l'istanza di App Engine (quindi ne viene distribuita una nuova), il codice eseguito non cambia. Potrebbe essere possibile che eseguendo un attacco di Race Condition come con i bucket potrebbe essere possibile sovrascrivere il codice eseguito, ma questo non è stato testato.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)