当前位置: 首页 > news >正文

kbasesrv篡改主页分析

人马座实验室 · 2016/04/29 14:33

0x00 前言


话说最近浏览器首页莫名其妙变成了金山毒霸网址大全,本来以为是运营商劫持,但仔细排查一遍,才发现是一个名叫kbasesrv的程序在搞鬼,它的数字签名是“Beijing Kingsoft Security software Co.,Ltd”,确定是金山旗下的软件无疑。

主页劫持本来已经见怪不怪了,一般是推广联盟的渠道商为了赚钱而各种手段无所不用其极,但是像金山这样的名门大厂亲自动手偷偷摸摸篡改主页的,还真是比较少见。今天是429首都网络安全日,一家安全公司却干起了流氓软件的行当,不能不说是一种莫大的讽刺。

0x01 分析


闲话少叙,接下来深入扒一扒kbasesrv究竟是怎样偷偷篡改主页的:

程序MD5:318330C02C334D9B51F3C88027C4787C

程序SHA1:A6253F2C2DE7FB970562A54ED4EC0513BE350C66

该程序由金山旗下软件静默下载安装到电脑里,并用特定参数启动。参数形式如下:

-tid1:30 -tid2:10 -tod1:24 -tod2:27 -xxlock:68_upd3

其中前面的tid1、tid2、tod1、tod2这4个参数固定不变。最后一个xxlock参数会根据推送软件的不同而有所不同,根据网上搜集相关情况和实测验证,目前发现的推广参数统计结果如下:

-xxlock参数值对应发起推广的软件
68_upd金山词霸
68_upd2PPT美化大师
68_upd3WPS
88dg_upd驱动精灵

给参数后,软件全程静默安装并篡改首页(无参数情况下启动也是静默安装,但不篡改首页)。仅仅是在桌面上释放一个名为“网址导航”的快捷方式。

而这是快捷方式对应的程序目录(目录内所有可执行程序均带有有效的金山公司数字签名,这里就不一一贴出了):

当然,必须要承认该软件还是非常“守规矩”地在系统的“添加/删除程序”面板中放置了对应的卸载项的(至于用户能不能猜到是这个kbasesrv,他们可能就不是特别关心了)。

双击打开桌面的快捷方式,会启动IE浏览器并访问“毒霸网址大全”:

至此,如果仅仅是释放一个快捷方式,推广一下自己的导航站,或许还情有可原,但事情并不这么简单。该程序还在系统的桌面进程(explorer.exe)中注入了自己的三个dll文件用以劫持桌面操作——尤其是劫持用户双击运行程序的操作。

其中最下面的“knb3rdhmpg.dll”文件(MD5:5A2CCE5BF78C8D0D8C7F9254376A2C46; SHA1: F1EDBCA2065B0B951344987B59F33387804F32BA)中更是大大方方的直接硬编

码了待推广的网址:

同时也列出了大量需要“特别对待”的程序:

为了验证效果,特意在测试机器中安装了几个比较有代表性的浏览器。可以看到所有快捷方式后面都是没有任何启动参数的,也就是说在干净的环境里双击启动这些浏览器,他们都会打开默认的主页:

但是在双击运行这些浏览器的时候,打开的主页却都变成了“毒霸网址大全”

手法则很简单,因为已经注入了桌面进程,所以只需要在用户双击启动浏览器的时候,悄悄的在桌面进程向对应浏览器主程序发送启动消息的时候插入一条参数就万事大吉了:

0x02 结语


所谓能力越大,责任越大。安全软件作为系统的守护神,名正言顺地拥有系统的高权限,也背负着众多用户的信任。金山却偷偷动用旗下多款软件静默安装流氓软件,而很多用户还蒙在鼓里,不知道该怎么设置回自己习惯的主页。

若要人不知,除非己莫为。我就想问问金山,无论kbasesrv强奸了多少主页,为金山增加了多少收入,与丢掉的那些用户信任相比,真的值得吗?

相关文章:

  • 陈皓:如何测试洗牌程序
  • Object转Integer,String
  • 解析 Webpack中import、require、按需加载的执行过程
  • Android使用TextView,设置onClick属性无效解决办法
  • Python:SMOTE算法——样本不均衡时候生成新样本的算法
  • 前端之css
  • Quicklz压缩算法
  • CMD命令
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • mysqli简介
  • hibernate多对多
  • QASymphony发布新的中心化自动测试及行为驱动测试产品
  • Reac 学习 初识(一)
  • ThinkPHP3 2 国际化功能实现
  • VR版《五十度黑》尺度大?心疼被套路的观众
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • Bootstrap JS插件Alert源码分析
  • CSS 三角实现
  • Electron入门介绍
  • Js基础知识(四) - js运行原理与机制
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • python学习笔记-类对象的信息
  • Spark学习笔记之相关记录
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 理解在java “”i=i++;”所发生的事情
  • 力扣(LeetCode)965
  • 前端面试之闭包
  • 前端学习笔记之观察者模式
  • 区块链技术特点之去中心化特性
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 线上 python http server profile 实践
  • Java数据解析之JSON
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • UI设计初学者应该如何入门?
  • ​2020 年大前端技术趋势解读
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (3)llvm ir转换过程
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (libusb) usb口自动刷新
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (论文阅读11/100)Fast R-CNN
  • (四)模仿学习-完成后台管理页面查询
  • (转)JAVA中的堆栈
  • (转)菜鸟学数据库(三)——存储过程
  • (转载)OpenStack Hacker养成指南
  • .apk 成为历史!
  • .mysql secret在哪_MySQL如何使用索引
  • .NET Core 项目指定SDK版本
  • .net 按比例显示图片的缩略图
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .Net各种迷惑命名解释