GCP - Artifact Registry Persistence

Reading time: 3 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

Artifact Registry

Artifact Registry에 대한 자세한 정보는 다음을 확인하세요:

GCP - Artifact Registry Enum

Dependency Confusion

  • 원격 및 표준 저장소가 가상 저장소에서 혼합되고 두 곳 모두에 패키지가 존재하면 어떻게 됩니까?
  • 가상 저장소에서 설정된 우선 순위가 가장 높은 것이 사용됩니다.
  • 우선 순위가 동일한 경우:
  • 버전동일하면, 가상 저장소에서 정책 이름이 알파벳 순서로 먼저 사용됩니다.
  • 그렇지 않으면, 가장 높은 버전이 사용됩니다.

caution

따라서, 원격 저장소의 우선 순위가 더 높거나 동일한 경우, 공용 패키지 레지스트리에서 **가장 높은 버전(의존성 혼란)**을 악용할 수 있습니다.

이 기술은 지속성인증되지 않은 접근에 유용할 수 있으며, 이를 악용하기 위해서는 Artifact Registry에 저장된 라이브러리 이름알고, **공용 저장소(예: Python의 PyPi)**에 동일한 라이브러리를 더 높은 버전으로 생성하기만 하면 됩니다.

지속성을 위해 따라야 할 단계는 다음과 같습니다:

  • 요구 사항: 가상 저장소존재하고 사용되어야 하며, 공용 저장소에 존재하지 않는 이름을 가진 내부 패키지가 사용되어야 합니다.
  • 원격 저장소가 존재하지 않으면 생성합니다.
  • 원격 저장소를 가상 저장소에 추가합니다.
  • 원격 저장소에 더 높은 우선 순위(또는 동일)를 부여하기 위해 가상 레지스트리의 정책을 편집합니다.
    다음과 같은 명령을 실행합니다:
  • gcloud artifacts repositories update --upstream-policy-file ...
  • 합법적인 패키지를 다운로드하고, 악성 코드를 추가한 후 동일한 버전으로 공용 저장소에 등록합니다. 개발자가 이를 설치할 때마다, 그는 당신의 것을 설치하게 됩니다!

의존성 혼란에 대한 자세한 정보는 다음을 확인하세요:

Dependency Confusion - HackTricks

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기