一.概述
最近,tinder安全团队截获了一批蠕虫。这些病毒通过u盘、移动硬盘、网络驱动器等移动媒体传播。入侵电脑后,他们会远程下载各种病毒模块牟利。这些下载包括盗号木马、挖矿病毒等。并已获得约645枚门罗币(60多万人民币)。这种新蠕虫不断更新,未来可能会发动更大规模的攻击。
早在2014年,该病毒就出现了,并持续在国内外流通,在国外的传播远超国内。据“火绒威胁情报系统”监测,2018年以来,该病毒在中国呈现快速爆发态势,近期仍在蔓延。
火绒工程师发现,病毒通过移动存储设备(u盘、移动硬盘等)传播。)和网络驱动器。被这种蠕虫感染后,病毒会将原始文件隐藏在移动设备和网络驱动器中,并创建一个具有完全相同的磁盘名称和图标的快捷方式,诱导用户点击。一旦用户点击,病毒就会立即运行。
病毒运行后,会先通过CC远程服务器返回的控制命令对被感染的电脑进行分组,然后获取相应的病毒模块进行黑客攻击、挖矿等破坏行为。
作者非常谨慎,对蠕虫和所有下载的病毒模块都使用了混淆器,所以很难被安全软件查杀。同时,下载的挖矿病毒只会在用户电脑空闲时挖矿,占用的CPU资源非常低,因此隐蔽性很强。
不仅如此,该病毒还会删除被感染设备或网络驱动器根目录下的可疑文件,从而保证只有自己才能进入用户的电脑。由此可见,该病毒旨在长期占据用户电脑以牟利,未来不排除其他恶性病毒(如勒索病毒)远程传播的可能。
“火绒安全软件”无需升级即可拦截并查杀病毒。
二。样本分析
最近火绒截获了一批蠕虫病毒样本,主要通过网络驱动器和移动存储设备传播。该病毒最早出现在2014年左右。起初,病毒在国外传播,但在中国的感染非常有限。进入2018年后,国内感染迅速上升,逐渐呈现出快速爆发的威胁。病毒代码执行后,会根据远程CC服务器返回的控制命令执行指定的恶意逻辑,甚至直接将其他病毒代码发送到本地计算机执行。目前我们发现的分布式病毒程序有:挖矿病毒、盗号木马等。恶意代码运行和传播流程图,如下图所示:
恶意代码运行和传播流程图
该病毒使用了许多CC服务器地址,并且这些地址仍在用示例进行更新。我们只拿一些CC服务器地址作为例子。如下图所示:
抄送服务器地址
该病毒会将自身复制到移动存储设备和网络驱动器上,病毒程序和脚本分别命名为DeviceConfigManager.vbs和DeviceConfigManager.vbs。目录被病毒感染后,如下图所示:
被病毒感染的目录(可移动存储设备在顶部,网络驱动器在底部)
火绒拦截的蠕虫病毒样本对其他下载的病毒程序都使用相同的混淆器。这里将对火绒使用的混淆器进行统一分析,这里不再赘述。它所使用的混淆器会使用大量无意义的字符串或数据来调用不同的系统函数,并利用这种方法来达到其混淆目的。与混淆器相关的代码,如下图所示:
混乱的代码
混淆器使用了很多类似于上图的垃圾代码,这些垃圾代码中还穿插了用来恢复和加载原始PE镜像数据的关键逻辑代码。恢复原始PE数据的相关代码如下图所示:
与恢复原始PE图像数据相关的代码
上面的代码运行后,会调用加载原始PE镜像数据的相关代码逻辑。加载原始PE映像数据的代码会先获取LoadLibrary、GetProcAddress函数地址和当前进程模块的基址,然后获取其他关键函数地址。解密后的相关代码如下图所示:
解密加载代码
原始PE镜像数据用LZO算法(莱姆佩尔-齐夫-奥伯胡默)压缩,解压缩后对原始PE镜像进行虚拟映射,修复导入表,重新定位数据,然后会执行原始恶意代码逻辑。相关代码,如下图所示:
调用解压缩和虚拟映射相关代码
蠕虫病毒
病毒的整体逻辑分为两部分,即传播和后门逻辑。病毒的传播只针对移动存储设备和网络驱动器,被感染的移动存储设备或网络驱动器会释放出一组病毒文件,通过诱导用户点击或使用系统的自动播放功能启动。通过遍历磁盘传播蠕虫的相关逻辑代码如下图所示:
遍历磁盘传播
发布的病毒文件和文件描述如下图所示:
发布的病毒文件和文件描述
该蠕虫将通过在病毒vbs脚本中随机插入垃圾代码来对抗安全软件的查杀。发布的vbs脚本会先关闭当前的资源管理器窗口,然后打开磁盘根目录下的“_”文件夹,最后执行病毒程序DeviceConfigManager.exe。发布病毒vbs脚本的相关逻辑,如下图所示:
发布病毒vbs脚本相关逻辑
除了释放病毒文件,病毒还会根据扩展名删除磁盘根目录下的可疑文件(删除时会排除自身释放的病毒文件)。删除的文件扩展名如下图所示:
已删除文件的后缀
当病毒释放文件时,它还会将根目录中的所有文件移动到病毒创建的“_”目录中。除了病毒释放的快捷方式,其他病毒文件属性都设置为隐藏。用户打开被感染的磁盘后,只能看到相同磁盘名称和图标的快捷方式,从而诱骗用户点击。快捷方式指向的文件是DeviceConfigManager.vbs,vbs脚本函数如上所述。通过这些手段,可以在用户尽可能不察觉的情况下执行病毒代码。
已发布的病毒文件列表
蠕虫释放的快捷方式,如下图所示:
蠕虫释放的快捷方式
病毒的后门逻辑会通过IRC与CC服务器通信进行。恶意代码会根据当前系统环境将当前控制的终端加入不同的群组,然后通过群组通信控制属于不同群组的终端。用于病毒分组的信息包括:语言区域信息、当前系统平台版本x86或x64、当前用户权限等。后门代码的主要恶意功能是下载并执行远程恶意代码,然后借助病毒创建的自启动项,病毒可以驻留在用户电脑中,执行任何推送到受控终端的恶意代码。起初,病毒会利用用户的语言区信息和随机数生成用户ID,然后向CC服务器发送NICK和用户通信命令。随机用户ID将被注册为NICK通信命令中的名称,用于受控终端上线。相关代码,如下图所示:
在线受控终端的相关代码
从上图可以看出,该病毒使用的CC服务器列表中有很多域名和IP地址,其中很大一部分是无效的域名和地址,主要用来迷惑安全研究者。受控端上线后,会从CC服务器获取控制指令执行。病毒可以根据不同的系统环境对当前控制的终端进行分组,分组依据包括:语言区信息、当前用户权限、系统平台版本信息(x86/x64)。此外,该病毒还可以通过访问IP查询网站(http://api.wipmania.com)使用control命令严格限制恶意代码的传播。主要控制命令和命令功能描述如下图所示:
主要控制命令和命令功能描述
主后门控制代码,如下图所示:
后门控制代码
该病毒将以随机文件名将远程请求的恶意代码释放到%temp%目录中执行。相关代码,如下图所示:
下载远程恶意代码
采矿病毒
病毒发出的恶意代码很多。我们这次只以挖矿病毒为例。tinder拦截的挖矿病毒执行后,会在计算机计算资源空闲时挖掘门罗币,其挖矿行为很难被普通用户察觉。在这个tinder截获的样本中,我们发现该病毒发出的所有恶意代码都使用了与蠕虫相同的混淆器。以混淆器还原加载原始PE数据代码为例进行对比,如下图所示:
混淆器代码对比图(左侧为发送到终端的挖矿病毒,右侧为蠕虫病毒)
挖矿病毒的原始恶意代码运行后,会将病毒本身复制到位置C:\\Users\\用户名\\ appdata \\ roaming \\ svchostx64.exe,并创建一个每分钟执行一次的调度任务。病毒会创建互斥体,通过检测互斥体,可以保证系统中的病毒进程实例是唯一的。之后病毒会用挖掘参数启动自己的程序,然后将挖掘程序(XMRIG)的PE镜像数据注入到新启动的进程中执行挖掘逻辑。在tinder沙盒中挖掘病毒行为,如下图所示:
挖掘病毒行为
如上图所示,挖掘程序的CPU利用率在挖掘参数中被限制在3%,CPU利用率是否过高会通过检测系统的空闲信息来持续检测。如果太高,将重新开始挖掘过程。通过遍历进程来检查任务管理器进程(Taskmgr.exe)是否存在。如果存在,挖掘将停止,挖掘逻辑将在任务管理器进程退出后继续。上述方法提高了病毒本身的隐蔽性,保证了病毒能在被感染的电脑中停留尽可能长的时间。相关代码,如下图所示:
挖掘逻辑控制代码
虽然该病毒严格控制挖掘效率,但由于其感染量较大,共挖掘出约645枚门罗币,按门罗币现价计算约60余万元人民币。该病毒使用的门罗币钱包账户的交易信息如下图所示:
病毒使用的门罗币钱包账户交易信息
三。附录
样本SHA256包含在本文中:
*作者:火绒安全