一篇文章看懂Apache log4j2 远程代码执行漏洞(CVE-2021-44228)

漏洞始末

【漏洞描述】
Apache Log4j 2是一款开源的Java的日志记录工具,大量的业务框架都使用了该组件。
近日, Apache Log4j 的远程代码执行最新漏洞细节被公开,攻击者可通过构造恶意请求利用该漏洞实现在目标服务器上执行任意代码。可导致服务器被黑客控制,从而进行页面篡改、数据窃取、挖矿、勒索等行为。建议使用该组件的用户第一时间启动应急响应进行修复。
【漏洞等级】:紧急
此次漏洞是用于 Log4j2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在实现的过程中,并未对输入进行严格的判断,从而造成漏洞的发生。
【影响范围】:Java类产品:Apache Log4j 2.x < 2.15.0-rc2
可能的受影响应用及组件(包括但不限于)如下:

Apache Solr
Apache Flink
Apache Druid
Apache Struts2
srping-boot-strater-log4j2
ElasticSearch
flume
dubbo
Redis
logstash
kafka
更多组件可参考如下链接: 
https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core/usages?p=1

不受影响版本:Apache log4j-2.15.0-rc2
【修复建议】
(1) 修改jvm参数:-Dlog4j2.formatMsgNoLookups=true
(2) 修改配置:在应用 classpath下添加 log4j2.component.properties 配置文件并添加内容 log4j2.formatMsgNoLookups=True
(3) 将系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true
(4)禁止使用 log4j 服务器外连,升级 idk 11.0.1 8u191 7u201 6u211 或更高版本。
(5)升级至 log4j-2.15.0-rc2以后的版本
目前漏洞POC已被公开,官方已发布安全版本,建议使用Java开发语言的系统尽快确认是否使用Apache Log4j 2插件。禁止使用log4j服务器外连,升级idk 11.0.1 8u191 7u201 6u211或更高版本。
请尽快升级Apache Log4j2所有相关应用到最新的 log4j-2.15.0-rc2 版本,地址:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

漏洞排查(我的应用有没有这个漏洞?)

应用文件排查:
查看pom.xml有没有log4j相关文件:org.apache.logging.log4j、org.apache.logging.log4j2

应用文件排查

linux:
sudo find / -name "*log4j-*.jar"
linux排查

windows:
*log4j*.jar

windows排查

攻击行为排查

日志排查:
攻击者在利用前通常采用dnslog方式进行扫描、探测,对于常见利用方式可通过应用系统报错日志中的关键字进行排查。

"javax.naming.CommunicationException"
"javax.naming.NamingException: problem generating object using object factory"
"Error looking up JNDI resource"

流量排查:
攻击者的数据包中可能存在:“{jndi:ldap”字样,推荐使用云WAF或硬件WAF设备进行检索排查。

环境搭建

使用本地环境

https://github.com/fofapro/vulfocus
通过 docker pull vulfocus/log4j2-rce-2021-12-09:latest 拉取本地环境运行,本地启动命令:docker run -d -P vulfocus/log4j2-rce-2021-12-09:latest

使用靶场环境

目前 Vulfocus 已经集成 Log4j2 环境,可通过以下链接启动环境测试:

http://vulfocus.fofa.so/#/dashboard?image_id=3b8f15eb-7bd9-49b2-a69e-541f89c4216c

如何利用?

利用工具和脚本 Log4j-rce:
https://github.com/Al0sc/Log4j-rce

你可能感兴趣的:(一篇文章看懂Apache log4j2 远程代码执行漏洞(CVE-2021-44228))