360反病毒工程师对BMW病毒技术分析如下:
BMW病毒主体分为BIOS、MBR和Windows三个部分,攻击流程如下图:
一、BMW病毒BIOS部分
增加了ISA模块BIOS部分,名为HOOK.ROM,作用主要是通过检测MBR部分是否被恢复。如果发现MBR部分已被修复,就将BIOS内的病毒代码约 14个扇区写入MBR中,导致用户反复格式化、高格低格,或重新分区都无效。
Bios内的检测代码如下:
检测MBR偏移0X92处4个字节是否为int1来判断MBR是否被还原了,如果不是这个数值,则直接从BIOS里重写MBR其他部分的病毒代码到磁盘开始扇区。
二、BMW病毒MBR部分
MBR部分病毒代码执行后,会从第2个扇区开始读6个扇区的病毒代码到0X7C00处,然后跳至该处执行,然后读取第7个扇区中的备份 MBR到内存中,验证扇区的有效性;
通过验证后,读取分区表中的引导扇区所在的扇区到 0X7C00处,验证引导分区的有效性;
通过验证后,判断引导分区的类型,目前该病毒支持NTFS和 FAT32,根据不同的分区类型进行不同的处理,再经过解析文件系统找到文件所在扇区,找到相应的Windows系统文件读取PE信息判断其是否被感染过。(XP/2003系统为Winlogon.exe,Win7/Vista系统为Wininit.exe)
如果Windows系统文件已被感染,则在屏幕上显示”Find it OK!”,然后调入原始MBR,跳到原始MBR处执行;如果Windows系统文件没有被感染,则进行PE感染写扇区,之后在屏幕上显示”Find it OK!”,然后调入原始MBR,跳到原始MBR处执行。
三、BMW病毒Windows部分(Winlogon和Wininit文件执行感染)
以Winlogon.exe为例进行说明:
由于病毒修改了该文件入口点,当文件执行时首先执行加密过的病毒代码,运行时动态解码。
病毒代码解密后加载指定文件,创建病毒调用CreateThread创建线程,同时跳回原始入口点执行。
在病毒线程里先Sleep10秒,然后调用URLDownloadToFileA从黑客服务器下载一个Downloader到本地,验证文件下载成功后,调用WinExec执行,从而下载运行多种恶意程序;该病毒还会下载驱动,命名为c:my.sys,由之前的病毒代码通过一系列服务函数来创建加载驱动,完成后该病毒线程进入无限Sleep状态,my.sys为一个磁盘类驱动disk.sys的HOOK 驱动,通过HOOK了磁盘的读写操作等,让所有对MBR的读取和写入都达不到真正的效果。
安全软件针对基于MBR的BOOTKIT防御和查杀
一般而言,具备“主动防御”功能的安全软件通过拦截RING3应用层对MBR区域的写操作,并阻止恶意驱动的加载,均可防御MBR BOOTKIT。用户在开启安全软件防御的前提下,基本不会感染BMW、鬼影等MBR BOOTKIT。
糟糕的是,MBR BOOTKIT总是和社会工程攻击手段结伴出
现。比如你想用一个热门游戏外挂获得快速升级和精良装备,又或者想弄一个收费软件的“注册机”,它们经常会提醒你先关闭安全软件,MBR BOOTKIT就在此时趁虚而入,请神容易送神难。
最早期的鬼影系列,当时杀软对这种基于MBR 的BOOTKIT缺乏针对性措施,从而在进行病毒扫描的时候,没有去扫描MBR区域,所以病毒也没有对该区域做任何保护,基本上直接读取MBR,就可以获得真实的数据,然后根据内部定义的特征码,恢复成原始的MBR。
但从鬼影3以后,随着各个杀软增加对MBR区域的检测,MBR木马也进行了相应的保护,比如鬼影3的挂钩磁盘端口驱动的startio地址来拦截所有对MBR的修复,导致所有修复操作,在中毒状态下完全无效。又比如TDL4等,也进行了HOOK处理,让杀软读不到真正的MBR。当任何程序对MBR区域读取的时候,木马会返回一个虚假的MBR给杀软,欺骗其认为是正常的MBR。除此之外,该ROOTKIT还创建了监视线程,检测其对象HOOK,及MBR是否被恢复,如果发现被恢复,则重新感染MBR.
BMW木马则更进一步,加入了BIOS中的修复操作,即使在WINPE模式或DOS模式下恢复MBR,在系统重启的时候还是被隐藏于BIOS 中的木马代码所恢复,修复难度相当高。
对于已经感染MBR BOOTKIT的电脑,360系统急救箱提供了MBR检测修复工具(顽固引导木马专杀),专门用来检测和修复被感染的MBR。
这个修复操作相比清除普通顽固木马更复杂些,需要配合360系统急救箱的强力模式使用,可以查杀BMW、TDL4、鬼影系列等目前已知的MBR BOOTKIT并修复系统。
360急救箱包括32位版和原生64位版本,全面支持WINXP,VISTA WIN7,WIN8,及WIN7 64位,WIN8 64位。还支持WINPE,可以到以下地址下载相应的版本。
http://www.360.cn/jijiuxiang/index.html
对于BMW的BIOS修复,可以使用专门的BMW BIOS修复工具,修复BIOS后,再用急救箱扫描修复MBR和WINDOWS系统文件即可。
可以在这里下载BMW BIOS 的修复工具。
http://bbs.360safe.com/thread-22137-1-1.html
360系统急救箱处理BMW病毒的操作截图如下: