行业新闻与博客

RMIScout:新的黑客工具暴力破解 Java RMI 服务器的漏洞

Bishop Fox 的安全研究人员开发了一种工具,可以消除 Java 远程方法调用(RMI)中的漏洞,该 API 在 Java 服务器应用程序上执行远程过程调用,并允许客户端应用程序调用远程 Java 虚拟机(JVM)上的服务。 )。



该工具名为 RMIScout,它对暴露的 Java RMI 接口执行单词列表和暴力攻击,以安全地枚举可调用的方法并发现方法参数中的反序列化漏洞。



RMI 漏洞

Bishop Fox 的安全研究员,RMIScout 的开发人员 Jake Miller 对 The Daily Swig 表示:“ Java RMI 是基于反序列化 Java 序列化对象的传统设计,存在我们在现代环境中更好地理解的风险。”



“由于这种设计,与诸如 gRPC 的较新技术相比,使用 Java RMI 安全地实现服务需要更多的安全考虑。”



如今,反序列化攻击已成为众所周知的威胁,在这种情况下,恶意参与者利用传递给函数的参数对象的解析机制中的缺陷将恶意有效载荷发送给 Java 应用程序。



但是在 Java 的早期,引入 RMI 时,对反序列化漏洞知之甚少,并且该协议没有针对威胁的防护措施。





相关的 GadgetProbe:新工具简化了 Java 反序列化漏洞的利用





“现在,15-20年后,更改协议将破坏向后兼容性。因此,用户配置的全过程反序列化过滤器被确定为最佳解决方案。”



但是,开发人员经常忽略为其应用程序实现过滤器。



同样,许多 Java RMI 服务没有身份验证,会话管理,安全防火墙规则或进程范围的反序列化过滤器。除了对协议进行反序列化攻击之外,这种做法还会导致方法本身受到攻击。



Miller 说:“尽管 RMI 注册管理机构不会公布可以执行的可用功能的列表,但是一旦您知道该方法的签名足以调用它,就可以执行该功能。”



RMIScout

为了执行远程方法,Java RMI 客户端提交方法签名的 64 位哈希,服务器使用该哈希来标识相应的服务器端方法。



为了创建 RMIScout,Miller 分析了从 GitHub 的开源项目中抓取的 15,000 多个方法签名。他将这些模式组合到一个单词表中,RMIScout 使用该列表来探查 RMI 服务器以获取可用方法。



RMIScout 使用一种特殊的技术来验证远程方法的存在而无需调用它们。



除了蛮力方法签名发现之外,RMIScout 可以与其他工具(如 GadgetProbe)结合使用,对缺少进程范围的序列化筛选器或配置错误的服务执行反序列化攻击。





阅读更多 最新的网络黑客工具– 2020年第一季度





“以前,对于通过调用方法或执行反序列化攻击来猜测签名的问题,最好的解决方案是:A)获取软件的副本,或 B)编写自定义代码或使用笨拙的调试工具来尝试和猜测签名,”米勒说。



RMIScout 加快了该过程,并已得到安全社区的好评。



米勒说,他将在未来几个月中继续扩大 RMIScout 的用词范围,并期待社区的贡献。



同时,他强调指出,保护 Java 应用程序免受远程代码执行的最佳方法是利用更新,更安全的技术。



米勒说:“如果您打算从 Java RMI 迁移过来,那是最好的解决方案。但是,如果您坚持使用它:用防火墙规则锁定服务,使用经过身份验证的 SSLRMISocketFactory,并实现整个进程范围的反序列化过滤器。”



本文由机器译制