欢迎访问Sunbet,Sunbet是欧博Allbet的官方网站!

首页Sunbet_安全防护正文

skip-2.0:Winnti构造运用的新型Microsoft SQL Server后门

b9e08c31ae1faa592019-11-0717Web安全

申博官网

申博官网致力打造完美娱乐平台,为客户提供精彩绝伦的娱乐体验,各种娱乐方式让您大开眼界。申博官网等着你!
, Winnti是一个从2009年起一向活泼至今的黑客构造,其重要进击目的是收集游戏行业,盗取由正当软件供应商签发的数字证书和知识产权内容,包括在线游戏项目的源代码。获得源代码后再放到中国黑市举行兜销,或是直接用到这些源代码制造山寨游戏来以此赢利。2015年最先,Winnti构造的进击目的已不再仅限于收集游戏公司,还包括电信和大型制药公司。 而近来,ESET的研究人员发明了Winnti构造之前未公然的一个后门顺序——skip-2.0,重要针对MSSQL Server 11/12,能让进击者经由历程把戏暗码隐秘衔接到任何MSSQL帐户,还能自动从日记中隐蔽这些衔接,从而让进击者悄然复制、修正或删除数据库的内容,比方支配游戏币来猎取经济利益,而Winnti支配游戏币的行动也不是什么新鲜事了。 据我们所知,skip-2.0是第一个公然纪录的MSSQL Server后门。虽然MSSQL Server 11和12不是其最新版本(离别于2012年和2014年宣布),但依据Censys的数据,它们照样当前最经常运用的版本。 skip-2.0与Winnti构造运用的另一个东西——PortReuse后门有许多相似之处,后者在2019年10月被检测到,它们都运用雷同的自定义封装器和VMProtected启动器,这也是把该后门归于Winnti的缘由之一。 本文将重点引见skip-2.0的手艺细节和功用,以及它与Winnti Group的已知东西(PortReuse后门、ShadowPad)手艺上的相似之处。 VMProtected启动器 Winnti构造所运用的VMProtected启动器,其payload通常是PortReuse或ShadowPad,而此次研究人员发明的新样本则是skip-2.0。 嵌入的payload 与PortReuse和ShadowPad一样,skip-2.0嵌入在VMProtected启动器的Overlay中,如图1所示:

 skip-2.0:Winnti构造运用的新型Microsoft SQL Server后门  Web安全 第1张

图1.VMProtected启动器的头,payload嵌入在PE Overlay中

加密 Payload的加密程式则和之前的一样,都用rc5加密,密钥来自于VolumeID和字符串“ [email protected]!rCto R$”。 持久性 PortReuse和ShadowPad的持久性机制可以依靠的是应用DLL挟制破绽,破绽装置在C:\Windows\System32\ TSVIPSrv.DLL,这将致使在体系启动时由规范的Windows SessionEnv效劳加载DLL。 Winnti构造的定制封装器 嵌入的payload实际上是Winnti构造的自定义封装器,用于封装PortReuse后门以及损坏视频游戏的payload。 封装器设置

封装器包括二进制文件的解密密钥及其原始文件名、大小和实行范例(EXE或DLL)。Payload的封装器设置如表1所示。 

skip-2.0:Winnti构造运用的新型Microsoft SQL Server后门  Web安全 第2张

表1.payload的封装顺序设置

从设置中可以看到,payload被称为Inner-Loader,Inner-Loader是Winnti 构造所运用的一个注入器,用于将PortReuse后门注入到侦听特定端口的历程中。此样本的所运用的应该是另一个变体。 Inner-Loader注入器 此版本的Inner-Loader不再寻觅在特定端口上侦听的历程,而是寻觅一个名为sqlserv.exe的历程,这是MSSQL Server的通例历程称号。假如找到,Inner-Loader会将payload注入,表2中显现了该payload的封装器设置。

 skip-2.0:Winnti构造运用的新型Microsoft SQL Server后门  Web安全 第3张

表2.内置于Inner-Loader中的payload的封装器设置

而注入的payload的原始文件名是skip-2.0.dll。 skip-2.0 在由Inner-Loader注入并启动后,skip-2.0起首搜检它是不是在sqlserv.exe历程中实行,假如是,则检索sqllang.dll的句柄,该句柄由sqlserv.exe加载,然后继承从sqllang.dll中查找并挂钩多个函数。图2形貌了skip-2.0的实行历程。

 skip-2.0:Winnti构造运用的新型Microsoft SQL Server后门  Web安全 第4张

图2. skip-2.0的实行历程

挂接sqllang.dll
网络攻击集中在3个TCP端口 中小型企业可以通过保护攻击者最常攻击的端口来保护企业免受部分网络攻击的威胁。在超过13000个网络攻击的目标中,有3个端口非常突出。 情报和防护公司Alert Logic的报告中枚举了针对其客户端4000个网络攻击中的弱点。 攻击最多的TCP端口 该报告指出,最常被攻击的3个端口是22,80和443,对应着SSH(Secure Shell)、HTTP和HTTPS服务。 Alert Logic称这3个端口出现在65%的攻击活动中,这些端口要开放来进行通信,但是要确保是安全的或是明文。 排名第4的是RDP协议,RDP协议是用

skip-2.0运用的挂接历程与NetAgent所用的相似,NetAgent是PortReuse中担任装置收集钩子的模块,该挂钩库基于distorm开源反汇编顺序,被多个开源挂钩框架运用。在图3中可以看到,NetAgent和skip-2.0运用的挂接历程险些雷同。

有一个明显的区别是,skip-2.0的钩子函数将要装置的钩子的地点作为参数,而关于NetAgent,要装置的钩子的地点是硬编码的。这是因为skip-2.0必需挂钩sqllang.dll中的多个函数才一般运转,而NetAgent仅针对单个函数。 为了找到要挂接的每一个sqllang.dll函数,skip-2.0起首经由历程剖析其PE标头来检索加载到内存中的DLL的大小(即其假造大小)。然后在sqllang.dll中初始化一个字节数组,如图4所示。一旦找到婚配字节数组的第一个婚配项的地点,就运用图3所示的历程装置钩子。

钩子装置胜利后以明文情势纪录在位于硬编码途径C:\Windows\Temp\TS_2CE1.tmp 的日记文件中,如图5所示。   假如找不到目的函数,则钩子装置顺序将运用一组差别的字节形式搜刮回退函数。 经由历程婚配一个字节序列来定位目的函数的地点,而不是运用静态偏移量,再加上运用回退的字节序列,使得skip-2.0对MSSQL更新更有弹性,而且可以针对多个sqllang.dll更新。 破解一切,只需一个暗码 skip-2.0的目的函数与身份考证和事宜纪录有关。目的函数包括: · CPwdPolicyManager::ValidatePwdForLogin · CSECAuthenticate::AuthenticateLoginIdentity · ReportLoginSuccess · IssueLoginSuccessReport · FExecuteLogonTriggers · XeSqlPkg::sql_statement_completed::Publish · XeSqlPkg::sql_batch_completed::Publish · SecAuditPkg::audit_event::Publish · XeSqlPkg::login::Publish · XeSqlPkg::ual_instrument_called::Publish 最风趣的函数是第一个(CPwdPolicyManager :: ValidatePwdForLogin),它担任考证为给定用户供应的暗码。该函数的钩子搜检用户供应的暗码是不是与把戏暗码婚配,在这类情况下,原始函数将不会被挪用,钩子将返回0,纵然未供应准确的暗码也许可衔接。然后设置一个全局标志,其他担任事宜纪录的钩子函数举行搜检志。响应的反编译历程如图6所示。在设置了此全局标志的情况下,钩子的日记纪录函数将不挪用响应的原始函数而自动返回,因而不会纪录操纵。假如供应了差别的暗码,则会挪用原始函数。

 skip-2.0:Winnti构造运用的新型Microsoft SQL Server后门  Web安全 第5张

图6.用于婚配登录时供应的暗码与硬编码字符串的历程的Hex-Rays输出

ESET之前发明的SSH后门也运用了相似的基于硬编码暗码的回溯手艺。这里的差别之处在于,skip-2.0装置在内存中,而关于SSH后门,则在实行之前修正了sshd可实行文件。 别的,CSECAuthenticate::AuthenticateLoginIdentity将在其钩子代码中挪用,然则钩子将一直返回0。假如运用了把戏暗码登录,则ReportLoginSucess和IssueLoginSuccessReport挂钩将不会挪用原始函数。雷同的行动应用于FEExecuteLogonTriggers 。假如用户运用把戏暗码登录,则其他日记纪录功用(比方XeSqlPkg :: sql_statement_completed :: Publish或XeSqlPkg :: sql_batch_completed :: Publish也将被禁用)。多个考核事宜也被禁用,包括SecAuditPkg :: audit_event :: Publish,XeSqlPkg :: login :: Publish和XeSqlPkg :: ual_instrument_称为:: Publish。 这一系列的钩子使进击者不仅可以经由历程运用特别暗码来猎取受害者的MSSQL Server的持久性,而且因为在运用该暗码时禁用了多个日记和事宜宣布机制,所以进击者依然没法检测到。 我们针对多个MSSQL Server版本测试了skip-2.0,发明我们可以运用特别暗码经由历程MSSQL Server 11和12胜利登录。要搜检skip-2.0是不是针对特定的sqllang.dll版本(即,是不是婚配字节形式),我们创建了一个YARA划定规矩,该划定规矩可以在我们的GitHub存储库中找到。 与Winnti的联络 skip-2.0与Winnti构造运用的其他东西之间存在多个相似之处,其VMProtected启动器、自定义封装器、Inner-Loader注入器和挂钩框架都是Winnti武器库中见过的,因而我们以为skip-2.0也属于Winnti作品。 结论 skip-2.0后门能让进击者在MSSQL效劳器上完成持久性,这点之前是从未发明过的。我们将继承看管Winnti构造的新动态,并实时宣布相干信息。 本文翻译自:https://www.welivesecurity.com/2019/10/21/winnti-group-skip2-0-microsoft-sql-server-backdoor/

网友评论