0x1 概述
近日,腾讯电脑管家发现Smartoffice等多款办公类软件在用户机器上违规推装页游等多个应用,给用户带来不小困扰。对该批软件进行分析后,发现其通过灵活多变的云控方式控制版本发布插件和脚本,在用户机器上执行推装代码,行为非常隐蔽。此外,该批软件使用的云控下发代码方式也存在潜在风险,一旦开发部门管控不严遭黑客入侵,便极易被篡改云端代码进而下发任意恶意代码到用户机器。
从某软件中心下载平台可看到,Smartoffice下载量高达490万次:
(图1:某软件中心下载平台)
(图2:用户电脑被莫名安装页游)
0x2 Smartoffice软件模块分析
从该软件中心下载Smartoffice,逐一排查软件模块分析后可知,该软件通过com劫持的方法将软件目录中的smartoff.dll注入到系统Explorer进程中,每次开机启动时,被注入smartoff.dll模块的Explorer将以命令行smartup拉起软件目录中的SmarLive.exe进程。
(图3:Smartoffice软件目录结构)
(图4:命令行拉起的SmartLive.exe进程)
SmartLive.exe模块是一个主装载模块,该模块需以命令行smartup启动,否则不执行后续代码直接退出,随后创建一个名为__SmartSouresup_Mutex__的互斥量和一个主要的工作线程,软件所有云控行为也从这个线程开始执行:
(图5:启动条件)
(图6:主要工作线程)
线程内首先获取自身目录路径,再拼接外部文件名组成一个外部加密文件的全路径,该路径文件是主装载模块同目录结构下的smoUplive.cache文件。主装载模块读取该文件后,在内存中使用des算法解密,最后展开得到一个PE文件。
(图7:加密的外部文件路径)
(图8:内存中解密的PE)
经过内存Dump该PE后可看出,是一个静态引用了Lua5.3.4版本引擎的DLL,主装载模块通过遍历导出函数,获取解密云端Lua脚本,执行Lua脚本。
(图9:内嵌lua5.3.4引擎)
(图10:拉取执行Lua脚本功能导出函数)
调试该DLL可发现其Lua脚本通过云端地址:
hxxp://config.wddma.com/src/smartds.html获取,读取html页内加密的Lua脚本文件后,在内存中同样使用DES算法解密运行,通过Dump下解密后的的Lua脚本内容可看出脚本通过函数IsNoBzArea()判断是否为北京、上海、广州、深圳、珠海的IP,当用户IP来自以上区域时,则直接退出脚本。也就是说,北上广深、珠海等地的IP用户不会出现弹框推装等行为,幕后操作者以此在地域上躲避大多数安全公司的监控。
(图11:内存中解密的Lua脚本)
(图12:关闭UAC云端拉取插件函数)
(图13:主页篡改功能函数)
(图14:地区过滤判断函数,排除北上广深、珠海等“炮轰”区域)
(图15:多重条件过滤推装代码片段)
进一步观察Dump模块C++与Lua脚本的交互接口函数,可发现其功能十分丰富,接口功能主要有内存操作、注册表操作、js相关命令解析执行、AdbShell操作等功能......通过这些接口可知该软件不仅可实现对用户PC进行弹框、推装、主页篡改等行为,还具备通过AdbShell对连接PC的移动设备实现进一步推装的能力,以下为该模块实现的Lua接口。
(图16:软件预留的Lua接口函数)
0x3 同源性分析
Smartoffice使用签名为重庆熙禧科技中心,经腾讯御见威胁情报中心查询,该签名可关联到一款名为“易压缩”的解压软件,通过“易压缩”软件官网域名可关联到数十个其它网站,部分站点涉及桌面便签、压缩、办公、阅读等软件类型。排查后发现“乐享桌面便签”,“易压缩”同样存在内存解密云控相关的代码模块,并且其代码相似度极高,可确认为同一组织编写。
(图17:Smartoffice签名)
(图18:易压缩签名)
(图19:通过易压缩网站邮箱信息关联到的数十个站点)
(图20:Smartoffice、 易压缩、乐享便签高度一致的DLL模块内存解密代码)
0x4 结语
网上各种软件分发渠道良莠不齐,用户费尽周折下载到的软件往往还暗藏杀机,腾讯电脑管家建议用户应尽可能从正规的官方渠道下载软件。此外,腾讯电脑管家的软件管理提供软件下载、安装、升级、卸载等服务,同时拥有高速下载、去插件安装、卸载恶意软件等特色功能,电脑管家用户可放心使用。
(图21:腾讯电脑管家软件分析界面)