GCP - Artifact Registry Persistence

HackTricksのサポート

Artifact Registry

Artifact Registryに関する詳細情報は次をチェックしてください:

GCP - Artifact Registry Enum

依存関係混乱

  • リモートと標準リポジトリが仮想的に混在し、パッケージが両方に存在する場合、どうなるか?

  • 仮想リポジトリで最優先設定されたものが使用される

  • 優先度が同じ場合:

  • バージョン同じ場合、仮想リポジトリでアルファベット順に最初のポリシー名が使用される

  • そうでない場合、最高バージョンが使用される

したがって、リモートリポジトリがより高いか同じ優先度を持つ場合、パブリックパッケージレジストリで**最高バージョン(依存関係混乱)**を悪用することが可能です

このテクニックは永続性認証されていないアクセスに役立ち、それを悪用するにはArtifact Registryに格納されているライブラリ名を知るだけで、同じライブラリを**パブリックリポジトリ(たとえばPythonのPyPi)**により高いバージョンで作成する必要があります。

永続性のためには、以下の手順に従う必要があります:

  • 要件: 仮想リポジトリ存在し、使用されている必要があり、パブリックリポジトリに存在しない名前を持つ内部パッケージを使用する必要があります。

  • リモートリポジトリを作成する(存在しない場合)

  • リモートリポジトリを仮想リポジトリに追加する

  • 仮想レジストリのポリシーを編集して、リモートリポジトリに**より高い優先度(または同じ)**を与えます。 次のようなコマンドを実行します:

  • 正規のパッケージをダウンロードし、悪意のあるコードを追加して、同じバージョンでパブリックリポジトリに登録します。開発者がインストールするたびに、あなたのものがインストールされます!

依存関係混乱についての詳細は次をチェックしてください:

HackTricksのサポート

Last updated