GCP - Artifact Registry Persistence

Supporta HackTricks

Artifact Registry

Per ulteriori informazioni su Artifact Registry controlla:

GCP - Artifact Registry Enum

Confusione delle Dipendenze

  • Cosa succede se un repository remoto e uno standard vengono mescolati in uno virtuale e un pacchetto esiste in entrambi?

  • Viene utilizzato quello con la priorità più alta impostata nel repository virtuale

  • Se la priorità è la stessa:

  • Se la versione è la stessa, viene utilizzato il nome della policy alfabeticamente primo nel repository virtuale

  • Se no, viene utilizzata la versione più alta

Pertanto, è possibile abusare di una versione più alta (confusione delle dipendenze) in un registro di pacchetti pubblico se il repository remoto ha una priorità più alta o uguale

Questa tecnica può essere utile per persistenza e accesso non autenticato poiché per abusarne è sufficiente conoscere il nome di una libreria memorizzata in Artifact Registry e creare quella stessa libreria nel repository pubblico (PyPi per python ad esempio) con una versione più alta.

Per la persistenza, questi sono i passaggi da seguire:

  • Requisiti: Deve esistere e essere utilizzato un repository virtuale, deve essere utilizzato un pacchetto interno con un nome che non esiste nel repository pubblico.

  • Crea un repository remoto se non esiste

  • Aggiungi il repository remoto al repository virtuale

  • Modifica le politiche del registro virtuale per dare una priorità più alta (o uguale) al repository remoto. Esegui qualcosa come:

  • Scarica il pacchetto legittimo, aggiungi il tuo codice malevolo e registralo nel repository pubblico con la stessa versione. Ogni volta che un sviluppatore lo installa, installerà il tuo!

Per ulteriori informazioni sulla confusione delle dipendenze controlla:

Supporta HackTricks

Last updated