未修补的Python和Java漏洞允许黑客通过FTP注入绕过防火墙

VSole2022-08-10 20:00:00

Java和Python这两种流行的编程语言包含类似的安全漏洞,可以利用这些漏洞发送未经授权的电子邮件并绕过任何防火墙防御。

而且,由于这两个缺陷仍未修补,黑客可以利用这一优势设计针对关键网络和基础设施的潜在网络攻击行动。

这些未修补的缺陷实际上存在于Java和Python编程语言处理文件传输协议(FTP)链接的方式中,它们没有对用户名参数进行语法检查,这导致了研究人员所说的协议注入缺陷。

Java/Python FTP注入用于发送未经授权的SMTP电子邮件

在上周发布的一篇博客文章中,安全研究员亚历山大·克林克详细介绍了Java的XML外部实体(XXE)中的FTP协议注入漏洞,该漏洞允许攻击者在FTP连接请求中注入非FTP恶意命令。

为了演示攻击,Alexander演示了如何在FTP连接尝试中通过SMTP(简单邮件传输协议)发送未经授权的电子邮件,即使FTP连接失败,因为FTP服务器确实支持身份验证,但不检查用户名中是否存在回车符(CR)或换行符(LF)。

Alexander总结道:“在这样一种情况下,这种攻击尤其有趣,在这种情况下,你可以从进行XML解析的机器上访问(不受限制,甚至可能没有垃圾邮件或恶意软件过滤)内部邮件服务器”。

Java/Python FTP注入允许绕过防火墙

然而,两天后,在另一份安全咨询中,Blindspot security的安全研究员蒂莫西·摩根(Timothy Morgan)提出了他的发现,显示了更具威胁性的攻击场景,Java和Python中的FTP URL处理程序都可以用来绕过防火墙。

Morgan说,这种FTP协议注入漏洞可能被用来欺骗受害者的防火墙,使其在其“高”端口(从1024到65535)上接受从网络到易受攻击主机系统的TCP连接。

除了FTP协议注入攻击,FTP协议中还有一个十年前的安全问题,称为经典模式FTP;客户端-服务器FTP交互的不安全机制,但默认情况下,许多防火墙供应商仍然支持它。

启动经典模式FTP连接时,防火墙会临时打开一个端口–;通常介于1024和65535之间–;在端口命令中指定,这会带来安全风险。

利用Java和Python中的FTP协议注入问题,知道目标主机内部IP地址的攻击者可以启动经典模式FTP连接,攻击者可以将其用于邪恶目的。

Morgan已确定,攻击者只需三次请求即可在目标防火墙中打开一个端口:

  1. 识别受害者的内部IP地址–;这要求攻击者“发送一个URL,查看客户端的行为,然后尝试另一个,直到攻击成功”。
  2. 确定数据包对齐,并确保在正确的时刻注入端口命令,从而使攻击有效。
  3. 利用漏洞。

每个额外的请求都可以用来打开另一个TCP端口。

易于利用的协议注入漏洞

然而,研究人员警告称,他的漏洞可能被用于中间人(MitM)攻击、服务器端请求伪造(SSRF)、XEE攻击等–;一旦绕过防火墙,桌面主机即使没有安装Java,也可能受到攻击。

攻击者只需说服受害者访问安装在服务器上的恶意Java或Python应用程序即可绕过整个防火墙。

Morgan说:“如果桌面用户在安装Java时被说服访问恶意网站,即使Java小程序被禁用,他们仍然可能触发Java Web Start解析JNLP(Java网络启动协议)文件”。“这些文件可能包含触发此错误的恶意FTP URL”。

“还要注意的是,由于Java在向用户提供任何安全警告之前解析JNLP文件,因此攻击可以完全成功,而无需向用户提供任何指示(除非浏览器本身警告用户Java Web Start正在启动)。”

根据Morgan的说法,Python的urllib2和urllib库中也存在一个几乎相同的漏洞,尽管“这种注入似乎仅限于通过URL中指定的目录名进行的攻击”

协议注入漏洞仍未修补

Morgan表示,他的公司于2016年1月和2016年11月分别向Python团队和Oracle报告了FTP协议注入漏洞,但两家公司均未发布任何更新来解决该问题。

Morgan开发了一个概念验证(PoC)漏洞,但目前正在推迟发布他的漏洞,直到Oracle和Python对披露和发布补丁做出回应。

Morgan的漏洞已经在Palo Alto Networks和Cisco ASA防火墙上成功测试,不过研究人员认为许多商用防火墙也容易受到FTP流注入攻击。

因此,在补丁可用之前,Morgan建议用户卸载桌面和浏览器上的Java,并在所有防火墙上禁用对“经典模式”FTP的支持。

防火墙ftp
本作品采用《CC 协议》,转载必须注明作者和本文链接
事件查看器windows系统自带一个叫做事件查看器的工具,它可以分析所有的windows系统日志。他们的默认最大容量为20MB.事件类型事件查看器把时间分类为了五种类型:信息信息事件指应用程序、驱动程序或服务的成功操作的事件。警告警告事件指不是直接的、主要的,但是会导致将来问题发生的问题。例如,当磁盘空间不足或未找到打印机时,都会记录一个“警告”事件。错误事件通常指功能和数据的丢失。进入事件查看器,右边栏选择清除日志。
授予用户sudo权限。需要执行牵涉整个系统的管理任务时,使用sudo命令获得root权限。使用以下密码要求:1、密码应在90天后过期,并有5天的警告期。配置标准的Linux权限和所有权,以便每个组只能访问各自的部门目录。将虚拟机重新配置为默认引导至GUI,然后重新引导以确认您成功。
Java和Python这两种流行的编程语言包含类似的安全漏洞,可以利用这些漏洞发送未经授权的电子邮件并绕过任何防火墙防御。而且,由于这两个缺陷仍未修补,黑客可以利用这一优势设计针对关键网络和基础设施的潜在网络攻击行动。
时光飞逝,转眼间2021年已过大半,我们的“防火墙ALG技术”系列文章也已经更新到了第四期,之前推送的《防火墙ALG技术之安全策略》 《防火墙ALG技术之FTP协议穿墙术》 《防火墙ALG技术之TFTP协议穿墙术》 可点击链接进行阅读。本期介绍DNS协议穿越防火墙NAT,浅谈个人理解与认知。
为了使私网WEB服务器和FTP服务器能够对外提供服务,需要在防火墙上配置指定安全域的目的NAT功能。除了公网接口的IP地址外,公司还分别向ISP1和ISP2申请了117.11.39.31和42.122.138.252作为内网服务器对外提供服务的地址。
换言之,需要除了映射出公网IP地址外、对于一些特定应用还需要改变端口号。为了使私网WEB服务器和FTP服务器能够对外提供服务,需要在防火墙上配置目的NAT功能。 如果端口非常多、只能使用一对一映射的话,安全策略尽量做到精确匹配,在确保业务不受影响的情况下尽可能地保障系统安全。
在通信领域中,防火墙主要用于保护一个网络免受来自另一个网络的攻击和入侵行为。
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
FTP弹跳扫描就是利用存在漏洞的FTP服务器(如HP JetDirect打印服务器),对目标主机端口实施扫描。在Nmap中提供了一个-b选项,可以用来实施FTP弹跳扫描。用于实施FTP弹跳扫描的语法格式如下: 以上语法中的选项及含义如下: nmap -b [username:password@server:port] -Pn -v [host]
工业控制系统对网络安全的需求日益增长,工业防火墙已成为工业控制网络安全防护的必需手段之一。
VSole
网络安全专家