火绒的安全报告 https://www.huorong.cn/safe/1577158880405.html 最近帮人整理了一下电脑,发现浏览器主页被劫持.wps 一直有弹窗.然后百度了一下,搜到这篇文章. 09 年 12 月火绒的报告.但是现在金山还有这样的后门行为. 这已经事违法了吧.没人起诉吗
双十一期间,火绒对金山系部分软件仿冒其它安全软件,进行广告推广的行为开启拦截查杀(报告见链接 1 )。随后,火绒接到不少用户反馈,称在已经卸载金山毒霸、驱动精灵等软件的情况下,火绒依然出现相关报毒。火绒工程师与用户沟通和远程查看分析后,发现是驱动精灵在卸载时故意留下一个名为“kbasesrv”的后门程序,包含广告模块被火绒报毒。
图片 1.png
经过深入分析发现,驱动精灵在卸载时会投放”kbasesrv”后门程序,在用户电脑中执行软件推广、流量劫持、云控锁定浏览器首页等恶意行为。不仅如此,该后门程序还可云控在用户电脑中执行任意文件、拷贝或删除文件、结束进程、修改注册表、向指定窗体发送消息等,这就意味着用户电脑随时面临被远程执行任意操作的风险。 上述种种行为已经满足安全厂商对后门程序的定义,因此火绒对该程序进行查杀。未安装火绒的用户也可以选择火绒专杀工具彻底清除后门程序“kbasesrv”。(专杀地址见链接 2 )
“kbasesrv”后门程序的投放方式除驱动精灵服务项、特殊版本的金山系软件安装包以外,最主要是在驱动精灵被用户卸载时投放。并且该程序部分云控指令会主动规避火绒等主流安全软件以及一些主要省会城市(北京、上海、深圳、广州)。此外,因为”kbasesrv”后门程序组件与金山毒霸、猎豹浏览器、猎豹 Wifi 等众多金山系软件组件有重叠关系,如果金山向这些软件下发云控命令后,它们同样可以实施”kbasesrv”后门程序执行的恶意行为,所以火绒也会相应的对其进行拦截报毒。由于金山系软件用户量较大,导致该后门程序的影响也较为广泛。
事实上,数年前就有用户曝光过金山系软件相关的劫持行为(见链接 3 ),我们也曾报道过金山利用病毒推广安装、仿冒其它安全软件推广广告等行为(报告见链接 1 、4 )。火绒并非有意针对某个厂商,确实是这一系列程序行为触及到我们的原则和底线,不加以制止的话,受到损害的将是广大用户的权益。在火绒看来,如果这些软件厂商继续作恶,盘剥用户利益,火绒也将持续拦截、查杀这类危险程序。 在对“浏览器主页劫持”现象曝光后,近日人民日报再次对“弹窗广告”等损害用户体验的商业软件恶劣行为进行批评,指出相关平台厂商应该“优化行业生态、加强业界自律”。在此,火绒也呼吁广大厂商理性逐利,让用户不再受到恶意侵扰,享受应有的权益。 注:文中所述后门程序“kbasesrv”曾用名“主页安全防护”、“金山安全基础服务”。
相关链接: 1 、双十一成流氓推广狂欢节 单日侵扰千万量级电脑 https://www.huorong.cn/info/1573220809390.html 2 、专杀地址 http://down4.huorong.cn/hrkill_1.0.0.31.exe 3 、用户曝光金山劫持 https://www.zhihu.com/question/26615909 http://www.vuln.cn/6310 4 、金山毒霸"不请自来" 背后竟有黑产推波助澜 https://www.huorong.cn/info/1566908385361.html
附: [分析报告]
目录 一、 溯源分析 二、 投放渠道 驱动精灵推广 kbasesrv 金山系软件渠道包投放 kbasesrv 三、 云控后门 四、 篡改浏览器内存数据 五、 流量劫持 推广号劫持 浏览器劫持 六、 云控锁首 首页锁定 锁定新建标签页 添加外链 七、 同源分析 八、 附录
一、 溯源分析 火绒在近期报告《双十一成流氓推广狂欢节 单日侵扰千万量级电脑》中,揭露了金山系广告模块带有伪装安全软件进程名、监听用户剪切板、检测安全分析工具等流氓广告推广行为。在我们对金山系相关广告模块进行查杀后,我们又收到了大量用户的相关反馈。我们奇怪的发现,在很多被植入流氓推广模块的电脑中,用户从未主动安装过任何金山系软件或已经卸载。通过分析,我们最终定位到是带有金山签名的后门服务 kbasesrv 在下发流氓推广模块,该服务被安装时不会产生任何界面提示,且可以通过云控服务器控制该服务在用户终端的程序行为,包括但不限于在用户计算机执行广告投放、流量劫持、软件推广等,该服务行为符合火绒对后门程序的定义。
Image-5.png
kbasesrv 后门程序文件签名信息
通过溯源,我们定位有多个渠道在推广 kbasesrv 后门程序,如:驱动精灵服务项、驱动精灵卸载程序、金山软件特殊版本渠道包等。经过我们确认,上述推广渠道中用户无法通过手动设置阻止 kbasesrv 服务被安装,即在用户不知情的情况下就会被该后门程序控制。后门程序安装包在投放时,会主动规避主流安全软件(火绒、360 )。 后门程序暂时主要会执行软件推广、流量劫持(包括劫持推广计费号、劫持浏览器等)、云控锁定浏览器首页。
除此之外,我们还发现该后门程序还带有执行任意可执行文件、命令行,释放推广快捷方式,结束进程,向指定窗体发送消息,拷贝文件,修改删除注册表等后门功能。后门云控配置下发时会主动规避主要省会城市(北京、上海、深圳、广州),并且也会躲避主流安全软件。上述恶意行为完全符合我们对后门程序的定义,直接影响到了用户对个人电脑的正常使用。后门程序执行流程,如下图所示:
Image-6.png 后门程序执行流程图
二、 投放渠道
驱动精灵推广 kbasesrv 驱动精灵卸载程序投放 kbasesrv 时,为避免重复安装,会检测 kbasesrv 或金山毒霸是否已经安装(金山毒霸包含 kbasesrv 相关组件,具体后文同源性分析会有相关说明),同时还会规避安全软件(火绒、360 安全卫士),防止其恶意投放行为被安全软件捕获。相关代码,如下图所示:
Image-7.png 驱动精灵卸载程序投放 kbasesrv 逻辑
规避火绒相关代码,如下图所示:
Image-8.png 规避火绒相关代码
驱动精灵服务和卸载程序中均存在有 kbasesrv 服务投放逻辑。相关代码逻辑,如下图所示:
Image-9.png 驱动精灵服务投放 kbasesrv 相关代码逻辑
金山系软件渠道包投放 kbasesrv 通过我们溯源分析,我们还找到了一个特殊版本的猎豹浏览器安装包,kbasesrv 安装包与猎豹浏览器安装包都以二进制数据形式被存放在安装包资源中。安装包运行后,会弹出猎豹浏览器安装界面,但猎豹浏览器与 kbasesrv 后门程序的安装互不影响,即使用户不安装猎豹浏览器也不会影响 kbasesrv 后门程序的安装。相关动作截图,如下图所示:
Image-10.png 投放 kbasesrv 动作截图
该特殊版本猎豹浏览器安装文件数字签名信息,如下图所示:
Image-11.png 特殊版本猎豹浏览器安装文件数字签名信息
三、 云控后门 kbasesrv 后门程序会调用指定后门模块( infocenter.exe 、phoenix.exe 、kwhcommonpop.exe )根据云控配置执行后门指令。其中 kwhcommonpop.exe 由 kcmppinvoker.dll 调用,现行的云控配置主要用来进行软件推广; kpolicy.dll 可以根据 kpctrl.dll 加载的云控配置调用 infocenter.exe 、phoenix.exe 执行后门命令。以 phoenix.exe 为例,该后门模块可以执行的部分主要后门指令,如下图所示:
Image-12.png phoenix.exe 可以执行的后门指令
kpctrl.dll 会首先会从通过本地同步的 fnsign.dat (该文件被加密,该文件同步地址为:hxxp://pc001.update.lbmini.cmcm.com/cmcm/kprotect/bin/2001/kprotect/data/d8d04a39237358e3125162fe1f1641b0,最后部分为文件内容哈希值)配置中解析出执行后门模块的相关策略数据。解密后的配置数据,如下图所示:
Image-13.png 推广配置
kbasesrv 会根据 kpctrl 中加载的配置数据调用 kpolicy.dll ,创建推广软件控制线程,每隔 5 秒检测一次云控数据列表,如果该列表不为空,则会调用指定的后门模块根据同步到本地的云控配置执行后门逻辑。相关代码,如下图所示:
Image-14.png 软件推广相关代码
如果云控数据中设置了拷贝路径,则会将后门模块拷贝到指定目录执行。相关代码,如下图所示:
Image-15.png 调用后门模块相关代码
由于 infocenter.exe 、phoenix.exe 和 kwhcommonpop.exe 三个模块关键代码基本相同,所以报告中仅以 phoenix.exe 进行分析说明。phoenix.exe 执行后会解析同步到本地的云控配置(云控下发地址:hxxp://config.i.duba.net/rcmdsoft/6/7/generalizecfg.dat )文件 generalizecfg.dat (文件在软件目录中的 phoenix/6/7 目录下,其中 6 代表当前软件名称,如 kbasesrv 、金山毒霸、驱动精灵等; 7 为模块中的给定数值)。云控配置文件解密后,如下图所示:
Image-16.png generalizecfg.dat 配置内容
我们所请求到的相关云控配置主要用来进行软件推广,根据现有配置后门模块会执行诱导软件推广。上图配置中 resinfo 标签下的 url 字段用来拼接资源文件下载地址(下载地址如:hxxp://config.i.duba.net/rcmdsoft/6/7/db/kp_music_push_db.zip ),资源文件为诱导弹窗页面资源。用户再点击“一键清理”后,则会推广安装金山毒霸。弹窗界面,如下图所示:
Image-17.png 诱导推广弹窗界面
在另一份 generalizecfg.dat 配置中,我们又找到了很多规则安全软件的策略,根据注释我们推测此配置为金山毒霸卸载时所执行的推广行为。相关配置,如下图所示:
Image-18.png generalizecfg.dat 配置内容
除此之外,我们还在 phoenix.exe 后门模块中找到了其他后门指令功能(执行任意可执行程序、命令行,拷贝文件、修改注册表等)。我们还通过对金山系软件历史文件的筛查,找到了利用后门指令的相关配置文件。我们从配置内容中发现,部分软件功能与后门功能都存在与同一配置文件中,即。配置文件内容,如下图所示:
Image-19.png 后门指令配置
解析执行云控命令相关代码,如下图所示:
Image-20.png 解析执行云控命令相关代码
后门指令功能仅以个别功能为例。相关代码,如下图所示:
Image-21.png 执行指定命令行 Image-22.png 结束指定进程
Image-23.png 调用 kinst.dll 动态库推广安装软件
kinst.dll 为金山系通用软件推广模块,可以通过根据云端推广配置推广安装指定软件。在我们下载到的推广配置中,推广策略可以静默推广金山毒霸。该推广软件安装程序为一个特殊构造的动态库,运行 InstallEx 导出函数后即可静默安装金山毒霸。相关配置文件,如下图所示:
Image-24.png 推广软件相关云端配置
下载解析云端推广配置(服务器地址: http://config.i.duba.net/lminstall3/[config_number].json?time=[time_tickcount])相关代码,如下图所示:
Image-25.png 下载解析云端推广配置代码
执行软件推广相关代码,如下图所示:
Image-26.png 执行软件推广相关代码
四、 篡改浏览器内存数据 注入到浏览器中的 knb3rdhmpg.dll 模块会篡改浏览器内存数据,破坏浏览器首页防篡改的功能。受到影响的浏览器,如下图所示:
Image-27.png 受影响的浏览器
以 360 安全浏览器为例,在 sesafe.dll 模块中会检测 360 安全浏览器启动参数,如果发现首页的启动参数中存在 “duba”字符串,则会开启首页修复功能模块。相关代码,如下图所示:
Image-28.png sesafe.dll 首页劫持防护
当 360 安全浏览器检测到首页被毒霸劫持后会进行首页修复。相关现象,如下图所示:
Image-29.png 360 安全浏览器首页修复
为了成功劫持浏览器首页,注入到浏览器中的 knb3rdhmpg.dll 模块会通过 hook LdrLoadDll 函数,在浏览器 dll 模块加载时,对相应模块数据进行篡改,破坏原有的恶意篡改主页拦截功能。该模块不仅会固定的篡改一部分内容,而且会根据配置文件进行篡改。相关的配置文件为 safepatch.dat 文件,可以通过云控下发,其中包含了要篡改的浏览器模块和内容。相关代码,如下图所示:
Image-30.png Hook LdrLoadDll
Image-31.png 篡改 sesafe.dll 内存数据
Image-32.png safepatch.dat 文件
五、 流量劫持 推广号劫持 注入到浏览器中的 knb3rdhmpg.dll 模块会对百度搜索,搜狗搜索以及 hao123 的导航页进行推广号劫持。当用户使用浏览器访问这些站点时,该模块便会劫持这些链接的推广号。劫持推广号的配置文件有两个,kbasesrv 目录下使用简单异或的 se_redirect_ex2.dat 和 uredirect.dat 文件。配置文件均可以通过云控下发更新,其中包括了劫持的 url 前缀,劫持白名单,劫持到的推广号和劫持的概率等信息。se_redirect_ex2.dat 文件现在为主动更新派发,uredirect.dat 文件目前不会更新下来,但是从金山毒霸目录下找到同名文件,且文件中的字段信息与程序逻辑相吻合。劫持配置文件,如下图所示:
Image-33.png se_redirect_ex2.dat 文件
Image-34.png uredirect.dat 文件
对于不同的浏览器,实现推广号劫持的方法有所不同,主要有三种方法。
Image-35.png 调用 SetWinEventHook 过滤 EVENT_OBJECT_NAMECHANGE 事件
Image-36.png 模拟键盘输入进行推广号劫持
Image-37.png 使用 302 重定向劫持推广号
Image-38.png Hook SetWindowText 劫持推广号
浏览器劫持 受到劫持影响的浏览器有:2345 浏览器、搜狗浏览器、QQ 浏览器 kbasesrv.exe 会根据当前系统版本将 kbasesrv 模块下的“knbhmpg.dll“和“knb3rdhmpg.dll”或“knbhmpg64.dll“和“knb3rdhmpg64.dll”注入到系统进程 explorer.exe 中。注入后的 explorer.exe 进程如下图所示:
Image-39.png 被注入后的 explorer.exe 进程模块列表
成功注入到 explorer.exe 后,knbhmpg.dll 会对 IcontextMenu 接口下的 InvokeCommand 方法进行 hook 。InvokeCommand 方法主要是用于执行与快捷菜单项关联 的命令。也就是说当我们双击快捷方式等操作时,就会触发 hook 函数。Hook InvokeCommand 方法代码如下图所示:
Image-40.png Hook InvokeCommand 方法
当成功触发 hook 代码后,程序便会载入 knb3rdhmpg.dll ,获取其导出函数“F1”的地址,相关代码如下图所示:
Image-41.png 获取 knb3rdhmpg.dll 中导出函数 F1 的地址
在获取到 knb3rdhmpg.dll 中导出函数 F1 的地址后,程序便会进入 F1 的代码逻辑中运行, 首先会根据所获取的快捷方式路径获取到其所指向的可执行文件路径,相关代码如下图所示:
Image-42.png 获取快捷方式所指向的文件路径
之后解密自身路径下的 safeurl.dat 配置文件,并得到所需配置内容。解密 safeurl.dat ,相关代码如下图所示:
Image-43.png 解密 safeurl.dat 解密出的 Safeurl.dat 文件中所对应的配置及字段解释如下图所示:
Image-44.png 解密出的 Safeurl.dat 内容及字段解释
然后检测代表触发次数的 times 字段是否大于 0,如果大于 0 功能正常继续往下运行,否则功能失败,相关代码如下图所示:
Image-45.png 检测 times 字段值
当触发次数值满足条件时,会获取一个随机数除以 100,将所得余数与配置文件中的数值进行比较,从而实现控制触发的概率,相关代码如下图所示:
Image-46.png 检测概率
概率被成功触发后,该模块会根据注册表键值来获取自身所在路径,拼接出启动参数”C:\Program Files\kbasesrv\knbhm.exe -url SogouExplorer.exe https://www.duba.com/?f=lnkjks”,创建新的进程。相关代码如下图所示:
Image-47.png 拼接启动参数并创建进程
knbhm.exe 实际上相当于一个启动器,根据其它模块启动它的不同参数来处理不同的逻辑,knbhm.exe 可接收的参数如下图所示:
Image-48.png knbhm.exe 接收参数
当 knbhm.exe 以“-url”参数启动时,会根据 safeurl.dat 配置,创建新的进程,劫持用户点击的浏览器,如果用户电脑存在猎豹浏览器,则会以猎豹浏览器启动用户点击的浏览器, 下面以搜狗高速浏览器为例,双击后被猎豹浏览器劫持现象如下图所示:
Image-49.png 劫持用户浏览器
六、 云控锁首 注入到浏览器中的 knb3rdhmpg.dll 模块会通过进程间通信的方式获取锁首配置内容,锁首功能可以通过配置文件进行控制。此配置文件可以通过云控下发更新,其中包含了不同推广渠道的锁首策略。多数的锁定策略都对北京、上海、深圳和广州大城市地区进行规避。受影响的浏览器和推广策略,如下图所示:
Image-50.png 受影响的浏览器
Image-51.png 首页锁定策略
首页锁定 在 Hook InvokeCommand 方法后,如果未触发上述劫持浏览器的条件时,该模块会根据浏览器名称获取内置的字段名,以搜狗高速浏览器为例,获取内置字段“BROWSER_SOGOU”,通过进程间通信发送到“kbasesrv.exe”,从而得到锁首网址。之后便会拼接出新的启动参数,其中 hash 字段后面接的是浏览器路径及启动参数的 hash 值。创建 knbhm.exe 进程相关代码如下图所示:
Image-52.png 拼接启动参数并创建 knbhm.exe 进程
下面以搜狗高速浏览器为例,双击后首页被毒霸导航锁定现象如下图所示:
Image-53.png 毒霸锁定搜狗导航页
锁定新建标签页 注入浏览器中的 knb3rdhmpg.dll 通过 Hook SetWindowTextW 对设置浏览器标题栏内容的调用进行过滤。当用户打开特定浏览器的新标签页时,便会进入锁定流程。该模块通过进程间通信获得新标签页锁定功能是否开启的标记和锁定链接,然后调用 knbhm 模块启动浏览器打开锁定链接,产生一个锁定的新标签页。相关代码,如下所示:
Image-54.png Hook SetWindowTextW 函数
Image-55.png 锁定新建标签页
添加外链 注入到浏览器中的 knb3rdhmpg.dll 模块会在命令行上添加外链。knb3rdhmpg.dll 模块对某些浏览器 hook GetCommandLineW 函数对命令行参数进行处理,在原有链接基础上添加额外的链接。当用户浏览器带有网址参数启动时,该模块便会在后面添加额外的链接。在打开原有页面的同时,打开一个额外的链接页面。相关代码,如下图所示: Image-56.png
Hook GetCommandLineW
Image-57.png 在原有的命令行参数后添加外链
七、 同源分析 除了在驱动精灵投放的 kbasesrv 目录中发现上述恶意模块,我们还在金山旗下其它软件中(例如:金山毒霸、驱动精灵、猎豹浏览器、猎豹 WiFi )发现存在类似的恶意模块。以含有同名文件 kwhcommonpop.exe 为例,解析执行后门指令相似代码如下图所示:
Image-58.png 同源代码分析
八、 附录 样本 hash
Image-59.png