GCP - Persistence dans l'Artifact Registry

Reading time: 3 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Artifact Registry

Pour plus d'informations sur l'Artifact Registry, consultez :

GCP - Artifact Registry Enum

Confusion de dépendance

  • Que se passe-t-il si des dépôts distants et standards sont mélangés dans un virtuel et qu'un package existe dans les deux ?
  • Celui avec la priorité la plus élevée définie dans le dépôt virtuel est utilisé
  • Si la priorité est la même :
  • Si la version est la même, le nom de la politique par ordre alphabétique dans le dépôt virtuel est utilisé
  • Sinon, la version la plus élevée est utilisée

caution

Par conséquent, il est possible de profiter d'une version la plus élevée (confusion de dépendance) dans un registre de packages public si le dépôt distant a une priorité plus élevée ou égale

Cette technique peut être utile pour la persistance et l'accès non authentifié, car pour en abuser, il suffit de connaître le nom d'une bibliothèque stockée dans l'Artifact Registry et de créer cette même bibliothèque dans le dépôt public (PyPi pour Python par exemple) avec une version plus élevée.

Pour la persistance, voici les étapes à suivre :

  • Exigences : Un dépôt virtuel doit exister et être utilisé, un package interne avec un nom qui n'existe pas dans le dépôt public doit être utilisé.
  • Créez un dépôt distant s'il n'existe pas
  • Ajoutez le dépôt distant au dépôt virtuel
  • Modifiez les politiques du registre virtuel pour donner une priorité plus élevée (ou égale) au dépôt distant.
    Exécutez quelque chose comme :
  • gcloud artifacts repositories update --upstream-policy-file ...
  • Téléchargez le package légitime, ajoutez votre code malveillant et enregistrez-le dans le dépôt public avec la même version. Chaque fois qu'un développeur l'installe, il installera le vôtre !

Pour plus d'informations sur la confusion de dépendance, consultez :

Dependency Confusion - HackTricks

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks