JNDI RMI 远程访问(LOG4j2漏洞底层原理)

打印 上一主题 下一主题

主题 526|帖子 526|积分 1578

JDK 版本 8u112
客户端(模拟被攻击的网站)

服务端(注册 RMI 服务,给被攻击网站提供 RMI 服务)
服务端 IP 192.168.3.175

恶意类(客户端发送请求给服务端,服务端再请求恶意类予以返回)

 
需要先将恶意类编译成 class 文件再存放到网站上,再通过命令开启服务
恶意类存放网站 IP 192.168.152.128(在 kali 上使用 python -m http.server 8888 命令搭建服务器)
1、启动恶意类网站

 
2、Run 启动服务端

 
 3、Run 启动客户端

 
 弹出成功,开始分析利用链
4.1、打上断点开始debug,跟进 lookup 方法

 
 4.2、直接跟进 lookup 方法
熟悉的味道,熟悉的配方(这里开始就可以参考上篇文章 log4j2 的利用链分析了,从文章 3.30 开始进入解析)

 4.3、跟进 lookup 方法

 
4.4、跟进 decodeObject 方法

 
 4.5、跟进 getObjectInstance 方法

 
 4.6、跟进 get Object Factory From Reference 方法(该方法 从引用获取对象工厂)

 
 4.7、漏洞触发点
第一个 loadClass 先本地加载
如果加载不到,则进入第二个 loadClass 进行远程加载,
最后通过 构造方法 创建对象

 
 这里因为恶意类写在 static 代码块中,所以类加载时即可触发

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

钜形不锈钢水箱

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表