GCP - Artifact Registry Privesc
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Für weitere Informationen über Artifact Registry siehe:
GCP - Artifact Registry EnumMit dieser Berechtigung könnte ein Angreifer neue Versionen der Artefakte mit schädlichem Code wie Docker-Images hochladen:
Es wurde überprüft, dass es möglich ist, ein neues bösartiges Docker-Image mit demselben Namen und Tag wie das bereits vorhandene hochzuladen, sodass das alte den Tag verliert und beim nächsten Mal, wenn dieses Image mit diesem Tag heruntergeladen wird, das bösartige heruntergeladen wird.
Es ist nicht möglich, eine Python-Bibliothek mit derselben Version wie die bereits vorhandene hochzuladen, aber es ist möglich, größere Versionen hochzuladen (oder eine zusätzliche .0
am Ende der Version hinzuzufügen, wenn das funktioniert - nicht in Python jedoch -), oder die letzte Version zu löschen und eine neue hochzuladen mit (benötigt artifactregistry.versions.delete)
:
artifactregistry.repositories.downloadArtifacts
Mit dieser Berechtigung können Sie Artefakte herunterladen und nach sensiblen Informationen und Schwachstellen suchen.
Laden Sie ein Docker-Image herunter:
Laden Sie eine python-Bibliothek herunter:
Was passiert, wenn in einem virtuellen Registry ein Remote- und ein Standard-Registry gemischt werden und ein Paket in beiden vorhanden ist? Überprüfen Sie diese Seite:
artifactregistry.tags.delete
, artifactregistry.versions.delete
, artifactregistry.packages.delete
, (artifactregistry.repositories.get
, artifactregistry.tags.get
, artifactregistry.tags.list
)Löschen Sie Artefakte aus dem Registry, wie Docker-Images:
artifactregistry.repositories.delete
Löschen Sie ein vollständiges Repository (auch wenn es Inhalte hat):
artifactregistry.repositories.setIamPolicy
Ein Angreifer mit dieser Berechtigung könnte sich selbst Berechtigungen geben, um einige der zuvor genannten Repository-Angriffe durchzuführen.
Cloud Functions
Wenn eine Cloud-Funktion erstellt wird, wird ein neues Docker-Image in das Artifact Registry des Projekts hochgeladen. Ich habe versucht, das Image mit einem neuen zu ändern und sogar das aktuelle Image (und das cache
-Image) zu löschen, und es hat sich nichts geändert, die Cloud-Funktion funktioniert weiterhin. Daher könnte es möglich sein, einen Race Condition-Angriff zu missbrauchen, wie mit dem Bucket, um den Docker-Container zu ändern, der ausgeführt wird, aber nur durch das Ändern des gespeicherten Images ist es nicht möglich, die Cloud-Funktion zu kompromittieren.
App Engine
Obwohl App Engine Docker-Images im Artifact Registry erstellt, wurde getestet, dass selbst wenn Sie das Image innerhalb dieses Dienstes ändern und die App Engine-Instanz entfernen (damit eine neue bereitgestellt wird), der ausgeführte Code sich nicht ändert. Es könnte möglich sein, dass durch die Durchführung eines Race Condition-Angriffs wie mit den Buckets der ausgeführte Code überschrieben werden könnte, aber dies wurde nicht getestet.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)