本来我们想做一个Unix操作系统病毒的概述,但在这里,我们单独把Shell脚本拿出来分析。window7中包含的shell在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command.com。它接收用户命令,然后调用相应的应用程序。同时它又是一种程序设计语言。
作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。在C++中,Shell是希尔排序的名称。
我们面临的第一个问题就是如何传播的问题,这是天生具有的问题,至少在Unix操作系统上是如此,我们需要想办法使各个平台兼容.所以我们首先想到的是:shell脚本语言.shell在不同的Unix操作系统上面的差别很小.所以FredCohen在他的书:入侵者,蠕虫和病毒(发表于1990年)写到:"在unix的命令解释语言中,病毒代码可以被写到200个字节之内".
也许我们可以根据他的话来写 一个man page的病毒脚本,可以用来Unix操作系统操作文件和可执行程序.这和宏病毒非常相像.man page的病毒不会蔓延到别的Unix操作系统上,除非你有为别的用户改变man page的格式的习惯.无论如何,这种病毒都是一个公共的跨Unix操作系统的病毒.同样,也可以写另个一个脚本病毒来控制mail的阅读者.
书写shell脚本病毒是一个很简单的制造Unix病毒的方法.我知道肯定会有很多同行会说,脚本病毒怎么会是真正的病毒呢?它只是用脚本语言来书写的而不是用汇编.
但是实际上,我们评定一个病毒是病毒本身可以在Unix操作系统上任意感染传播,而不是这个病毒的大小或者用什么语言来写的.在 USENIX1989 卷2上你可以看到Tom Duff和M. Douglas McIlroy的脚本病毒代码.
shell脚本病毒的危害性不会很大并且它本身极易被破坏,因为它是以明文方式编写并执行的,任何用户和管理员都可以发觉它的代码.但是,我想大多数的用户都不会理解一下代码的吧:
- for %%f in (*.bat) do copy %%f + bfv.bat
通常一个用户会深信不疑的去执行任何脚本,而且不会过问该脚本的由来.这样,这些Unix操作系统用户都成为病毒的目标了;这些都是用户的意识问题,这样是没办法避免病毒的入侵的,所以我们的用户需要大大加强对这些病毒的防范意识.
我们对Unix操作系统中的病毒要了解的更多,才能有效的防护我们的电脑。
【编辑推荐】