一个Bootkit样本的逆向分析
标 题: 【原创】一个Bootkit样本的逆向分析作 者: denglifeng
时 间: 2010-01-21,22:54:21
链 接: http://bbs.pediy.com/showthread.php?t=105669
样本名为:1.exe
Bootkit类型: 基于MBR的Bootkit
分析过程用到的相关知识: 保护模式和实模式下汇编语言、BIOS中断服务、多级HOOK技术、内核、NTLDR等等
分析用到的工具:IDA(主要静态分析Bootkit)、Windbg和Bochs(主要是用于动态调试这个Bootkit)
首先介绍一下这个样本黑盒后的症状: 感染MBR(感染的具体形式为:真正的MBR被挪到了第63个扇区,Bootkit启动模块的代码在第1、61、62个扇区。);直接在硬盘上写入了一个驱动(这种写入不是普通的在磁盘上释放一个文件,在系统的文件系统里面是看不见这个驱动的,在我实验的虚拟机上是写入了未分区的空间中,通过Winhex工具可以查看到);生成一个DLL并运行然后10分钟后自动关机。以上这些是黑盒后主要的特征,还有些特征这里不再细说了。
Bootkit的相关概念: Bootkit是一种比较新的技术,这个概念最早是在2005年由eEye Digital安全公司在他们的“BootRoot"项目中提及的。所有在开机时比Windows内核更早加载,实现内核劫持的技术,都可以称之为Bootkit。Bootkit主要是利用其内核准入和开机过程的隐身技术,在功能上无异于Rootkit。传统的Rootkit利用系统启动时提升权限,而Bootkit主要被安置在外设的主引导扇区(也有放于Ntldr文件、BIOS中的Bootkit)并驻留在整个系统的启动过程。Bootkit属于Rootkit的一种,但它却是更加高级的Rootkit,因为其存放于主引导扇区、启动文件之类地方,在操作系统启动之前驻留内存并内核运行之前劫持内核。 (http://bbs.pediy.com/images/smilies/tongue.gif 这里科普一下哈!)
本文主要是分析这个Bootkit样本启动模块的代码。也就是感染MBR后第1、61、62个扇区的代码。这三个扇区的代码中,第1个扇区的代码是实模式下的汇编语言,第61、62个扇区是保护模式下的汇编语言,所以在用IDA分析的时候要进行选择,至于这三个扇区的代码我是直接用Winhex截取出来然后进行逆向分析的。
这个Bootkit的启动代码主要用了三级HOOK,分别为HOOK INT13h、HOOK NTLDR的特征码,HOOK内核的特征码。下面将主要分析这三级HOOK的行为。
由于分析的过程有点多,在加上第一次发帖,图不知道怎么弄上去,所以具体的分析过程在附加里面。第一次发文章,写得不好,大家不要向我扔砖头哈!http://bbs.pediy.com/images/smilies/tongue.gif
附件的内容为:Bootkit样本和Bootkit分析的文档 沙发:lol………… 黑米粒的强帖,留名一下:lol 现在才知道什么叫做没时间,来了认真的看。。。 这文我看着眼熟,好像是MJ0011 在安全焦点峰会上的演讲题文 支持楼主。学习了 现在bootkit越来越流行了。 看不懂啊。 用到好多东西啊,太深奥了 管理员真强, 学习了。