- 等级
- 暗黑组织
- 等级进度
- 积分
- 3004
- 阅读权限
- 100
- 主题
- 精华
- 社区币
- 星梦
- 注册时间
- 2004-8-3
- 最后登录
- 1970-1-1
|
<div class="postTitle"><a href="http://blog.csdn.net/zhbchn/articles/1532037.aspx"><img height="13" src="http://blog.csdn.net/images/zhuan.gif" width="15" border="0" alt=""/> 老病毒再现新系统--警惕恶意代码死灰复燃,(NTDETECT.EXE,NTDETECT.COM)</a>
5 V( t1 f* G, y [ </div><div class="postText"><table class="table-line" bordercolor="#cccccc" height="100%" cellpadding="2" width="100%" bgcolor="#e9e9e9" border="0"><tbody><tr><td align="center"><font color="#808080" style="FONT-SIZE: 13px;">时间:2005-5-14 作者:张云帆</font></td></tr><tr><td valign="top"><div align="center"> </div><div align="center"> </div><div> 在DOS/Win3.x/Win9x时代,令人谈之色变的病毒数不胜数。有很多病毒具有能够破坏硬盘分区,篡改引导程序,毁坏CMOS数据的能力。它们轻则使磁盘的数据化为乌有,重则使系统无法识别分区,无法进入DOS或者Win9x,甚至还能让微机无法正常启动。不知道当年有多少用户,被臭名昭著的硬盘逻辑锁,CIH折腾得焦头烂额。</div><div> </div><div> </div><div> 然而,幸运的是,进入Win2000/XP/2003时代以后,由于系统是工作在保护模式之下的,对于一切调用BIOS中断功能以修改硬盘或者是直接对硬件端口进行操作的程序,系统都拒绝执行。比如说这样一个16位程序(名为test1.com,初始指令指针为0x100):</div><div>mov ax,301</div><div>mov bx,300</div><div>mov cx,9</div><div>mov dx,80</div><div>int 13</div><div>ret</div><div>(上面代码中的数据均为16进制数)</div><div> </div><div> 它试图利用BIOS的磁盘控制中断功能直接对硬盘进行写操作,一旦在Win2000/XP/2003下运行,系统会弹出这一个错误信息。(<font color="#ff0000">有兴趣的自己可以把文件保存成test.com,运行一下试试</font>)</div><div></div><div> </div><div> 此时,无论是点击“关闭”,还是点击“忽略”,这个程序对BIOS功能调用的尝试都会被系统强行终止。而在DOS/Win3.x/Win9x时代,那些破坏硬盘分区、篡改引导程序之类的病毒,往往会调用前文中test1.com所调用的磁盘控制BIOS功能。因此这些病毒如果直接运行在Win2000/XP/2003系统之上,它们将会无功而返。</div><div> </div><div> 再比如,这样一个32位程序(名叫port.c用VC++编译后生成port.exe):</div><div> </div><div>#include<stdio.h></div><div>main()</div><div>{</div><div> printf("It is only for test!\n");</div><div> __asm</div><div> {</div><div> push eax</div><div>mov al,4</div><div> out 0x70,al</div><div> mov al,1</div><div> out 0x71,al</div><div> mov al,2</div><div> out 0x70,al</div><div> mov al,2</div><div> out 0x71,al </div><div> mov al,0</div><div> out 0x70,al</div><div> mov al,3</div><div> out 0x71,al</div><div> pop eax</div><div> }</div><div>return 0;</div><div> </div><div>}</div><div> </div><div> </div><div> 它试图通过直接进行端口操作来修改CMOS的时间(如果运行成功,时间将被改为01:02:03)。一旦在Win2000/XP/2003下运行,系统会弹出这样一个报错提示。(<font color="#ff0000">有兴趣的自己可以把文件保存成test.com,运行一下试试</font>)</div><div> </div><div> 可以看出它试图修改CMOS的举动也同样被拒绝了。因此,那些在老系统中通过端口操作来毁坏CMOS数据的病毒在新系统下只能望“窗”兴叹了。</div><div> </div><div> </div><div> 看来这类直接破坏硬盘、CMOS的病毒在Win2000/XP/2003下真是过时了。而现在主流的操作系统正是Win2000/XP/2003,大家似乎不用再害怕这些DOS/Win3.x/Win9x病毒了。</div><div> </div><div> </div><div> 看到这儿一定会有人情不自禁地说:这些病毒老矣,没用了!不过别高兴的太早了!在特定的情况下,这些能够破坏硬盘、CMOS数据的病毒的功能可以再现于在Win2000/XP/2003系统,完成其害人的勾当。所以本文提醒大家:警惕这些病毒死灰复燃!</div><div> </div><div> </div><div> 那么读者一定会问,刚才不是说Win2000/XP/2003是工作在保护模式下的吗?怎么会怕这种能够破坏硬盘、CMOS数据的病毒呢?没错,在Win2000/XP/2003启动完成之后,的确工作在保护模式下,但在刚开始启动时有一个短暂的“危险期”。此时,Win2000/XP/2003会首先加载C:\Ntldr,加载完成后会出现供用户选择系统的画面(如果不是多系统,该画面会很快跳过)。</div><div> </div><div> 当用户在自己选定的Win2000/XP/2003系统上按下回车后,系统会加载C:\NTDETECT.COM文件(如果不是多系统,则Windows不等用户按回车自动加载C:\NTDETECT.COM文件)。问题恰恰出在这里。在刚启动到如图3所示的时候,系统还没有进入保护模式,如果恶意破坏硬盘、CMOS数据的程序在这个时候运行,那用户就遭殃了。这绝非杞人忧天之虑,虽然这个时候无论是远程还是本地都无法随意运行程序,但是,如果用户新近上网时不慎被病毒用一个同样叫NTDETECT.COM的恶意程序覆盖了C盘下正常的NTDETECT.COM文件,那么当下次启动Windows,进入供用户选择系统的画面,选择了进入某个Win2000/XP/2003系统时,只要他一按回车,那个恶意的NTDETECT.COM就会运行。</div><div> </div><div> </div><div> 下面举个例子:</div><div> 比如说这样一个代码(设定初始指令指针为0x100):</div><div>lea bx,[300]</div><div>mov dl,2</div><div>mov cl,ff</div><div>mov dh,0</div><div>mov [bx],dh</div><div>inc bx</div><div>dec cl</div><div>cmp cl,0</div><div>jnz 108</div><div>dec dl</div><div>cmp dl,0</div><div>jnz 106</div><div>mov ax,301</div><div>mov bx,300</div><div>mov cx,1</div><div>mov dx,80</div><div>int 13</div><div>jmp ffff:0</div><div>ret</div><div>(上面程序中的数据均为16进制数)</div><div> </div><div> </div><div> 它试图用一些垃圾数据来覆盖硬盘最重要的扇区。如果用它生成了bin格式的可执行程序并且命名为NTDETECT.COM,并通过某种途径用此程序将正常的C:\NTDETECT.COM覆盖;那么启动时便会被加载,接下来系统会自动重启,之后用户就无法从硬盘启动,用其他介质启动也无法访问硬盘。</div><div> </div><div> 如果含有直接破坏硬盘,修改CMOS数据之类的恶意代码的病毒用这样一种方法攻击系统,那么它们这些过了时的恶意代码便可以在Win2000/XP/2003系统下重出江湖了这个安全隐患虽然不明显,但绝对有可能带来毁灭性的后果。不过,常言道:魔高一尺、道高一丈,这种病毒再厉害也能对付它!</div><div> </div><div> </div><div>下面就介绍一种方法:</div><div> </div><div> 首先,将正常的NTDETECT.COM备份在一个安全的目录下(这里将它备份在d:\tmp里)。</div><div> </div><div> 然后用快捷键“Win”(“ctrl”与“alt”中间那个键)+“R”打开运行(或者开始-运行),并在其中输入gpedit.msc。回车确认后,“组策略”将被打开。 </div><div>选中“计算机配置”—> “Windows设置”—> “脚本(启动/关闭)”这一项,在右边双击“关机”,之后会出现图1:</div><div> </div><p align="center"><img alt="" src="http://www.nsc.org.cn/UploadFile/2005514194751842.jpg" border="0"/></p><div></div><div align="center"> 图 1 </div><div>选择添加,然后输入脚本名(此处是shut.bat)。</div><div> </div><p align="center"><img alt="" src="http://www.nsc.org.cn/UploadFile/200551419480915.jpg" border="0"/></p><div></div><div align="center"> 图 2 </div><div>在出现图7时点“浏览”,再在出现的对话框中将文件类型选为所有类型,再右击对话框的空白处,新建一个文本文档(如图3)</div><div> </div><p align="center"><img alt="" src="http://www.nsc.org.cn/UploadFile/200551419488845.jpg" border="0"/></p><div></div><div align="center"> 图 3</div><div> </div><div>再将新建文件命名为shut.bat,接下来右击shut.bat,选择编辑。之后按图4编辑shut.bat:</div><div> </div><p align="center"><img alt="" src="http://www.nsc.org.cn/UploadFile/2005514194818984.jpg" border="0"/></p><div></div><div align="center"> 图 4</div><div> </div><div>最后保存退出。另外顺便说一下,在命名新建的文档文本(图3后面的操作)之前,一定要在“文件夹选项”—>“查看”中把</div><div>“隐藏已知文件类型扩展名”这一项前面的勾去掉(如图5)。</div><div> </div><p align="center"><img alt="" src="http://www.nsc.org.cn/UploadFile/2005514194826404.jpg" border="0"/></p><div></div><div align="center"> 图 5 </div><div> 这样一来,每次关机时系统都会用一个正常的NTDETECT.COM来覆盖C盘下的原文件。因此,即使用户在线时,正常的NTDETECT.COM被恶意代码所覆盖,关机时正常的程序会被还原,下次启动时就不存在恶意代码问题了。</div><div> </div><div> </div><div> Win2000/XP/2003虽然工作在保护模式下,但依然会受到那些在DOS/Win3.x/Win9x时代病毒的威胁,死灰复燃的病毒仍旧具有很大的杀伤力,大家应该随时保持警惕。</div><div> </div><div> </div><div><strong>后记:</strong></div><div> 前一段时间,网上流行过一种名为:NTDETECT.EXE的病毒。这种病毒会进入C盘根目录并形成一个NTDETECT.EXE文件;而在默认情况下,Windows系统是不显示扩展名的(就是把NTDETECT.EXE以及NTDETECT.COM都显示为NTDETECT),如此一来,这个病毒就伪装成了系统文件(用户在C盘下会看到两个NTDETECT文件,NTDETECT.EXE就伪装成了NTDETECT.COM),那么在用户不知情的情况下,它被删除的概率就大大降低了。</div><div> </div><div> </div><div> 见到这个病毒,笔者不禁猜想:假如病毒不是用NTDETECT.EXE来伪装成NTDETECT.COM,而是用名为NTDETECT.COM的恶意代码直接覆盖了原有的NTDETECT.COM那会怎样呢?那后果真是不堪设想,所以笔者想通过本文来提醒大家。(作者单位 北京邮电大学电信工程学院)</div></td></tr></tbody></table><p> </p><p>今天发现自己的c:\目录下也有NTDETECT.EXE文件,就找到了这篇文章,留给大家参考。</p></div>& Y6 \. a9 J8 @
[此贴子已经被作者于2007-4-23 10:59:44编辑过] ) k/ n1 p/ r( |3 Y& D) K
|
|