GCP - Enumeryacja Rejestru Artefaktów
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Podstawowe Informacje
Google Cloud Artifact Registry to w pełni zarządzana usługa, która pozwala na zarządzanie, przechowywanie i zabezpieczanie swoich artefaktów oprogramowania. To zasadniczo repozytorium do przechowywania zależności budowy, takich jak obrazy Docker, pakiety Maven, npm i inne typy artefaktów. Jest powszechnie używane w pipeline’ach CI/CD do przechowywania i wersjonowania artefaktów produkowanych w trakcie procesu rozwoju oprogramowania.
Kluczowe cechy Artifact Registry obejmują:
- Zunifikowane Repozytorium: Obsługuje wiele typów artefaktów, co pozwala na posiadanie jednego repozytorium dla obrazów Docker, pakietów językowych (takich jak Maven dla Javy, npm dla Node.js) i innych typów artefaktów, umożliwiając spójne zarządzanie dostępem i zunifikowany widok wszystkich artefaktów.
- W pełni Zarządzane: Jako usługa zarządzana, zajmuje się infrastrukturą, skalowaniem i bezpieczeństwem, redukując obciążenie konserwacyjne dla użytkowników.
- Szczegółowa Kontrola Dostępu: Integruje się z Zarządzaniem Tożsamością i Dostępem (IAM) Google Cloud, pozwalając na definiowanie, kto może uzyskiwać dostęp, przesyłać lub pobierać artefakty w twoich repozytoriach.
- Geo-replikacja: Obsługuje replikację artefaktów w wielu regionach, poprawiając szybkość pobierania i zapewniając dostępność.
- Integracja z Usługami Google Cloud: Działa bezproblemowo z innymi usługami GCP, takimi jak Cloud Build, Kubernetes Engine i Compute Engine, co czyni go wygodnym wyborem dla zespołów już pracujących w ekosystemie Google Cloud.
- Bezpieczeństwo: Oferuje funkcje takie jak skanowanie podatności i analiza kontenerów, aby pomóc zapewnić, że przechowywane artefakty są bezpieczne i wolne od znanych problemów z bezpieczeństwem.
Format i Tryby
Podczas tworzenia nowego repozytorium można wybrać format/typ repozytorium spośród kilku, takich jak Docker, Maven, npm, Python… oraz tryb, który zazwyczaj może być jednym z tych trzech:
- Standardowe Repozytorium: Domyślny tryb dla przechowywania własnych artefaktów (takich jak obrazy Docker, pakiety Maven) bezpośrednio w GCP. Jest bezpieczne, skalowalne i dobrze integruje się w ekosystemie Google Cloud.
- Zdalne Repozytorium (jeśli dostępne): Działa jako proxy do buforowania artefaktów z zewnętrznych, publicznych repozytoriów. Pomaga zapobiegać problemom związanym ze zmianami zależności w upstreamie i redukuje opóźnienia poprzez buforowanie często używanych artefaktów.
- Wirtualne Repozytorium (jeśli dostępne): Zapewnia zunifikowany interfejs do uzyskiwania dostępu do wielu (standardowych lub zdalnych) repozytoriów przez jeden punkt końcowy, upraszczając konfigurację po stronie klienta i zarządzanie dostępem do artefaktów rozproszonych w różnych repozytoriach.
- Dla wirtualnego repozytorium będziesz musiał wybrać repozytoria i nadać im priorytet (repozytorium z najwyższym priorytetem będzie używane).
- Możesz łączyć zdalne i standardowe repozytoria w wirtualnym, jeśli priorytet zdalnego jest większy niż standardowego, pakiety z zdalnego (na przykład PyPi) będą używane. Może to prowadzić do Zamieszania Zależności.
Zauważ, że w Zdalnej wersji Docker możliwe jest podanie nazwy użytkownika i tokena do uzyskania dostępu do Docker Hub. Token jest następnie przechowywany w Menedżerze Sekretów.
Szyfrowanie
Jak się spodziewano, domyślnie używany jest klucz zarządzany przez Google, ale można wskazać klucz zarządzany przez klienta (CMEK).
Polityki Czyszczenia
- Usuń artefakty: Artefakty będą usuwane zgodnie z kryteriami polityki czyszczenia.
- Symulacja: (Domyślna) Artefakty nie będą usuwane. Polityki czyszczenia będą oceniane, a testowe zdarzenia usunięcia wysyłane do Cloud Audit Logging.
Skanowanie Podatności
Możliwe jest włączenie skanera podatności, który sprawdzi podatności w obrazach kontenerów.
Enumeryacja
# Get repositories
gcloud artifacts repositories list
gcloud artifacts repositories describe --location <location> <repo-name>
gcloud artifacts versions list --repository=<repo-name> -location <location> --package <package-name>
# Get settings of a repository (example using python but could be other)
gcloud artifacts print-settings python --repository <repo-name> --location <location>
# Get docker images
gcloud artifacts docker images list us-central1-docker.pkg.dev/<proj-name>/<repo-name>
# Get packages (like python and others...)
gcloud artifacts packages list --repository <repo-name> --location <location>
# Get SBOMB artifacts
gcloud artifacts sbom list
# Get vulnerabilities (docker images)
gcloud artifacts vulnerabilities list us-east1-docker.pkg.dev/project123/repository123/someimage@sha256:49765698074d6d7baa82f
gcloud artifacts docker images list-vulnerabilities projects/<proj-name>/locations/<location>/scans/<scan-uuid>
Eskalacja Uprawnień
GCP - Artifact Registry Privesc
Nieautoryzowany Dostęp
GCP - Artifact Registry Unauthenticated Enum
Po Eksploatacji
GCP - Artifact Registry Post Exploitation
Utrzymywanie
GCP - Artifact Registry Persistence
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

