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