千家信息网

Winnti黑客组织MSSQL后门的示例分析

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,这篇文章主要为大家展示了"Winnti黑客组织MSSQL后门的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Winnti黑客组织MSSQL后门的示
千家信息网最后更新 2024年11月24日Winnti黑客组织MSSQL后门的示例分析

这篇文章主要为大家展示了"Winnti黑客组织MSSQL后门的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Winnti黑客组织MSSQL后门的示例分析"这篇文章吧。

一段时间以来,ESET的研究人员一直在跟踪Winnti的活动,该组织从2012年起就开始活跃,并针对视频游戏和软件行业供应链进行攻击。最近,发现了一个以前未经记录的后门,其目标是Microsoft SQL(MSSQL)。这个后门与PortReuse后门有多处相似之处,PortReuse是Winnti Group使用的另一个工具,于2019年10月首次记录。

今年检测到了一个新后门的样本,skip-2.0,作者是winnti组织成员。这个后门程序以MSSQL服务器11和12为目标,攻击者可以使用magic密码连接到任何MSSQL帐户,同时自动将这些连接隐藏在日志中。后门允许攻击者复制、修改或删除数据库内容,可以用来操纵游戏中的货币以获取经济利益。据了解,skip-2.0是第一个公开记录的mssql服务器后门。

本文将重点介绍mssql服务器后门的技术细节和功能,以及skip.2-0与winnti已知武器库(特别是portreuse后门和shadowpad)的技术相似性。

vmprotected启动程序

我们在查找vmprotected启动程序时找到了skip-2.0,其有效负载通常是portreuse或shadowpad。

嵌入式有效载荷

与加密的portreuse和shadowpad有效负载一样,skip-2.0嵌入到vmprotected启动程序中,如图1所示:

加密

有效负载加密与其他vmprotected启动程序中使用的相同。它是RC5加密的,密钥来自volumeID和字符串f@ukd!RCTO R$。

持久性

与portreuse和shadowpad的一样,启动程序可能会通过利用dll劫持而持续存在,方法是将其安装在c:\windows\system32\tsvipsrv.dll。这将导致标准Windows SessionEnv服务在系统启动时加载DLL。

打包器

一旦解密,嵌入的有效负载实际上是winnti group的自定义打包程序。这个打包器与我们在白皮书中记录的代码是相同的。它被用来打包portreuse后门以及嵌入在受损视频游戏中的负载。

配置

打包程序配置包含打包二进制文件的解密密钥及其原始文件名、大小和执行类型(exe或dll)。有效载荷配置如表1所示。

打包器配置可以看出,有效负载称为内部装载器。内部加载程序是一个注入器的名称,它是winnti集团的武库的一部分,用于将portreuse后门注入监听特定端口的进程。

内部加载器

这是一种内部加载程序的变体,不是像注入portreuse后门时那样寻找监听特定端口的进程,而是寻找名为sqlserv.exe的进程,这是mssql server的常规进程名。如果找到,则内部加载程序会将有效负载注入此进程。此有效负载还与自定义打包程序打包在一起,该有效负载的打包程序配置如表2所示。

此注入负载的原始文件名为skip-2.0.dll。

skip-2.0

在被内部加载程序注入并启动之后,skip-2.0首先检查它是否在sqlserv.exe进程中执行,如果是,则检索sqllang.dll的句柄,该句柄由sqlserv.exe加载。然后继续从该dll中查找并挂接多个函数。图2描述了skip-2.0的运行过程。

Hooking sqllang.dll

skip-2.0使用的hook过程与netagent非常相似,netagent是负责安装网络hook的portreuse模块。这个hook库基于distorm开源反汇编程序,该反汇编程序由多个开源挂接框架使用。需要一个反汇编库来正确计算要hook的指令的大小。在下图中可以看到,NetAgent和Skip-2.0使用的hook过程几乎相同。

图3Hex-Rays output comparison between the NetAgent (left) and skip-2.0 (right) hooking procedures

有一个显著的区别就是skip-2.0中的hooking函数将要安装的钩子的地址作为参数,而对于netagent,要安装的钩子的地址是硬编码的。这是因为skip-2.0必须hooksqllang.dll中的多个函数才能正常运行,而netagent只针对一个函数。

要定位hook的每个sqllang.dll函数,skip-2.0首先通过解析pe头来检索加载到内存中的dll的大小(即其虚拟大小)。然后初始化sqllang.dll中要匹配的字节数组,如图4所示。一旦找到与字节数组匹配的第一个匹配项的地址,就会使用图3所示的过程安装钩子。

然后,钩子安装成功后会在cleartext中记录,该文件位于硬编码路径c:\ windows\temp\ts\u 2ce1.tmp中,如图5所示。

如果找不到目标函数,钩子安装程序将搜索具有不同字节模式集的回退函数。

通过匹配字节序列来定位目标函数的地址,而不是使用静态偏移量,再加上使用字节的回退序列,skip-2.0可以更灵活地适应mssql更新,并可针对多个sqllang.dll更新。

密码控制

skip-2.0的目标函数与身份验证和事件日志记录相关。目标功能包括:

CPwdPolicyManager::ValidatePwdForLoginCSECAuthenticate::AuthenticateLoginIdentityReportLoginSuccessIssueLoginSuccessReportFExecuteLogonTriggersXeSqlPkg::sql_statement_completed::PublishXeSqlPkg::sql_batch_completed::PublishSecAuditPkg::audit_event::PublishXeSqlPkg::login::PublishXeSqlPkg::ual_instrument_called::Publish

其中最有趣的函数是第一个函数(cpwdpolicymanager::validatepwdforlogin),它负责验证为给定用户提供的密码。

此函数的钩子检查用户提供的密码是否与magic密码匹配;如果是,则不会调用原始函数,钩子将返回0,从而允许连接。然后设置一个全局标志,该标志将由负责事件日志记录的其他hook函数进行检查。相应的反编译过程如图6所示。在设置此全局标志的情况下,hook的日志记录函数将静默返回,而不调用其对应的原始函数,因此不会记录操作。

如果使用magic密码登录,reportloginsaccess和issueloginsuccessreport挂钩将不会调用原始函数。同样的行为也适用于feexecutelogontriggers。其他日志记录功能,如xesqlpkg::sql_completed::publish或xesqlpkg::sql_batch_completed::publish,在用户使用魔法密码登录的情况下也将被禁用。还禁用了多个审核事件,包括secauditpkg::audit_event::publish、xesqlpkg::login::publish和xesqlpkg::uau instrument_called::publish。

这一系列hook不仅允许攻击者通过特殊密码在受害者的mssql服务器中获得持久控制,而且使用该密码时禁用了多个日志,因此无法检测到攻击者。

研究人员对多个MSSQL Server版本测试了Skip-2.0,发现能够使用MSSQL Server 11和12的密码成功登录。为了检查skip-2.0是否针对特定的sqllang.dll版本,创建了一个yara规则,该规则可以在github库中找到。

与Winnti的联系

skip-2.0和来自winnti的其他工具有很多相似之处。vmprotected启动程序、自定义打包程序、内部加载程序和hook框架是winnti工具集的一部分。

以上是"Winnti黑客组织MSSQL后门的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

程序 函数 后门 有效 密码 多个 钩子 日志 目标 进程 原始 字节 过程 攻击 服务 配置 相似 内容 地址 大小 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发常用的两种方法是 网络安全设置级别太高 软件开发可能涉及的问题 js显示不了隐藏数据库 最简单的中职网络技术教材 视频中提到了哪些网络技术 我的世界手机端怎么做服务器 数据库改了某个字段还能回滚吗 阿里云服务器可以预存资金吗 网络安全案件种类 为什么网址找不到服务器 微信小程序数据库异步查询 计算机网络技术的学费多少 手机端java服务器 画图软件开发工资 服务器不支持安全连接 认知中心数据库制度 新天下无双连接服务器超时 网易我的世界模组导入服务器 即墨区app定制软件开发哪家好 网络安全等级测评牌照申请 最简单的中职网络技术教材 饥荒专用服务器搭建 我的世界手机端怎么做服务器 服务器上面怎么有设备和驱动器 网络安全主动战 信息网络安全名言 邯郸地图软件开发 网络安全和信息化 贯彻意见 新浪高考数据库
0