Apache Log4j2 Jndi RCE CVE-2021-44228漏洞原理讲解

Apache Log4j2 Jndi RCE CVE-2021-44228漏洞原理讲解

一、什么是Log4j2

  • Log4j2(Log for java)是Apache软件基金会下一个优秀java程序日志监控组件
  • Log4j2远程代码执行漏洞细节被公开【影响版本Log4j 2.x <= 2.15.0-rc1】
  • 影响:多达60644个开源软件,涉及相关版本软件包更是达到了321094个

二、环境搭建

  1. 使用Intellij IDEA创建项目

  2. pom.xml中添加依赖

  3. 点击刷新

  4. 获得log4j的源码

三、简单使用Log4j2

  • ALL <DEBUG < INFO < WARN < ERROR < FATAL <OFF (只有等级>=设置的等级才会输出日志【ERROR、FATAL】)
  1. 输出错误日志

  2. Log4j2提供了lookup功能

四、JDNI和RMI

  • 什么是JDNI?
    • JNDI(Java Naming and Directory Interface)本质是可以操作目录服务、域名服务的一组接口
    • JNDI可访问的现有的目录及服务有:JDBC、LDAPRMI、DNS、NIS、CORBA。
  • 什么RMI?
    • RMl:远程方法调用(Remote Method Invoke)
    • 客户端(Client)可以远程调用服务端(Server)上的方法,JVM虚拟机能够远程调用另一个JVM虚拟机中的方法

4.1、启动一个RMI服务端

  1. 服务端:
  2. 服务端的资源:


  3. 使用python开启本地的一个web服务

  4. 启动RMI服务端:

4.2、启动一个RMI客户端

  1. 创建

  2. 运行,发生报错,是因为高版本的java是不支持rmi获取相关的资源,需要添加一些设置才可以

  3. 重新运行,虽然没有报错,但是依旧没有"启动计算器",代码不能够执行,需要再添加一条代码

  4. 再次重新运行:打印了"hello",并且调出了计算器

  5. 利用log4j的lookup的功能,也成功的请求了资源

4.3、ldap

  • ldap与rmi类似

五、漏洞复现

  1. 靶场地址:https://github.com/vulhub/vulhub/tree/master/log4j/CVE-2021-44228
  2. 工具:JNDIExploit-1.2-SNAPSHOT.jar:https://github.com/zzwlpx/JNDIExploit
bash 复制代码
java -jar JNDIExploit.jar -h # 查看参数说明,其中 --ip 参数为必选参数
	-i , --ip 		# Local ip address
	-1 , --ldapPort 	# Ldap bind port(default:1389)
	-p , --httpPort 	# Http bind port(default:8080)
	-u , --usage 		# Show usage (default:false)
	-h , --help 		# Show this help
  1. 靶场地址:120.77.38.47

  2. 将工具放在攻击机上:162.14.83.77

  3. 在攻击机上运行工具:162.14.83.77是攻击机的IP地址

  4. 查看工具用法

  5. 攻击机开启监听

  6. 使用反弹shell

  7. 攻击机监听成功

六、Python批量检测

相关推荐
小小龙学IT6 天前
Apache Airflow 2.x 深度指南:用 Python 编排一切的现代化工作流引擎
开发语言·python·apache
Shepherd06196 天前
【IT 运维】Apache 使用 mod_remoteip 恢复 Cloudflare 后的真实访客 IP
运维·tcp/ip·apache
isyangli_blog6 天前
SDN 基本应用实践 —— 使用命令行实现简易防火墙功能实验报告
服务器·php·apache
小小龙学IT7 天前
Apache Pulsar 深度解析:从架构设计到生产落地
apache
Full Stack Developme8 天前
Apache Tika 教程
java·开发语言·python·apache
周杰伦fans8 天前
记一次 Visual Studio 突然报错“未能加载 Microsoft.Internal.VisualStudio.Interop”的奇葩经历
microsoft·log4j·visual studio
laplaya8 天前
C++大型项目组件通信与依赖管理实践
c++·log4j·apache
福大大架构师每日一题9 天前
ollama v0.30.7 正式发布:Hermes 桌面端落地,接口、文档、底层依赖全方位优化
golang·log4j
万岳科技9 天前
教育培训小程序如何构建线上线下一体化教学体系
小程序·apache
yyuuuzz9 天前
云服务器软件部署的几个常见问题
运维·服务器·开发语言·网络·云计算·php·apache