关于Stoned Bootkit v2编译和Bochs调试软盘MBR的吐槽(伤不起啊..)
来源:互联网 发布:建立网络连接 编辑:程序博客网 时间:2024/06/16 21:14
昨天晚上弄着弄着搞到2点多,早上眼睛睁开,6点40,想着问题没解决,很是不爽,脑海里浮现n种方案(n>2),果断下床继续干活.天不负我..泪流满面.终于停在该死的0x7c00上面了..阿西..上图
图片发到微薄上就删了..大家将就着看吧.
下面不是进入正题,今天没有正题,今天就是吐槽...
前几天看群里三哥发了鬼影3的无壳样本,决心分析一下,结果无奈不是exe,只有mbr的饼(bin),无望(现在搞懂调试了可以看看,啊哈哈哈哈哈),网上找资料发现有一个德国的靓仔,把一个bootkit整个放出来了,不过是隔了一段时间的,应该是他参加black hat 2009的时候的产物,最终放出来的版本是v2,2010年年初完成的.mb的人家19岁啊有木有,长得帅啊有木有,年轻有为的黑客啊有木有.应女性观众的要求上作者生活照一张,去求交往吧,Peter Kleissner:
(看着镜子:你这个死宅男,死胖纸...)
Stoned Bootkit,一个强悍的mbr病毒框架吧(用的好了可以用做计算机取证用,所以说mbr病毒框架也不太好),对于bootkit的主题,基本上是asm写的,编译用nasm,编译过程相当吐血,主要是用的工具太多.(Stoned Bootkit v2编译,怎么编译,编译设置,成功编译Stoned Bootkit),关键词骗百度的,大家无视.
看到没有,asm,perl,vs2008,vs2010....未完...瞄的我只有vs2008,里面是说infector工程要用vs2010编译,但是实际上用vs2008就可以了,不过有一些额外的步骤,下面会说到.说点注意事项:
1. Compile the modules,这个没有什么难点,作者提供了nasm,你如果不想加到系统path里面可以学我,copy一下放到system32文件夹下就可以了,这个按步骤运行批处理就OK了.
2. 在Kernel Modules下有一个windows文件夹,里面有release.cmd,运行就可以得到windows.sys
3. Boot Record文件夹下有release.cmd,你懂的
4. 作者的意思是,如果你不会编译驱动,你就不要玩了,注意一下,里面的cl.rsp和link.rsp需要修改WDK的路径,下面是我的版本,你可以照着改,就是改成你WDK文件夹路径,我是用绝对路径:
在编译Exe Loader的时候需要用到一个Loader Shellcode.cpp的文件,这个文件是利用perl脚本bin2hex.pl对Loader Shellcode.sys进行shellcode的提取,如下,你也可以用winhex自己提取,如图,最终记得把变量名改为bin_data1就可以了
这样就能顺利编译完驱动模块了.
5.作者的工程项目使用的是vs2010建的,但是里面会用到vs2008的一些东西,你即使是在vs2010下编译也不会成功,在vs2008当中我们自己新建工程,然后把文件添加进来,我们需要编译两个工程,一个是attach file工程,生成一个attach file.exe,这个是用来将模块的bin文件绑定进infector.exe里面的,另外一个工程就是infector.exe咯,这个需要用release方式编译,如图:
编译完之后复制回去Infector文件夹下的release文件夹,attach file.exe也复制进去,之后运行路径下的Attach File.cmd,把各个模块和MBR添加进去,之后得到的infector.exe就是内啥,你懂的.
我没仔细看源代码,不过可以肯定的是,源代码当中对各个模块的注入(磁盘前63个扇区)可能不够完整,这个研究研究再跟大家分享.在infector里面对时间做了判断,如果不是2010年和大于2010年1月程序就不进行写mbr,大家自己找下这部分代码修改一下再编译吧.我懒,直接用OD patch,因为一开始没反应,我用OD调了才知道有判断时间.代码在function v2.cpp那个文件里,不要跟我说你找不到(找不到你就不要玩咯,啊哈哈哈哈哈)
到了这里基本就ok了,可以试试效果了,但是编译出来的infector.exe是不完美的,要继续研究研究,上图
接下来聊一聊怎么用bochs调mbr.其实网上有位Cryin前辈已经给出了很详细的说明,但是是基于安装了系统的,我使用的方法是调试软驱的mbr,软驱知道吧.这个已经被淘汰的产物,1.44MB的磁盘,A:/有木有啊,泪流满面.Cryin前辈的两篇文章链接,有爱的同学请猛击:
http://bbs.pediy.com/showthread.php?p=881161
http://bbs.pediy.com/showthread.php?t=121797
如何利用Bochs调试软驱的mbr(bochs调试mbr,软驱调试,方法,步骤),又是关键字,为什么要说个又字..
其实很简单啦,只是你按照网上资料,各种复杂各种情况,只能一个个试,而且我最后才知道自己是配置文件的问题,蛋疼.
1.首先就用bximage.exe创建一个1.44M的文件,在一开始选hd还是fd的时候选fd(hd是默认),我建议是不要直接生成后缀名为img的文件,生成bin文件,把mbr写进去之后再改成img就可以了(因为winhex会认img文件,修改的时候各种蛋疼).
2.用16进制编辑器把你要调试的mbr复制到1.44文件的开头处就OK了
3.之后是修改配置文件,参考我的:
网上有一些教程使用的是romimage: file=BIOS-bochs-latest, address=0xf0000这样一句,但是在2.3.5的bochs之后,BIOS长度增加为128k,如果加入address这句会提示Message: ROM: System BIOS must end at 0xfffff,里面的passwd.img是用来调试Cryin前辈的MBR密码程序,晒图:
增加一个批处理,用于调试:
至此,已经可以调试MBR了,具体的调试命令可以参考tk教主文章: http://www.xfocus.net/releases/200408/a722.html
当然如果想要调bootkit,还是要在brchs里面装个XP的才好..据闻装起来要20+个小时.无力...
- 关于Stoned Bootkit v2编译和Bochs调试软盘MBR的吐槽(伤不起啊..)
- 关于 bochs 和 bochs 调试
- 使用bochs调试MBR
- 使用BOCHS调试MBR
- IDA&&BOCHS调试MBR
- Stoned Bootkit v2学习笔记之infector(友情赠送SBv2磁盘布局介绍)
- Stoned Bootkit v2学习笔记之infector(友情赠送SBv2磁盘布局介绍)
- 解决Bochs调试时软盘无法加载的问题
- [Bootkit]开源Bootkit技术(四)Stoned Bootkit
- 用bochs调试mbr--开始调试啦
- 用bochs调试mbr-初步调试
- bochs 2.2.6 编译和GDB调试
- 用bochs调试mbr-深入mbr调试分析
- 关于 bochs 和 bochs 调试 键盘不响应
- 用bochs调试mbr--安装问题
- Bochs下编译linux0.11版本插入软盘启动的方式(转)
- 基于MBR 的bootkit的进展 鬼影-TDL4-BMW
- 关于bochs调试linux的原理解读
- selenium录制百度3D地图
- WRK Compile
- c 语言错误分析
- 淘宝分拆为三家独立公司:淘宝、商城和一淘
- VC2005编译出现莫名奇妙的错误
- 关于Stoned Bootkit v2编译和Bochs调试软盘MBR的吐槽(伤不起啊..)
- 简单的乱序算法
- 《人民日报》:支付宝“易主”,无奈还是贪婪
- 既是老师又是师兄的临别箴言
- 《人的一生》
- RedHat Linux AS 5下memcached的安装
- 程序设计之指针
- 堆排序
- 2011-06-17