近日,火绒工程师在帮助用户远程解决问题时,现场发现一个间谍木马模块(TrojanSpy),溯源后发现该木马来源为知名软件“酷我音乐”。该木马运行后,会搜集用户QQ号等隐私信息,还会通过用户上网历史归纳用户特征,并回传至“酷我音乐”服务器后台。由于该软件下载量较多,导致受影响的用户范围较大。目前火绒安全软件最新版可查杀该病毒。
火绒工程师深入分析发现,“酷我音乐”携带的间谍木马会在后台进行搜集用户隐私信息等恶意行为:
1、搜集用户主机登录过的QQ号码。
2、通过浏览器浏览历史归纳用户特征后回传后台。
3、通过云控配置下发命令至用户电脑,比如下载音频文件回传到服务器后台。
此外,该木马还可随时通过远程服务器进行其它操作,不排除未来通过修改云控配置下发其它风险模块的可能性。
同时, “酷我音乐”会通过云控下发两套间谍木马:一套下发在软件的安装目录下;另外一套则会下发到非软件安装目录,且即便“酷我音乐”卸载后仍然驻留用户系统,持续响应云控指令。
事实上,早在2015年,“酷我音乐”携带的上述间谍木马就曾被国外安全厂商报“潜在不需要的程序(PUA/PUP)”(见下方用户反馈链接)。可能由于该报法与行业内对恶意软件的定义有区别,因此未能引起其它安全厂商注意。直到今日火绒工程师在用户现场中发现,进而详细分析,认为这套组件功能已经超出了“PUA/PUP”的定义,且符合 间谍木马的定义。
值得一提的是,火绒工程师还发现该间谍木马的云控配置的链接在一个名为“bigdata”(大数据)目录下,推测该间谍木马是用作所谓的大数据收集之用。
信息时代的发展,越来越多的互联网公司对“大数据”趋之若鹜,对于过分追求数据信息而出现越权行为的软件、程序,火绒都将及时、持续进行拦截查杀,保护用户合理权益。同时,我们也呼吁 此类软件厂商,停止越权搜集用户信息等恶意行为,理性逐利,长久发展。最后,用户如 遇到任何可疑问题,可随时联系火绒获得帮助。
相关链接:
2015年卡饭网友反映安全厂商对“酷我音乐”的拦截
一、溯源分析
近期,我们接到用户反馈,在用现场发现多个带有有效酷我音乐数字签名(BEIJING KUWO TECHNOLOGY CO.,LTD.)的可疑模块。可疑模块出现目录,如下图所示:
可疑模块所在目录
kreap5141.dll数字签名信息,如下图所示:
kreap5141.dll数字签名信息
经过分析,我们发现这是一组恶意程序,kreap5141.dll为随机名动态库,该动态库会被注册为ShellIconOverlayIdentifiers启动项由explorer进行加载。kreap5141.dll动态库会使用rundll32.exe调用kreap5141_core.dll获取任务动态库到用户本地执行。 kreap5141_core.dll 可以从C&C服务器下发恶意功能模块到用户本地执行,恶意功能包括从用户本地收集在当前计算机登录过的QQ号信息、浏览器历史记录画像信息、软件安装信息等、上传音频文件等。
之后通过溯源,我们又在酷我音乐安装目录下找到了具有相同功能代码的恶意模块KwExternal.exe,该模块由KwService.exe从服务器获取,由酷我音乐主程序(kwmusic.exe)调用,执行后即会根据服务器返回的配置数据收集用户隐私信息。由于恶意功能代码与前文中随即名动态库相同,所以我们仅以KwExternal.exe为例进行分析。恶意行为执行流程,如下图所示:
恶意行为执行流程
KwExternal.exe文件数字签名信息中显示签名时间为2019年4月8日。数字签名信息,如下图所示:
KwExternal.exe模块文件数字签名信息
二、详细分析
KwExternal.exe恶意模块主要用来收集、上传用户本地信息,在安装酷我音乐后会有KwService.exe进行下发,由酷我音乐主程序(kwmusic.exe)调用。相关下发逻辑在Kwmv.dll模块中实现,首先向C&C服务器地址(http://deliver.kuwo.cn/yl_res_manage.search)请求KwExternal.exe模块下载地址。发送请求时,会将MAC地址、IP地址等信息发送至服务器,请求构造的相关数据,如下图所示:
发送的请求数据
上述数据经过Base64编码后会发送到C&C服务器,构造后的请求数据包相关数据,如下图所示:
请求数据
C&C服务器在收到请求后会返回KwExternal.exe模块的下载地址,仅以部分数据为例,如下图所示:
KwExternal.exe下载配置
随后KwExternal.exe模块数据会被下载至本地的C:KwDownloadTemp目录下的随机名文件(如:C9F903ADC5ED0F62.exe),之后再由酷我音乐主程序kwmusic.exe将随机名文件移动至安装目录下,启动KwExternal.exe执行恶意行为。相关行为日志,如下图所示:
下载KwExternal.exe模块数据
移动至酷我音乐安装目录下
KwExternal.exe运行后会根据本地配置(C:ProgramDatakuwodatakwmusic2013ConfServerconfig.ini)中的数据收集开关选项(DataCollect)收集用户本地信息,且该开关默认为打开状态。KwExternal.exe收集的用户信息包含有:用户本地登录过的QQ号、用户终端上网行为信息、终端环境信息(软件环境、桌面图标等)、下载并收集音频文件等。除此之外,相关配置信息,如下图所示:
配置文件
该模块会根据云控下发的规则配置文件对所需要的信息进行收集,然后保存为json格式并加密传输到C&C服务器。服务器地址可以通过配置文件配置,默认为hxxp://ecomgxh.kuwo.cn/EcomGxhServer/st/receiveUserInfoServlet。收集信息的规则文件现在无法请求到,但是不排除之后再次下发的可能性。从代码逻辑可以看出,收集用户信息包括:用户访问具体网站的次数,用户是否安装了特定的影音播放器,是否安装了黑名单中的软件,是否经常访问某些网站以及进行游戏和观看直播的程度。被发送的json格式信息,如下图所示:
收集用户信息构造的json数据
收集终端环境信息
软件信息收集
该模块会通过遍历HKLM和HKCU主键下的SOFTWAREMicrosoftWindowsCurrentVersionUninstall子键,得到用户安装的软件列表。然后与规则文件中的软件名称进行匹配,得到用户安装的浏览器(为收集浏览器历史信息做准备),影音播放器,游戏盒子,游戏微端,直播软件和在黑名单中的软件情况。相关代码,如下图所示:
收集软件列表
查询是否安装特定影音播放器列表,如下图所示:
收集的影音播放器
收集游戏盒子,微端和直播软件的数量
桌面图标后缀信息收集
该恶意模块还会对“%COMMON_DESKTOPDIRECTORY%”和“%DESKTOPDIRECTORY%”目录下的用户图标文件进行遍历,获取图标后缀信息,相关代码如下图所示:
获取用户桌面图标后缀信息
当获取完用户桌面上的图标后缀信息之后,后续的发送数据流程与下文发送QQ账号信息的方法一致,相关代码如下图所示:
获取的用户桌面图标后缀信息
收集用户本地登录过的QQ号
该恶意模块会获取用户系统“%APPDATA%TencentQQMisc”目录下的QQ账号信息,相关代码如下图所示:
获取“%APPDATA%TencentQQMisc”目录下QQ账号信息
当获取完用户系统上的QQ账号信息之后,该模块便会将其通过zlib压缩,并加密使用Base64编码后,放入消息数据包中,创建网络线程,从而传输给远程服务器(hxxp://log1.kuwo.cn/feedback.s或hxxp://log.kuwo.cn/music.yl),相关代码如下图所示:
获取的用户QQ账号信息
发送含有用户QQ账号信息的消息数据
收集用户终端上网行为信息
受影响的浏览器名称及相关代码,如下图所示:
受影响的浏览器
受影响的浏览器
该恶意模块会通过sql命令及系统相关函数来查询用户浏览器的历史访问记录信息,下面以搜狗高速浏览器为例。首先,该模块会检测收集软件信息时得到的浏览器标记位,判断用户主机上是否安装搜狗高速浏览器。如果搜狗高速浏览器正在运行,则将储存有用户历史浏览记录的数据库文件复制并重命名到临时文件目录下。相关代码如下图所示:
复制浏览器数据库文件到临时文件夹下
之后运行sql命令“SELECT a.id,a.last FROM UserRankUrl a;”查询历史记录数据库中用户近一个月的历史访问网址及访问时间,相关代码如下图所示:
查询数据库中历史网址相关信息
通过sqlite查看工具执行命令“SELECT a.id,a.last FROM UserRankUrl a;”查询搜狗高速浏览器历史网址数据库HistoryUrl3.db,得到历史网址和访问时间。结果如下图所示:
Sql命令查询测试结果
获取完上述所列出的浏览器历史访问记录后,该模块会根据配置文件中的关键网址字段信息与历史网址记录进行匹配,如若匹配成功,则将该网址对应的访问计数值加一,用于填写json信息中的rule值。当访问计数值到达配置中数值要求时,则将json信息中的testLinkType中对应的字段值置一。根据收集到的历史记录和安装软件信息,归纳出用户特征,填充json信息中的userType字段值。下面 以“GamePlateMatch”为例,相关代码如下图所示:
历史网址信息所需匹配的关键字段
匹配与GamePlateMatch相关的历史网址
根据软件和浏览器历史,归纳用户特征
将收集到的json格式信息进行简单的异或加密和Base64编码后,发送至C&C服务器。相关代码,如下图所示:
将收集的信息加密并发送
下载并收集音频文件
在执行下载收集音频文件相关操作时,首先会检测本地config.ini配置文件中DataCollect -> EnableSongCollect的值是否为1,判断是否执行下载收集音频文件流程,之后再在SongLink -> UrlQurySongReg项下获取音频下载地址。相关代码,如下图所示:
下载收集音频代码
如上图代码所示,首先会请求配置数据,该配置数据中包含有音频下载配置的下载地址(url)和上传地址(td_ip)。配置数据格式,如下图所示:
配置数据
上述配置数据中url字段包含有音频下载配置的下载地址,音频下载配置中存放有需要收集的音频文件下载地址。音频下载配置格式,如下图所示:
音频下载配置
音频下载配置解析相关代码,如下图所示:
音频下载配置解析
在获取音频文件下载地址的同时,还会判断下载地址中是否包含“_h.mp3”字符串,如果存在则会执行下载操作。相关代码,如下图所示:
判断是否需要下载
之后,相关恶意代码逻辑会检测SongDataCollect.pl文件中记录的文件路径(filePath)是否存在。如果filePath中的路径存在,则调用上传逻辑将音频文件内容上传至C&C服务器(前文配置中td_ip为上传C&C服务器地址);如果不存在则会按照前文中提到的音频下载地址下载音频文件到本地Temp目录中,再将Temp目录中下载的音频文件上传回C&C服务器。相关配置格式,如下图所示:
SongDataCollect.pl配置数据格式
相关代码,如下图所示:
检测、下载音频文件
最后,会将本地获取或者下载的音频文件数据上传至C&C服务器(前文配置中td_ip为上传C&C服务器地址)。相关代码逻辑,如下图所示:
上传文件
由于现行酷我音乐相关配置暂未开启,所以我们根据KwExternal.exe代码逻辑构造了相应的配置文件进行功能验证,验证结果与分析内容完全一致。相关行为,如下图所示:
收集上传音频文件行为日志
三、同源性分析
我们在用户现场提取到的kreap5141.dll随机名动态库会根据配置文件下发的恶意模块到本地执行,在下发的多个恶意模块中,我们找到了一个和KwExternal.exe功能高度相似的恶意模块1002.dll。1002.dll数字签名信息,如下图所示:
1002.dll数字签名信息
kreap5141.dll随机名动态库虽然带有酷我音乐有效数字签名,但是酷我音乐卸载时,并不会对kreap5141.dll相关恶意模块进行删除。下发恶意代码到用户本地执行的相关配置数据,如下图所示:
恶意模块下发相关配置
KwExternal.exe与1002.dll代码具有极高相似性,所以系同源恶意模块。同源代码,如下图所示:
KwExternal.exe与1002.dll同源代码
四、附录
样本hash