漏洞描述
Apache Log4j
是美国阿帕奇(Apache)软件基金会的一款基于Java的开源日志记录工具.Apache Log4j 1.2.X
系列版本中存在反序列化远程代码执行漏洞.攻击者可利用该漏洞执行任意恶意命令.在Log4j 1.2.X
中包含一个SocketServer
类,该类很容易对不可信数据进行反序列化,当侦听日志数据的不可信网络流量时,与反序列化小工具结合使用时,可以利用该类远程执行任意代码.影响包含目前最新版本.
CVE编号
CVE- 2019-12409
漏洞威胁等级
高危
影响范围
1.2.4 <= Apache Log4j <= 1.2.17(最新版)
简单分析
其实早在Apache Log4j 2.8.2
时代就存在反序列化远程代码执行漏洞(CVE-2017-5645),当时触发的漏洞类为org.apache.logging.log4j.core.net.server.TcpSocketServer
,到了Apache Log4j 1.2.X
时代,漏洞类变为org.apache.log4j.net.SocketServer
大致原理和CVE-2017-5645
类似,只需要找到可以利用的gadget
即可触发.由于是socket协议,这里我使用nc发送序列化文件到其靶机端口,最终成功触发漏洞
修复建议
- 1.升级到
Apache Log4j 2
系列最新版 - 2.禁止将该类所开启的socket端口暴露到互联网
时间轴
[0] 2019/12/20 NVD发布该漏洞
[1] 2019/12/24 亚信安全网络攻防实验室研究并复现该漏洞发布漏洞预警
Reference