GCP - Artifact Registry Privesc
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aby uzyskać więcej informacji na temat Rejestru Artefaktów, sprawdź:
Dzięki temu uprawnieniu atakujący mógłby przesyłać nowe wersje artefaktów z złośliwym kodem, takimi jak obrazy Dockera:
Sprawdzono, że możliwe jest przesłanie nowego złośliwego obrazu dockera o tej samej nazwie i tagu, co już obecny, więc stary straci tag i następnym razem, gdy obraz z tym tagiem zostanie pobrany, zostanie pobrany złośliwy.
Nie można przesłać biblioteki Pythona o tej samej wersji, co już obecna, ale można przesłać większe wersje (lub dodać dodatkowe .0
na końcu wersji, jeśli to działa - nie w Pythonie jednak), lub usunąć ostatnią wersję i przesłać nową z (potrzebne artifactregistry.versions.delete)
:
artifactregistry.repositories.downloadArtifacts
Dzięki temu uprawnieniu możesz pobierać artefakty oraz wyszukiwać wrażliwe informacje i luki.
Pobierz obraz Docker:
Pobierz bibliotekę python:
Co się stanie, jeśli zdalne i standardowe rejestry zostaną zmieszane w wirtualnym i pakiet istnieje w obu? Sprawdź tę stronę:
artifactregistry.tags.delete
, artifactregistry.versions.delete
, artifactregistry.packages.delete
, (artifactregistry.repositories.get
, artifactregistry.tags.get
, artifactregistry.tags.list
)Usuń artefakty z rejestru, takie jak obrazy docker:
artifactregistry.repositories.delete
Usuń pełne repozytorium (nawet jeśli ma zawartość):
artifactregistry.repositories.setIamPolicy
Napastnik z tym uprawnieniem mógłby nadać sobie uprawnienia do przeprowadzenia niektórych z wcześniej wspomnianych ataków na repozytoria.
Cloud Functions
Gdy tworzona jest funkcja chmurowa, nowy obraz dockerowy jest przesyłany do Artifact Registry projektu. Próbowałem zmodyfikować obraz na nowy, a nawet usunąć bieżący obraz (i obraz cache
), ale nic się nie zmieniło, funkcja chmurowa nadal działa. Dlatego może możliwe jest nadużycie ataku Race Condition jak w przypadku bucketu, aby zmienić kontener dockerowy, który będzie uruchamiany, ale po prostu modyfikacja przechowywanego obrazu nie jest wystarczająca, aby skompromitować funkcję chmurową.
App Engine
Mimo że App Engine tworzy obrazy dockerowe w Artifact Registry. Przetestowano, że nawet jeśli zmodyfikujesz obraz w tej usłudze i usuniesz instancję App Engine (aby wdrożona została nowa), wykonywany kod się nie zmienia. Możliwe, że przeprowadzenie ataku Race Condition jak w przypadku bucketów mogłoby umożliwić nadpisanie wykonywanego kodu, ale to nie zostało przetestowane.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)