CVE-2022-26134 - OGNL 注入漏洞。
利用影响 Atlassian Confluence 7.18 及更低版本产品的远程代码执行漏洞的脚本概念验证。OGNL 注入漏洞允许未经身份验证的用户在 Confluence 服务器或数据中心实例上执行任意代码。
受影响的版本
所有受支持的 Confluence Server 和 Data Center 版本都会受到影响。
Confluence Server 和 Data Center 1.3.0 之后的版本和 7.18.1 以下的版本会受到影响。
该漏洞的 CVSS 得分为 10 分(满分 10 分)的严重性。
依赖项:
Python 3.3+
可以通过 pip install -r requirements.txt 满足依赖关系
如何使用:
克隆仓库
git clone https://github.com/Nwqda/CVE-2022-26134
cd CVE-2022-26134
然后,您可以使用您选择的命令运行漏洞利用程序,如下所示:
python3 cve-2022-26134.py https://target.com CMD
python3 cve-2022-26134.py https://target.com id
python3 cve-2022-26134.py https://target.com "ps aux"
视频概念证明
脚本 PoC CVE-2022-26134
在过去的两个月里,Guardicore Labs 团队一直在密切关注一场以中国为基地的活动,该活动旨在感染全球的 Windows MS-SQL 和 phpMyAdmin 服务器。我们深入研究了该活动的内部运作——使用的工具、利用的漏洞以及造成的损害程度。
被破坏的机器包括属于医疗保健、电信、媒体和 IT 部门的公司的 50,000 多台服务器。一旦受到攻击,目标服务器就会被恶意负载感染。反过来,它们删除了一个加密矿工并安装了一个复杂的内核模式 rootkit,以防止恶意软件被终止。
Guardicore Labs 在整个活动期间见证了 20 个不同有效载荷版本的发布和部署。我们联系了攻击服务器的托管服务提供商以及 rootkit 证书的颁发者。结果,攻击服务器被关闭,证书被吊销。
Nansh0u 活动不是 典型的加密矿工攻击。它使用在 APT 中常见的技术,例如伪造证书和特权提升漏洞。虽然高级攻击工具通常是高技能对手的财产,但这次活动表明,这些工具现在很容易落入非一流攻击者的手中。
在这篇文章中,我们详细描述了这些攻击,并 为该活动 提供了一个完整的IoC 存储库,包括一个 用于检测受感染机器的脚本。
从异常事件到全面调查
4 月初,在 Guardicore 全球传感器网络 (GGSN) 中检测到的三起攻击引起了我们的注意。这三个都具有源自南非并由 VolumeDrive ISP 托管的源 IP 地址(请参阅 IoC)。这些事件共享相同的攻击过程,专注于相同的服务,使用相同的破坏方法和攻击后步骤。
寻找更多具有类似模式的攻击,我们发现可追溯到 2 月 26 日的攻击,每天有超过 700 名新受害者。在我们的调查中,我们发现了 20 个版本的恶意负载,新负载每周至少创建一次,并在创建后立即使用。
图 1:有效负载创建时间线
该时间线与一组五台攻击服务器和六台连接服务器相结合,表明了攻击者深思熟虑的持续发展的既定过程。
通过访问攻击者的基础设施,我们能够监控相关的文件服务器并深入了解活动的规模和范围。下图显示了成功感染的机器数量如何在一个月的时间内翻了一番。
图 2:来自攻击者文件服务器的下载总数。一个月内,点击次数翻了一番。
攻击概述:MS-SQL 命令执行
每次攻击都始于对 MS-SQL 服务器的一系列身份验证尝试,最终导致使用管理权限成功登录。
图 3:在 Guardicore 的全球传感器网络 (GGSN) 中看到的成功登录
然后,执行一系列 MS-SQL 命令以完成以下操作(括号中的数字表示相关的代码行):
配置服务器设置以允许“流畅”且无错误的攻击流程 [1];
在c:\ProgramData\2.vbs [2]中创建一个 Visual-Basic 脚本文件 ;
执行此脚本并通过 HTTP [3] 将两个文件下载到 c:\ProgramData;和
在一个命令行中运行这两个文件 [4]。
攻击基础设施
攻击者的服务器都在运行 HFS ——HTTP 文件服务器——提供不同类型的文件。一个文本文件包含字符串 Nansh0u,我们以此为基础的活动名称。
攻击者的基础设施包含对 MS-SQL 服务器进行成功的端到端攻击所需的所有模块:
端口扫描仪
MS-SQL 暴力破解工具
远程代码执行器
图 4:Nansh0u 活动的攻击流程
端口扫描器 – 查找 MS-SQL 服务器
攻击者使用的端口扫描器自 2014 年以来就为人所知。我们的攻击者使用它通过扫描 IP 地址并检查典型的 MS-SQL 端口是否打开来检测 MS-SQL 服务器。然后将扫描结果馈送到蛮力模块。
图 5:端口列表和端口扫描程序的日志文件。攻击者的日志显示可以追溯到 3 月初的扫描。
蛮力工具 - 妥协受害者
该工具尝试使用数以万计的通用凭据登录到每个 MS-SQL 服务器。一旦认证成功——服务器的地址、用户名和密码被保存到一个文件中以备将来使用。
图 6:Guardicore Centra 和攻击者字典中的匹配凭证
攻击者使用的常用凭证字典可以在活动的 IoC 存储库中找到。
代码执行模块——感染时间
通过运行端口扫描器和暴力破解工具,攻击者获得了被破坏服务器的列表——IP 地址、端口、用户名和密码。下一步是登录受害者并感染机器。
在 HFS 上,在一个名为 chuan (感染的 中文 )的文件夹中, 我们发现了两个有趣的组件。第一个是名为 Mssql.log的脚本。脚本的命令正是我们在触发我们研究的事件中看到的命令。
第二个文件是一个名为 Usp10.exe的可执行文件。该程序接收服务器的地址和凭据以及 Mssql.log的内容。它的功能很简单:它登录到被破坏的服务器并执行 Mssql.log 脚本,继续在受害者端进行攻击。
Usp10.exe 是负责 在 MS-SQL 受害者上编写和执行下载脚本(2.vbs)的攻击模块。一旦 MS-SQL 脚本在受害者机器上运行完毕,恶意负载就会被执行。
漏洞利用和有效负载:在受害者机器上执行的文件
在我们看到的作为该活动一部分的所有攻击中,攻击者执行了一个带有两个可执行文件的命令行:
此命令执行权限提升漏洞利用,以 SYSTEM 权限运行恶意负载。攻击者的武器库中有两个版本的 PE 漏洞利用程序, apexp.exe 和 apexp2012.exe,以及许多有效负载版本(参见 图 1 和 IoC 的 完整列表)。
权限提升漏洞
apexp.exe 和 apexp2012.exe 是对已知权限提升漏洞 ( CVE-2014-4113 ) 的两个利用。将任何程序传递给这些可执行文件都将以 SYSTEM 权限运行它。
apexp.exe 被称为 Apolmy 漏洞利用,它影响 Windows 的桌面和服务器版本(分别为 XP 到 8.1 和 2003 到 2012 R2)。这是一个带有生产级代码的武器化漏洞利用。另一方面, apexp2012.exe更像是一个概念验证而不是一个可操作的漏洞,并且旨在在 Windows 8.1 上运行。我们发现后者可以在一个 看似用作黑客社区平台的中文论坛上下载。
虽然两个版本都使用相同的漏洞,但它们执行内核模式代码的目的不同。Apolmy 版本将 SYSTEM 进程访问令牌复制到它自己的进程。使用该令牌,利用进程运行有效负载并完全控制受害机器。
第二个版本使用了 Cesar Cerrudo 推广的方法。在这里,漏洞利用将 SeDebugPrivilege添加 到令牌中。使用此 Windows 权限,攻击利用将代码注入 winlogon 进程。注入的代码创建了一个新进程,该进程继承了 winlogon的 SYSTEM 权限,提供与之前版本相同的权限。
有效负载:Rootkit 和矿工的 Droppers
我们从攻击者的服务器和 Guardicore 全球传感器网络 (GGSN) 收集了 20 个有效载荷样本。每个有效载荷实际上都是一个包装器,并具有以下几个功能:
执行加密货币矿工;
通过编写注册表运行键创建持久性;
使用内核模式 rootkit 保护矿工进程免于终止;
使用安全狗制确保矿工持续执行。
有效负载产生两个进程之一 ——dllhot.exe 或 canlang.exe,具体取决于有效负载——它们 为四个不同的矿池挖掘名为TurtleCoin的隐私加密货币。
内核模式驱动程序
许多有效负载都丢弃了内核模式驱动程序,随机命名并放置在 AppData/Local/Temp中。它的编译时间表明它是在 2016 年创建的。然而,大多数 AV 引擎并未将驱动程序文件检测为恶意文件。
我们发现该驱动程序具有由顶级证书颁发机构 Verisign颁发的数字签名。证书已过期,上面写着一家假的中国公司—— 杭州和天网络科技。Guardicore Labs 已联系 Verisign 并向他们提供相关详细信息,从而导致证书被吊销。
图 7:威瑞信签发的司机数字签名
为什么签名驱动程序异常?
内核模式驱动程序是在操作系统内核中运行的可执行文件。因此,他们拥有对敏感数据结构和资源的高权限访问。
从 Windows 10 和 Windows Server 2016 开始,微软只允许微软签名的驱动程序在内核模式下运行。要获得这样的签名,开发人员必须向 Microsoft 提供他们的驱动程序版本并通过大量测试。
恶意驱动程序被签名的机会非常低。
如果司机没有被打包和混淆,这将不那么尴尬。与许多其他恶意驱动程序不同,该驱动程序受到 VMProtect 的保护和混淆,VMProtect 是一种试图挫败逆向工程师和恶意软件研究人员的软件工具。
驱动程序旨在保护进程并防止用户终止它们。它创建一个名为 SA6482的设备,允许进程与之通信。设备接收意味着受保护的进程 ID (PID)——在我们的例子中是矿工 PID。
驱动程序通过在 Process 和 Thread 对象类型上注册回调来保护进程。每次访问受保护进程或其任何线程时都会触发这些回调,并允许驱动程序修改每次访问尝试中给出的访问权限。
驱动程序本身包含额外的 rootkit 功能,例如与物理硬件设备通信和修改此特定恶意软件未使用的内部 Windows 进程对象。