Java和Python包含允许攻击者绕过防火墙漏洞

cabling-hardware

Java和Python都包含类似的安全漏洞,允许他人通过在FTP URL中插入恶意命令绕过防火墙。

问题来自Java和Python(通过Python 2中的urllib2库和Python 3中的urllib库)处理FTP链接,这允许他人在URL中插入换行(CRLF)字符,使Java和Python代码认为URL的某些部分是新命令。这导致了安全研究人员称为“协议注入”的缺陷。

FTP协议注入发布自2014年以来

2014年,俄罗斯安全实验室ONsec 首次详细介绍了FTP协议注入问题,但从未得到公众的关注。最近的两份报告提出了这个缺陷的描述,描述了两种新的开发方案。

安全研究员亚历山大Klink详细介绍了他的博客如何FTP协议注入漏洞可用于使用Java的FTP URL处理程序发送电子邮件。

两天后,Blindspot安全公司的Timothy Morgan提出了一个更恶毒的利用场景,其中使用Java和Python中的FTP URL处理程序来绕过防火墙。

这两个问题仍然未修补

Morgan还透露,他的公司通知了Python团队(2016年1月)和Oracle(2016年11月)的FTP协议注入漏洞,但没有发布更新来解决报告的问题。

FTP协议注入攻击的核心是FTP协议本身的一个较旧的问题,这是经典模式FTP。

经典模式FTP是一种旧的机制,用于管理FTP客户端和服务器如何交互,这在Phrack Hacking杂志的问题#60中被证明是不安全的,后来更详细地由Florian Weimer详细描述。

经典模式FTP已被更安全的客户端 – 服务器FTP交互(称为被动模式FTP)的方法所取代。然而,大多数防火墙产品支持经典模式FTP连接。

Java和Python中的FTP协议注入问题可以用于启动经典模式FTP连接,被大多数防火墙列入白名单,他人可以将其用于恶意用途。

攻击很容易执行

据Morgan称,整个防火墙旁路攻击依赖于说服用户访问安装在服务器上的恶意Java或Python应用程序。

对于Java攻击,用户必须在本地安装Java,但即使在用户的浏览器中禁用了Java applet,攻击也会起作用。这是因为Java客户端在执行其他操作之前将读取JNLP(Java网络启动协议)文件。

“在向用户提供任何安全警告之前,Java会解析JNLP文件,”Morgan解释说。“攻击可以完全成功,没有任何指示给用户(除非浏览器本身警告用户关于Java Web Start正在启动)。

他人只需要在用户访问Java Web应用程序时向用户发送的JNLP文件中放置恶意的FTP URL。可以将多个FTP URL放在JNLP文件中,从而允许他人执行多个或分阶段的攻击。

针对Cisco,Palo Alto防火墙测试的攻击

Morgan说他成功测试了对基于Linux的防火墙的攻击,包括Cisco和Palo Alto Networks出售的商业产品。他怀疑在Linux衍生操作系统上工作的许多其他防火墙产品也可能是脆弱的。

Morgon说他将发布概念验证码,所以sysadmins可以在Oracle和Python解决报告的问题后测试防火墙。

研究者已经发布了一系列关于如何处理这个问题的建议,直到Oracle和Python团队解决他们的问题:

  • 考虑从所有桌面系统中卸载Java。如果由于遗留应用程序要求而无法实现此目的,请从所有浏览器中禁用Java浏览器插件,并将.jnlp文件扩展名与Java Web Start二进制文件解除关联。
  • 考虑请求更新以从Oracle和Python软件基金会解决这些问题。请确保对所有版本的Java和Python应用安全更新,包括在应用程序服务器和设备上运行的更新。
  • 网络管理员应在所有防火墙中禁用经典模式FTP,仅允许被动模式。
  • 用户应该禁用浏览器的Java插件并且取消.jnlp文件与Java Web Start的关联。同时,对Java和Python应用应该审计SSRF和XXE漏洞。
  • 防火墙供应商应禁用经典模式FTP,因此默认情况下不启用此选项的产品。

*来源:bleepingcomputer,MottoIN整理发布

原创文章,作者:SecNews,如若转载,请注明出处:http://www.mottoin.com/news/96611.html

发表评论

登录后才能评论

联系我们

021-62666911

在线咨询:点击这里给我发消息

邮件:root@mottoin.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code