一、概述
近日,火绒安全团队发现某商业企业旗下的多款软件携带后门病毒"Backdoor/Jspider"。该病毒会将被感染电脑当作"肉鸡",用来扒取阿里巴巴、微信等平台上的企业相关信息,同时在搜索引擎上刷排名。
据火绒安全团队分析,后门病毒"Backdoor/Jspider"通过"榴莲抢票王"、"看美女"、"258商务卫士"等该企业旗下的多款软件进行传播,用户电脑一旦安装上述软件,即会被病毒感染,即使卸载这些软件,病毒依然留在电脑中作恶。
用户电脑沦为"肉鸡"后,会接收远程指令,去访问阿里巴巴(www.1688.com)、清博大数据(www.gsdata.cn)和各大搜索引擎(百度、360、搜狗和中搜),不光扒取阿里巴巴的企业注册信息和交易内容(如贸易共需求信息等),还扒取微信公众号里的各个企业信息,并在搜索引擎上为一些企业和产品刷排名。
上述操控"肉鸡"的种种行为,会大量占用被感染电脑的CPU资源,产生电脑变慢、发热等现象。
火绒安全团队溯源发现,此病毒早在2014年便已出现。该病毒制作者极为谨慎,当检测到电脑中存在"360安全卫士"和"腾讯电脑管家"时,该病毒将不会下载安装。
"火绒安全软件"最新版可彻底查杀该病毒,请广大用户下载使用。
二、样本分析
火绒近期发现,多款安装包签名信息为"厦门书生天下软件开发有限公司"的软件会在用户不知情的情况下,下载执行远程服务器请求到的二进制文件及一组JavaScript脚本,该组程序用于爬取企业信息及给定的关键字相关数据(爬取对象包括阿里巴巴1688.com、清博大数据gsdata.cn、百度搜索、360搜索、搜狗搜索和中国搜索)。
不仅如此,在卸载软件后,该组程序依然会常驻于用户计算机中,消耗CPU计算能力,与利用用户电脑挖取比特币的后门病毒本质相同。当同时执行的计算任务较多时,甚至会影响用户对电脑的正常使用。因此,火绒将该组程序定性为后门病毒。以软件"看美女"为例,如下图所示:
病毒执行进程树
CPU占用情况
该组病毒最主要的两个模块,一个模块名字通常为"*Loader.exe"(*代表任意字符,如上图中为MeinvSearcherLoader.exe,下文中简称为Loader模块),另一个模块通常为"*Service.exe"(下文中简称为Service模块)。Loader模块为该组恶意软件的启动器,如果环境中不存在该组病毒的其他组件,该程序可以从远程C&C服务器请求病毒的其他组件至本地进行部署。Service模块则为PhantomJS无界面浏览器,通过调用Domino.js可以从远程C&C服务器获取任务脚本加载到Service中进行执行。
该组恶意程序执行流程,如下图所示:
恶意代码执行流程
恶意软件的关键逻辑如上图所示,安装包首先会释放出"看美女"软件主程序"kanmeinv.exe",再由主程序从远程C&C服务器下载Loader模块到本地对该组恶意软件进行部署执行。Loader运行后先会将自身注册自启动,之后下载nssm.exe、node.exe、一组脚本(包括Bootstrap.js、Domino.js、其代码中使用的JavaScript库模块)及其配置文件。node.exe为NodeJS主程序。nssm.exe为服务管理程序,Loader通过调用nssm.exe将node.exe调用Bootstrap.js脚本的命令行加入到nssm.exe的启动列表中,开机后Bootstrap.js脚本就会被调用执行。Bootstrap.js逻辑主要用于监控Loader和Service进程状态,如果进程不存在则会进行创建。Loader进程启动后,会使用Service调用Domino.js执行远程C&C服务器派发的任务。
下面我们针对该组病毒中最主要的两个JavaScript脚本进行详细分析。
Bootstrap.js
Bootstrap.js模块主要用于该组病毒的运行监控和组件更新。当Loader和Service进程未启动时,则会使用指定参数启动Loader和Service进程,该逻辑既可以用于监控运行状态,也可以用于作为Loader和Service模块的启动器。如下图所示:
进程监控及启动
除了启动Loader和Service模块外,该脚本还会对病毒组件进行更新,如果远程C&C服务器中存在更新版本则会执行更新逻辑。相关逻辑如下图所示:
病毒组件更新代码
Domino.js
Domino.js在被调用时,首先会检测360安全卫士和腾讯电脑关键进程,如果存在则不会对病毒组件进行部署。之后再检测nssm.exe进程是否存在,如果存在则说明病毒组件已被部署,不再执行部署逻辑。如下图所示:
病毒部署逻辑
病毒最主要的逻辑则是从远程C&C服务器(hxxp:// 120.55.89.149:8066/ws?token=&mac=***&ver=309&platform=kmv&pigExe=&phantomVer=4&ocrVer=undefined&os=***,*代表的是本地获取到的数据)获取并执行任务脚本。
Domino.js会每隔30秒会向服务器发送消息尝试获取任务,在发送给服务器的消息中记录了当前系统的内存信息和当前等待执行的任务数量,服务器会根据收到的信息来派发任务。相关逻辑如下图所示:
获取任务逻辑
任务数据如下图所示:
任务数据
在获取任务数据之后,根据act属性从远程C&C服务器获取任务脚本,获取链接如:hxxp://static.duominuo.com/task/bd_search_pos_swws.js。获取到的任务有很多种,主要的任务内容如下图所示:
任务内容
这些脚本执行逻辑相同,以下以pdc_wechat.js和pdc_b2b_contacts.js为例。
pdc_wechat.js
pdc_wechat.js首先通过"hxxp://pdc.weimao.com:9901/client/com/hack?type=任务类型&rand=随机数"获取当前任务需要搜索关键字。如下图所示:
获取搜索关键字
获取到的搜索关键字数据,如下图所示:
搜索关键字数据
在获取到关键字之后,再通过gsdata.cn 获取与关键字相关的微信信息,如微信号、认证信息等。代码逻辑,如下图所示:
获取微信信息
pdc_b2b_contacts.js
pdc_b2b_contacts.js会通过1688.com获取公司地址,主营产品,所在地区等企业相关信息。代码如下图所示:
获取企业信息
数据用途
在258商务卫士中,我们找到了可能引用上述数据的相关功能模块。如下图所示:
关键字数据
关键字内容
引用微信数据的相关功能模块,如下图所示:
引用微信数据功能
三、溯源分析
现阶段火绒发现,带有该组病毒的软件安装包有"看美女"、"榴莲抢票王"和"258商务卫士"。相关安装包文件信息,如下图所示:
安装包文件信息
上述软件签名时间最早的258商务卫士可追溯至2014年,在最新版的258商务卫士中主程序中也存在与前文所述病毒相关的数据。最新版258商务卫士文件信息,如下图所示:
文件信息
与前文所述的病毒模块相关数据,如下图所示:
与病毒模块相关数据
四、附录
文中涉及样本SHA256: