不断产生的恶意代码变种,“与上次那家伙不一样”
通过伪装成商业软件(例如CryptBot恶意代码)来诱导下载的恶意代码正在生成和积极地传播大大小小的变种。CryptBot恶意代码从现有的7z SFX更改为MS IExpress外观,并应用了一种技巧,使其无法以通常的方式解压缩。
本文介绍了CryptBot恶意代码的外观变化。

现有的CryptBot恶意代码使用了7z
SFX的方式进行传播。是在执行时将内部文件释放到Temp路径下创建的目录后执行BAT脚本文件的结构。此外,最近的样品已采用改进的打包方式进行传播。
新更改的打包方式是MS
IExpress方式。这是通过Windows操作系统默认安装的可执行压缩包制作工具来构建的文件。

【图1】Windows内置IExpress构建器
在默认情况下,对于使用IExpress构建的文件,其文件内部RCData资源的CABINET文件会被解压并释放,然后在制作时可以根据设置执行特定的文件或者命令。

【图2】IExpress文件内部资源
CyrptBot恶意代码对其打包方法应用了一个简单的技巧,以防止使用通常的方式解压缩其内部文件。该代码实现了与之前7z SFX方式中无法通过压缩工具解压内部文件的相同功能。
如果查看当前正在传播中的CryptBot样本的内部CAB文件,可以看到在文件特征码后插入了垃圾值,如【图3】所示。

【图3】正常文件和CryptBot内部CAB文件对比
如果该位置存在NULL以外的值,压缩工具不会将该文件识别为CAB文件,因此无法解压。

【图4】正常文件和CryptBot内部CAB文件对比(未压缩时)
但是对于Windows内置工具,由于没有检查相关部分,使得可以正常解压,所以在执行上没有问题。推测使用这些技巧是为了干扰分析并绕过防病毒软件的压缩文件检查功能。
之后的运行与现有的CryptBot相同。当在释放文件中执行BAT文件时,会创建一个Autoit二进制文件并执行经过代码混淆的Autoit脚本。该脚本在解密加密的CryptBot恶意代码二进制文件后,将其注入内存并执行。
使用和CryptBot相同的方式传播的NSIS病毒释放器恶意代码最近也产生了值得注意的变种。该恶意代码的结构是一个在NSIS 安装程序内部的7z SFX文件释放大量的恶意代码和执行它们的加载程序(Loader、Aspack打包)后执行的结构。

【图5】现有NSIS病毒释放器恶意代码的结构
近期变种的样品,其加载器的外观更改为使用MingW构建的包装,并且7z SFX不再释放恶意代码文件,而是改为将恶意代码文件插入到加载器内部“数据(Data)”段的方式。
加载器运行时,将其数据段中的执行文件(PE)更改为随机文件名并释放后运行。也就是说,加载器也扮演了病毒释放器的角色。因此,使用一般的工具已无法确认出内部的恶意代码文件,这也被认为是为了绕过防病毒软件的压缩文件诊断功能。在运行所有释放出的恶意代码后,加载器将相关信息发送到攻击者的服务器(C2)。

【图6】变种的NSIS病毒释放器恶意代码的加载器结构
作为参考,8月15日上午,已确认该恶意代码的运行方式发生了改变。与之前类似,由于顶级7z SFX释放恶意代码,但文件扩展名是未篡改的exe格式。释放时,将根据样本创建日期在文件名中指定文件名格式,如【图7】所示。

【图7】8月15日变种的释放文件结构
如上所述,攻击者正在通过变种方式来积极传播恶意代码,因此用户应格外注意。请参阅相关的ASEC博客文章,并注意在网上冲浪时以下载文件为目的的恶意代码传播网页。此外,下载软件时,建议从官方分发站点进行下载。