GCP - Artifact Registry Persistence

Support HackTricks

Artifact Registry

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

GCP - Artifact Registry Enum

Dependency Confusion

  • 원격 및 표준 리포지토리가 가상 리포지토리에서 혼합되고 패키지가 두 곳에 모두 존재하면 어떻게 됩니까?

  • 가상 리포지토리에서 설정된 가장 높은 우선 순위의 것이 사용됩니다.

  • 우선 순위가 동일한 경우:

  • 버전동일한 경우, 가상 리포지토리에서 정책 이름이 알파벳 순서로 먼저 오는 것이 사용됩니다.

  • 그렇지 않으면 가장 높은 버전이 사용됩니다.

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

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

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

  • 요구 사항: 가상 리포지토리존재하고 사용되어야 하며, 공개 리포지토리에 존재하지 않는 이름을 가진 내부 패키지가 사용되어야 합니다.

  • 원격 리포지토리가 존재하지 않으면 생성합니다.

  • 원격 리포지토리를 가상 리포지토리에 추가합니다.

  • 원격 리포지토리에 더 높은 우선 순위(또는 동일한)를 부여하기 위해 가상 레지스트리의 정책을 편집합니다. 다음과 같은 명령을 실행합니다:

  • 정품 패키지를 다운로드하고, 악성 코드를 추가한 후 동일한 버전으로 공개 리포지토리에 등록합니다. 개발자가 이를 설치할 때마다, 그는 당신의 것을 설치하게 됩니다!

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

Support HackTricks

Last updated