栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

log4j2的核弹级bug排查与验证过程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

log4j2的核弹级bug排查与验证过程

log4j2核弹级bug
  • 一.序曲
  • 二.问题
  • 三.复现
    • 1.环境前提
    • 2.项目内容介绍
    • 3.运行
    • 4.分析
  • 四.解决

一.序曲

公司安全部发出告警,紧急修复bug

二.问题

Apache Log4j2 远程代码执行漏洞的详细信息已被披露,而经过分析,本次 Apache Log4j 远程代码执行漏洞,正是由于组件存在 Java JNDI 注入漏洞:当程序将用户输入的数据记入日志时,攻击者通过构造特殊请求,来触发 Apache Log4j2 中的远程代码执行漏洞,从而利用此漏洞在目标服务器上执行任意代码。

  • 受影响版本:
Apache Log4j 2.x <= 2.14.1
  • 已知受影响的应用程序和组件:
srping-boot-strater-log4j2
Apache Solr
Apache Flink
Apache Druid

据悉,此次 Apache Log4j2 远程代码执行漏洞风险已被业内评级为“高危”,且漏洞危害巨大,利用门槛极低。有报道称,目前 Apache Solr、Apache Struts2、Apache Druid、Apache Flink 等众多组件及大型应用均已经受到了影响,需尽快采取方案阻止。

三.复现

这里的主要是参考网上以一位大佬的实现,再次解说一下详细过程,详情请查看:https://github.com/tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce。

1.环境前提

python环境https://www.python.org/downloads/windows/主要是用于将本地电脑变成一台服务器
当然了,其余的java,maven环境这里就不说了,肯定是必备的

2.项目内容介绍

3.运行
  • 编译或运行Exploit.java文件用于生成class文件,该代码是用来打开计算器的。
  • python版本可通过pytohn --verison查看
    • python3环境:python -m http.server 8080
    • python2环境:python -m SimpleHTTPServer 8080
  • 在tools目录下执行java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8888/#Exploit"
4.分析

也就是说,攻击者可以通过输入一些特殊内容,如果服务器通过日志打印出来,然后就可能导致执行一些恶意内容或者获取非法数据信息

四.解决

修复建议:

  1. 升级至最新版 https://www.apache.org/dyn/closer.lua/logging/log4j/2.15.0/apache-log4j-2.15.0-bin.tar.gz
  2. 升级已知受影响的应用及组件,如 spring-boot-starter-log4j2/Apache Struts2/Apache Solr/Apache Druid/Apache Flink
  3. 接入安全中心WAF、RASP防御此漏洞。

其他临时缓解措施:

  1. 禁止没有必要的业务访问外网;
  2. 设置jvm参数 “-Dlog4j2.formatMsgNoLookups=true”( 需要版本升级到2.10以上-推荐);
  3. log4j2.component.properties配置文件中设置“log4j2.formatMsgNoLookups=True (需要版本升级到2.10以上-推荐) 。

业务自查方式

  1. grep -R --include=“pom.xml” “org.apache.logging.log4j”

攻击排查

  1. 攻击者在利用前通常采用dnslog方式进行扫描、探测,常见的漏洞利用方式可通过应用系统报错日志中的"javax.naming.CommunicationException"、“javax.naming.NamingException: problem generating object using object factory”、"Error looking up JNDI resource"关键字进行排查。
  2. 攻击者发送的数据包中可能存在"${jndi:}" 字样,推荐使用全流量或WAF设备进行检索排查。

参考资料

  1. 官方补丁:安全版本2.15.0 https://www.apache.org/dyn/closer.lua/logging/log4j/2.15.0/apache-log4j-2.15.0-bin.tar.gz

依赖排查工具推荐
1.maven依赖分析工具Maven Helper,一键帮助分析依赖冲突及排除

工具使用详细参考:https://cloud.tencent.com/developer/article/1584697

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/658415.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号