七月底,一种名为“异鬼Ⅱ”的木马在全网大肆传播。一个多月过去了,风声渐渐平息,之前本来准备专门就这个木马写一篇博客的,结果拖到现在,幸好时间隔得还不算太久。闲话不多说,回到正题。

虽然腾讯电脑管家已经很早就做出了相应的更新,并同时推出了“异鬼Ⅱ”病毒的专杀固件,但还是有不少电脑中招,所幸因为该病毒的特殊属性,没有造成太大的经济损失。下面我就详细介绍一下这种病毒。

“异鬼Ⅱ”大体上的工作特点是:通过知名刷机软件——“甜椒刷机”、“奇兔刷机”、“绿豆刷机”感染电脑VBR(卷引导记录),感染后使电脑沦为肉鸡,具有篡改浏览器主页、劫持导航网站、后台刷流量等恶意行为特点,即使用户重装系统,也无法清除。

这里涉及到一个词,VBR(卷引导记录),由于百度百科并没有收录卷引导记录的词条,我于是去维基百科找到了VBR的详细介绍:

A Volume Boot Record (VBR) (also known as a volume boot sector, a partition boot record or a partition boot sector) is a type of boot sector introduced by the IBM Personal Computer. It may be found on a partitioned data storage device such as a hard disk, or an unpartitioned device such as a floppy disk, and contains machine code for bootstrapping programs (usually, but not necessarily, operating systems) stored in other parts of the device. On non-partitioned storage devices, it is the first sector of the device. On partitioned devices, it is the first sector of an individual partition on the device, with the first sector of the entire device being a Master Boot Record (MBR) containing the partition table.

The code in volume boot records is invoked either directly by the machine's firmware or indirectly by code in the master boot record or a boot manager. Code in the MBR and VBR is in essence loaded the same way.

Invoking a VBR via a boot manager is known as chain loading. Some dual boot systems, such as NTLDR (the boot loader for all releases of Microsoft's Windows NT-derived operating systems up to and including Windows XP and Windows Server 2003), take copies of the bootstrap code that individual operating systems install into a single partition's VBR and store them in disc files, loading the relevant VBR content from file after the boot loader has asked the user which operating system to bootstrap. In Windows Vista, Windows Server 2008 and newer versions, NTLDR was replaced; the boot loader functionality is instead provided by two new components: WINLOAD.EXE and the Windows Boot Manager.

译成中文是这样的(谷歌翻译过来的,感觉没有太大的问题,所以只做了一点修改,基本保留了原文):

卷启动记录 (VBR) (也称为卷启动扇区、分区启动记录或分区引导扇区) 是 IBM 个人计算机引入的一种引导扇区类型。它可以在分区数据存储设备 (如硬盘) 或未分区设备 (如软盘) 上找到, 并包含存储在设备其他部分的引导程序 (通常但不一定是操作系统) 的机器代码。在无分区存储设备上, 它是设备的第一个扇区。在分区设备上, 它是设备上单个分区的第一个扇区, 整个设备的第一个扇区是包含该分区表的主引导记录 (MBR)。

卷启动记录中的代码由计算机的固件直接调用, 也可以由主启动记录或引导管理器中的代码间接引用。在 MBR 和 VBR 中的代码实质上是以相同的方式加载的。

通过启动管理器调用 VBR 称为链加载。某些双引导系统 (如 NTLDR (Microsoft windows NT 派生的操作系统的所有版本的启动加载程序 (包括 windows XP 和 windows Server 2003)) 将单个操作系统安装到的引导代码副本复制到单个分区的 vbr 并将它们存储在光盘文件中, 在引导加载程序要求用户引导操作系统后, 从文件中加载相关的 vbr 内容。在 windows Vista 中, windows Server 2008 和更新版本, NTLDR 被替换;引导加载程序功能由两个新组件提供:WINLOAD.EXE 和 Windows 启动管理器。

这里有两点要提到。其一,虽然在百度搜索卷引导记录会直接指向MBR的内容,但VBR和MBR并非同一种目录,二者的相同点仅仅是——储存引导代码,代码以同样的方式加载。红字也说明了,VBR是设备单个分区的第一扇区包含的内容,而MBR是整个设备的第一扇区包含的内容,二者并不对等。其二,VBR储存的引导代码是操作系统的启动加载程序,换言之,VBR是在操作系统之前加载的内容。

通常,我们将包含MBR引导代码的扇区称为主引导扇区。因这一扇区中,引导代码占有绝大部分的空间,故而将习惯将该扇区称为MBR扇区(简称MBR)。由于这一扇区承担有不同于磁盘上其他普通存储空间的特殊管理职能,作为管理整个磁盘空间的一个特殊空间,它不属于磁盘上的任何分区,因而分区空间内的格式化命令不能清除主引导记录的任何信息。这也使得“异鬼Ⅱ”入侵后非常顽固,不能通过传统的格式化或者重装系统的方法清除病毒。

而“异鬼Ⅱ”真正能够大肆传播,一方面是因为VBR主要负责用户电脑操作系统引导程序的加载,比Windows操作系统更早启动,一旦VBR被感染,杀毒软件将很难检测出来;另一方面由于此次“异鬼Ⅱ”木马为正规软件公司所开发,并具有官方的数字签名,不少安全厂商将其加入意味着安全的“白名单”中,大多数杀毒软件无法检测到该木马的存在。

实际上,“异鬼”并非今年暑期才真正出现,在几年前就已经有不少杀软报出感染电脑VBR的“异鬼”病毒。通常认为“异鬼”第一代在2016年8月出现,其实早在2010年7月就已经被报出“异鬼”变种dlv,而在今年7月,“异鬼Ⅱ”挂载在高速下载器和不少知名刷机软件上,悄然潜入众多用户的电脑。

初代“异鬼”木马通过Ghost装机以及游戏外挂等渠道传播,成功感染电脑后,会执行劫持用户浏览器主页和推广安装流氓软件等恶意行为。除此之外,刚刚过去的传播量级逾百万的暗云系列木马也应用了Bootkit技术。这里又出现了一个新概念:什么是BootKit?

Bootkit是更高级的Rootkit,该概念最早于2005年被eEye Digital公司在他们的“BootRoot"项目中提及,该项目通过感染MBR(磁盘主引记录)的方式,实现绕过内核检查和启动隐身。可以认为,所有在开机时比Windows内核更早加载,实现内核劫持的技术,都可以称之为Bootkit,例如后来的BIOS Rootkit,VBootkit,SMM Rootkit等。(以上摘自MJ0011《高级Bootkit——tophet》)

对于Bootkit,一旦它获得执行机会,它会比操作系统更早被加载,从而对杀毒软件后续的有效查杀造成很大的挑战,有时这种挑战甚至是强弱悬殊的。然而,如果把Bootkit加载的完整流程进行综合考虑,则在其获得执行机会之前,杀毒软件仍然有不少的机会将其扼杀于摇篮之中,这是建立在一个前提,即杀毒软件永远比病毒先被安装到系统里。

因此,要对付Bootkit,不应该单纯从Bootkit被执行后的行为着眼,而应该以全局的观念,从源头到结果各个环节综合把关,也就是提高安全软件的全程综合监控能力,一旦在这个过程中Bootkit程序(或安装Bootkit的原始病毒体)的行为被病毒软件有效拦截,那么杀毒软件仍然可以与之一战。

· 相关链接:

· Volume Boot Record -- Wikipedia

https://en.wikipedia.org/wiki/Volume_boot_record

· 腾讯电脑管家 --“异鬼Ⅱ”来袭

https://guanjia.qq.com/avast/25/index.html

· 腾讯安全实验室 -- 警惕!“异鬼Ⅱ”木马藏身甜椒刷机软件,百万用户电脑中招!

http://www.sohu.com/a/159827249_740948

· 主引导记录 -- 百度百科

https://baike.baidu.com/item/%E4%B8%BB%E5%BC%95%E5%AF%BC%E8%AE%B0%E5%BD%95/7612638?fr=aladdin

· 异鬼 -- 百度百科

https://baike.baidu.com/item/%E5%BC%82%E9%AC%BC/22045542

· 异鬼Ⅱ -- 百度百科

https://baike.baidu.com/item/%E5%BC%82%E9%AC%BC%E2%85%A1/22045253?fr=aladdin

· BootKit -- 百度百科

https://baike.baidu.com/item/BOOTKIT/10871889?fr=aladdin

BootKit病毒——“异鬼Ⅱ”的前世今生的更多相关文章

  1. 权力的游戏第七季/全集Game of Thrones迅雷下载

    艾美及金球奖获奖HBO原创剧集<权力的游戏>第七季将于2016年夏天晚些时候开拍.新的一季共有七集,主要拍摄地为北爱尔兰,部分镜头也将在西班牙和冰岛取景.上映时间预计将略有推迟,至2017 ...

  2. 2019CSUST集训队选拔赛题解(二)

    凛冬将至 Description 维斯特洛大陆的原住民是森林之子,他们长得如孩童一般,善于使用石器,威力值35,用树叶树枝作为衣物,在森林里繁衍生息,与万物和平相处.他们会使用古老的魔法(比如绿之视野 ...

  3. Go语言基础之并发

    并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很重要的原因. Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天) ...

  4. Go语言 - goroutine

    并发与并行 并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天). 并行:同一时刻执行多个任务(你和你朋友都在用微信和女朋友聊天). Go语言的并发通过goroutine实现.goroutin ...

  5. GO学习-(18) Go语言基础之并发

    Go语言基础之并发 并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很重要的原因. Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(你在用微 ...

  6. Go语言中的并发编程

    并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很重要的原因. Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天) ...

  7. Go语言系列之并发编程

    Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(宏观上并行,微观上并发). 并行:同一时刻执行多个任务(宏观和微观都是并行). Go语言的并发通过goroutine实现.gorout ...

  8. Python趣味入门9:函数是你走过的套路,详解函数、调用、参数及返回值

    1.概念 琼恩·雪诺当上守夜人的司令后,为训练士兵对付僵尸兵团,把成功斩杀僵尸的一系列动作编排成了"葵花宝典剑法",这就是函数.相似,在计算机世界,一系列前后连续的计算机语句组合在 ...

  9. Go_Goroutine详解

    Goroutine详解 goroutine的概念类似于线程,但 goroutine是由Go的运行时(runtime)调度和管理的.Go程序会智能地将 goroutine 中的任务合理地分配给每个CPU ...

随机推荐

  1. JSP制作简单登陆

    JSP制作简单登陆界面 运行环境 eclipse+tomcat+MySQL 不知道的可以参考Jsp运行环境--Tomcat 项目列表 这里我先把jsp文件先放在Web-INF外面访问 需要建立的几个文 ...

  2. 完整版百度地图点击列表定位到对应位置并有交互动画效果demo

    1.前言 将地图嵌入到项目中的需求很多,好吧,我一般都是用的百度地图.那么今天就主要写一个完整的demo.展示一个列表,点击列表的任一内容,在地图上定位到该位置,并有动画效果.来来来,直接上demo  ...

  3. Hexo博客添加SEO-评论系统-阅读统计-站长统计

    原文地址:→传送门 写在前面 在五月出捣腾了一把个人博客,但是刚开始只做了一些基础设置,套路也没摸清,基础安装篇请看hexo从零开始到搭建完整,里面讲到了基础工具的安装及blog项目的文件夹含义,以及 ...

  4. 9. leetcode 389. Find the Difference

    Given two strings s and t which consist of only lowercase letters. String t is generated by random s ...

  5. 成为Java顶尖程序员 ,看这11本书就够了(转)

    学习的最好途径就是看书",这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两点好处: 1.能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的 ...

  6. C#使用HttpClient获取Location

    之前使用HttpWebRequest的时候,只需要设置HttpWebRequest对象的AllowAutoRedirect属性值为false即可在Respomse的Header中获取Location: ...

  7. Python查询SQLserver数据库备份(抛砖引玉)

    通过python pymssql直接访问SQLserver数据库,查找其数据库mode,这个脚本具有很强的抛砖引玉特性: 1.可以巡检多台多数据库服务器 2.query内容可以多样化,譬如查询死锁.连 ...

  8. VS 2017开发插件

    codemaid 代码清洁工具 commentsPlus 注释以斜体方式展示,并提供额外的注释格式 viasfora 尖括号颜色设置 reshaper 必备

  9. 为IE8添加EventListener系列方法支持

    在低版本IE中添加DOM元素事件可以使用attachEvent方法.但是用它模拟addEventListner还要解决一些问题.主动触发事件的API设计逻辑不同,需要处理的地方比较多.fireEven ...

  10. [H5]range对象的clone方法

    clone:range对象的克隆; <body> <p id="p">这是一段文字</p> <button onclick="b ...