GCP - Artifact Registry Persistence

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Artifact Registry

Aby uzyskać więcej informacji na temat Artifact Registry, sprawdź:

pageGCP - Artifact Registry Enum

Dependency Confusion

  • Co się dzieje, jeśli zdalne i standardowe repozytoria są mieszane w jednym wirtualnym repozytorium, a pakiet istnieje w obu?

  • Używane jest to, które ma najwyższy priorytet ustawiony w wirtualnym repozytorium.

  • Jeśli priorytet jest taki sam:

  • Jeśli wersja jest taka sama, używana jest nazwa polityki alfabetycznie pierwsza w wirtualnym repozytorium.

  • Jeśli nie, używana jest najwyższa wersja.

Dlatego możliwe jest wykorzystanie najwyższej wersji (dependency confusion) w publicznym rejestrze pakietów, jeśli zdalne repozytorium ma wyższy lub taki sam priorytet.

Ta technika może być przydatna do trwałości i nieuwierzytelnionego dostępu, ponieważ do jej wykorzystania wystarczy znać nazwę biblioteki przechowywanej w Artifact Registry i utworzyć tę samą bibliotekę w publicznym repozytorium (np. PyPi dla Pythona) z wyższą wersją.

Aby uzyskać trwałość, należy postępować zgodnie z poniższymi krokami:

  • Wymagania: Musi istnieć wirtualne repozytorium i być używane, musi być używany wewnętrzny pakiet o nazwie, która nie istnieje w publicznym repozytorium.

  • Utwórz zdalne repozytorium, jeśli nie istnieje.

  • Dodaj zdalne repozytorium do wirtualnego repozytorium.

  • Edytuj polityki rejestru wirtualnego, aby nadać wyższy priorytet (lub taki sam) zdalnemu repozytorium. Uruchom coś w stylu:

  • Pobierz prawidłowy pakiet, dodaj złośliwy kod i zarejestruj go w publicznym repozytorium z tą samą wersją. Za każdym razem, gdy deweloper go instaluje, zainstaluje twój!

Aby uzyskać więcej informacji na temat dependency confusion, sprawdź:

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated