MyException - 我的异常网
当前位置:我的异常网» 信息/网络安全 » BootKit病毒——“异鬼Ⅱ”的上辈子今生

BootKit病毒——“异鬼Ⅱ”的上辈子今生

www.MyException.Cn  网友分享于:2013-10-11  浏览:0次
BootKit病毒——“异鬼Ⅱ”的前世今生

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

 

 

 

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

 

“异鬼Ⅱ”大体上的工作特点是:通过知名刷机软件——“甜椒刷机”、“奇兔刷机”、“绿豆刷机”感染电脑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

文章评论

“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
如何成为一名黑客
如何成为一名黑客
鲜为人知的编程真相
鲜为人知的编程真相
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
那些争议最大的编程观点
那些争议最大的编程观点
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
代码女神横空出世
代码女神横空出世
一个程序员的时间管理
一个程序员的时间管理
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
程序员必看的十大电影
程序员必看的十大电影
程序员的鄙视链
程序员的鄙视链
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
10个调试和排错的小建议
10个调试和排错的小建议
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
我的丈夫是个程序员
我的丈夫是个程序员
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
中美印日四国程序员比较
中美印日四国程序员比较
每天工作4小时的程序员
每天工作4小时的程序员
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
程序员应该关注的一些事儿
程序员应该关注的一些事儿
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
老程序员的下场
老程序员的下场
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
旅行,写作,编程
旅行,写作,编程
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
 程序员的样子
程序员的样子
程序员和编码员之间的区别
程序员和编码员之间的区别
编程语言是女人
编程语言是女人
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
为什么程序员都是夜猫子
为什么程序员都是夜猫子
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
Java程序员必看电影
Java程序员必看电影
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有