欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Winnti组织恶意行为分析

来源:本站整理 作者:佚名 时间:2020-02-13 TAG: 我要投稿

在2019年11月发现Winnti发起对两个香港大学的网络攻击。发现隶属于该组织的后门变种,其中嵌入了许多功能模块。
Winnti Group至少从2012年起开始活动,主要针对视频游戏和软件行业的供应链进行攻击,利用木马软件(如CCleaner、华硕LiveUpdate和多个视频游戏)攻击目标。它还以在医疗和教育部门的攻击而闻名。
香港几所大学发现ShadowPad
在2019年11月检测到一个恶意样本存在于两所香港大学多个计算机中,可疑样本实际上是一个32位shadowpad launcher。在这些大学发现的ShadowPad和Winnti的样本包含攻击活动标识符和带有大学名称的C&C,这表示这是有针对性的攻击。除了这两所大学,从攻击者使用的C&C格式可以得知至少还有三个香港大学可能已被植入相同的ShadowPad和WiNTI。
启动程序
与在Winnti武库白皮书中记录的ShadowPad不同,该启动程序并没有使用VMProtect进行混淆,加密的有效载荷既不嵌入在overlay中,也不位于COM1:NULL.dat备用数据流中,而且没有使用RC5加密,密钥来自受害者机器驱动器的卷ID。在这种情况下,发射器要简单得多。
DLL加载
启动程序是一个名为hpqhvsei.DLL的32位DLL,此可执行文件来自HP,通常与打印和扫描软件一起安装,称为“HP Digital Imaging”。在本例中,合法的hpqhvind.exe和恶意的hpqhvsei.dll一起被攻击者从C:\ Windows\Temp中删除,启动程序的初始执行是通过DLL端加载完成的。
在hpqhwind.exe启动加载恶意DLL时,将调用其DLLMain函数,该函数在偏移量0x10BA处检查其父进程的以下字节序列:
85 C0 ; test eax, eax
0F 84 ; jz
如果父进程是hpqhwind.exe,恶意DLL将patch内存中的父进程。跳转指令(jmp–0xE9)替换0x10BA处的原始指令,该跳转解密并执行启动程序中的有效负载。
负责patch父进程的函数如图1所示。如果hpqhvsei.dll由与hpqhvind.exe不同的进程加载,则不会解密和执行恶意代码。

原始的和patch的hpqhwind.exe之间的区别如图2所示。

patch位于hpqhwind.exe主函数的最开始处。如图2所示,patch代码位于加载hpqhvsei.dll之后,负责解密和执行负载的函数在加载恶意DLL之后直接执行。
有效载荷解密
加密的有效负载位于hpqhvsei.dll的.rdata部分,解密算法是一个异或循环,密钥在每次迭代时都会更新,如图3所示。

持久控制
解密后,将执行ShadowPad。首先通过将内存中已patch的父进程写入string pool配置中指定的路径来实现系统上的持久控制。在检测的样本中,路径是C:\ ProgramData\DRM\CLR\CLR.exe。然后创建一个名为clr_optimization_v4.0.30229_32的服务,该服务负责执行clr.exe。
整个过程如图4所示。每个箭头上的编号对应于事件的时间顺序。

模块
ShadowPad是一个多模式后门,可以从中提取模块地址、UNIX时间戳(可能在模块编译过程中自动嵌入)和模块标识符。还可以从模块名称。下表中列出17个模块:


这些模块中RecentFiles,已经被Kaspersky和Avast提到过。所有的模块时间戳都分布在一个较短的时间范围内,表明研发人员使用构建框架来编译这些模块,这些模块是在启动程序之前几个小时构建的,其编译时间戳是2019年10月24日星期四14:10:32。
嵌入到这个变体中的模块数量(17个)比之前在白皮书中记录的模块数量(8到10个模块)要多。默认情况下,每个击键都使用键盘记录模块(306)记录,并保存到文件%APPDATA%\PAGM\OEY\XWWEYG\WAOUE中的磁盘。日志文件使用与加密静态字符串相同的算法进行加密。默认情况下使用此模块从受害者的计算机中窃取信息。相比之下,白皮书中描述的变体甚至没有嵌入该模块。
配置
与之前的ShadowPad变体一样,配置模块(102)包含一个加密的字符串池,可以从任何其他模块访问。配置大小为2180字节,加密字符串位于偏移量0×84处。用于解密字符串的算法与用于解密静态字符串的算法相同。字符串池的解密内容如下:
0×84: 2019/11/7 16:28:36
0×99: CAMPAIGN_ID_REDACTED
0xa1: %ALLUSERSPROFILE%\DRM\CLR\CLR.exe
0xc5: clr_optimization_v4.0.30229_32
oxe6: clr_optimization_v4.0.30229_32
0×107: clr_optimization_v4.0.30229_32
0×128: SOFTWARE\Microsoft\Windows\CurrentVersion\Run
0×158: CLR
0x15e: %ProgramFiles%\Windows Media Player\wmplayer.exe
0×197: %windir%\system32\svchost.exe
0x1b7: TCP://b[redacted].dnslookup.services:443
0x1db: UDP://b[redacted].dnslookup.services:443
0×202: SOCKS4
0x21e: SOCKS5
活动ID位于偏移量0×99处,是目标大学的名称。此配置中偏移量0×84处的时间戳晚于模块的时间戳和加载程序编译时间戳,表明此配置是在生成后手动添加的。配置中的日期与在相应大学首次检测到该样本的日期相对应。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载