- A+
研究人员发布了一个概念验证,展示了如何利用XXE漏洞攻击Ghidra项目用户。
Ghidra是一个免费的开源软件逆向工程工具,由RSA的国家安全局发布,已被发现是远程代码执行的潜在渠道。
Ghidra是一个用Java编写的反汇编程序; 将可执行文件分解为汇编代码的软件,然后可以对其进行分析。 通过解构恶意代码和恶意软件,网络安全专业人员可以更好地了解其网络和系统中的潜在漏洞。 国家安全局在内部使用了多年, 最近决定开源。
版本9.0及更低版本中的Ghidra项目加载过程包含XML外部实体(XXE)漏洞; 这个问题是在Ghidra被释放后不到24小时发现的 ,由一位研究员处理@sghctoma。
根据OWASP, XXE错误可用于攻击解析XML输入的应用程序。
“当包含对外部实体的引用的XML输入由弱配置的XML解析器处理时,就会发生这种攻击,”该组称。 “这种攻击可能会导致机密数据泄露,拒绝服务,服务器端请求伪造,从解析器所在机器的角度进行端口扫描,以及其他系统影响。”
在Ghidra的案例中,“项目开放/恢复容易受到XML外部实体扩展攻击,”@sghctoma在Github报告中说 。 “通过让某人打开/恢复攻击者准备的项目,可以通过各种方式利用这一点。”
研究人员解释说,攻击者可以创建一个项目,只需将XXE有效负载放在项目目录中的任何XML文件中即可攻击用户; @sghctoma补充说,不幸的是,同样的攻击与归档项目(.gar文件)一起使用。
本周,腾讯安全研究人员表示,他们发现攻击者可以将漏洞利用漏洞,滥用Java功能以及利用Windows 中的NTLM协议中已知的弱点来执行SMB中继攻击,从而窃取用户的哈希值。 据腾讯称,有了这个,对手最终可能会在使用Ghidra工具的人的计算机上执行远程代码执行。
“当使用Java内置类sun.net.www.protocol.http.HttpURLConnection发送HTTP请求时,它将在[它]遇到401状态代码时自动确定身份验证方法,”他们在周一发布的简短细分中说。 “如果[身份验证]方法是NTLM,它将使用当前用户凭据自动进行身份验证。 根本原因是,Windows上的Java默认启用透明的NTLM身份验证,并将所有URL视为可信任。“
在腾讯的概念验证攻击中 ,为了攻击Ghidra用户,攻击者首先会在自己的机器上执行一个脚本,该脚本将在端口80上提供HTTP请求。然后,他们将创建一个新的Ghidra项目,编辑项目文件“ project.prp“ 插入一个XXE漏洞 。
虽然团队没有发布许多细节,但他们说“当受害者使用Ghidra打开这个恶意项目时,攻击者可以从受害者的机器上获取NTLM哈希,因此在受害者的机器上执行任意命令。”
为了缓解,用户可以将Windows防火墙设置为阻止传入的SMB请求; 如果需要SMB服务器,则可以启用SMB Sign。 用户还应升级到最新版本的Java Development Kit。
此外,一位NSA开发人员迅速回复了@ sghctoma的Github帖子,称解决这个问题将是“一个非常简单的配置修复”。
“我制作工厂方法来创建正确配置的SAXParsers和SAXBuilders,并重构所有内容以使用它们,”开发人员说 - 在结束问题之前。
Threatpost与@sghctoma联系以确认该bug已被解决。 研究人员告诉我们“该修复程序是9.0.1版本的一部分,该版本尚未公开。 该漏洞存在于软件如何解析XML(不仅仅是项目,而是工具等),而不是项目本身。 因此,无论何时,或者以什么版本创建项目都无关紧要。“
不要错过我们的免费实时 Threatpost网络研讨会 ,“探索HackerOne和GitHub的15大常见漏洞”,于3月20日星期三,美国东部时间下午2点。
漏洞专家Michiel Prins是网络研讨会赞助商HackerOne的联合创始人,GitHub的应用程序安全工程经理Greg Ose将加入Threatpost编辑Tom Spring,讨论当今软件中最常见的漏洞类型,以及它们对于什么样的影响。组织如果被利用。