主 页  下载中心 文章中心 在线杀毒 软件论坛
国内杀毒软件     瑞星杀毒 金山毒霸 江民杀毒 光华反病毒 更多... 木马专杀   木马杀客 木马克星 木马清道夫 AVG(原Ewido)Anti-Spyware 更多...
国外杀毒软件     卡巴斯基   诺顿   趋势 安博士 熊猫卫士  小红伞 驱逐舰 麦咖啡McAfee   NOD32   F-Secure   Dr.Web   Avast   更多...
升级补丁   瑞星升级 金山毒霸升级 江民升级 光华升级 卡巴斯基升级 诺顿升级 趋势升级 安博士升级 NOD32升级 Dr.Web升级 Avast升级
流氓软件清理     360安全卫士 瑞星卡卡   金山毒霸系统清理专家 Wopti流氓软件清除大师   恶意软件清理助手   超级兔子网络卫士 更多...
防火墙     天网 费尔 冰盾 更多... 病毒专题     熊猫烧香病毒专题 电眼间谍病毒专题 AV终结者病毒专题 灰鸽子清理     更多...
系统漏洞补丁     windowXP系统漏洞补丁 window2000系统漏洞补丁 window2003系统漏洞补丁 windowVISTA系统漏洞补丁 更多...
 您当前的位置:爱客者 -> 文章中心 -> 安全技术 -> 杀毒技术 -> 文章内容

unix系统病毒概述
来源:网络 时间:2006-2-18

elk cloner: 第一个计算机病毒

它将会得到你磁盘上所有的东东
它甚至将渗透到芯片内部
这就是 cloner!

它会象胶水一样粘住你
它还会修改内存!

计算机病毒是一种在大量的电子破坏技术手段中最著名的成员.他们实际上就是一些非常危险的恶意程序,他们是丑陋的,不过在我看来他们很可爱,原于我对internet的驾驭和对计算机程序的探索.他们会复制自己并且可以传染其它文件,直至现在,这些被传染的文件甚至包括了那些很清白的文档文件.而且他们很容易获得.他们可以随处传播,任何时间,任何地点.实际上,没有一个os可以完全抵御病毒的.一个病毒可以完全依靠系统本身进行复制,比如利用windows系列操作系统的pe格式的可执行文件和利用类unix操作系统的elf格式.所以,任何计算机病毒都依附于os的体系结构,各种os的病毒的写法都不一样,但任何os也逃避不了病毒,包括linux.

正如以上所说,linux也可以被感染.就象windows nt或者macos这样的操作系统.不论是pc机上的dos或windows,或者是amiga,都可以创造出病毒代码.那么,我们为什么不来看看在windos nt或linux系统上的一些病毒呢? 你也许会奇怪,事实上第一个计算机病毒是unix病毒(有可能第一个就是elk cloner,好象是编写于1980到1982年之间).fred cohen在4bsd的vax系统上编写了一些非常早的unix病毒,一年以后elk cloner就诞生了.由于unix系统具有内存保护机制,所以人们不太相信unix系统上的病毒的危害性会超过windows和dos系统,但他们错了.

一些公共的误区

一个最大的误区就是很多高性能的安全系统对病毒蔓延的预防.因为我们是利用dos系统和它本身并不存在任何内存保护机制和数据保护机制,我们认为病毒可以完全控制计算机的所有资源.是的,他们会很轻易的称为dos和简单的windows操作系统的完全控制用户.没有内存保护机制和数据保护机制,计算机病毒可以夺取所有的计算机控制权.相对来说,windows nt和unix系统是非常高级的保护机制的系统.这可以预防大多数的病毒的传染,但不是所有的.当一个用户以root或administrator的身份来操作的时候,这些系统的保护机制实际上是停止了的.一个设计的很巧妙的病毒可以利用自己的方法来找到文件系统上的每个文件;nt ownership或者acl机制都没有很好的重视这个问题.

另一个误区就是认为linux系统尤其可以防止病毒的感染,因为linux的程序都来自于源代码,不是二进制格式.这才应该值得重视,因为毕竟只有极少数的人(甚至管理员)才有足够的能力来从源代码中发现病毒代码,而且这是一个相当耗费时间和精力的工作.一般的用户习惯于用二进制格式的文件来交流,因为他们不想在使用这些程序的时候还要很繁琐的执行诸如make config;make之类的命令,他们喜欢很简单的运行程序.所有的这些原因就给了unix系统上的病毒有足够的空间来访问和操控系统.

第三个误区就是认为unix系统是绝对安全的,因为它具有很多不同的平台,而且每个版本的unix系统有很大的不一样.但是现在不能这样看了.现在的病毒都用标准c来编写以适应任何类unix操作系统,并且他们可以用make程序来跨平台编译.想想那个morris写的internet的蠕虫病毒利用的就是这项技术.并且拥有标准的elf二进制格式和库文件.

shell脚本

我们面临的第一个问题就是如何传播的问题,这是天生具有的问题,至少在unix系统上是如此,我们需要想办法使各个平台兼容.所以我们首先想到的是:shell脚本语言.shell在不同的unix系统上面的差别很小.所以fred cohen在他的书:入侵者,蠕虫和病毒(发表于1990年)写到:"在unix的命令解释语言中,病毒代码可以被写到200个字节之内".也许我们可以根据他的话来写一个man page的病毒脚本,可以用来操作文件和可执行程序.这和宏病毒非常相像.man page的病毒不会蔓延到别的系统上,除非你有为别的用户改变man page的格式的习惯.无论如何,这种病毒都是一个公共的跨系统的病毒.同样,也可以写另个一个脚本病毒来控制mail的阅读者.

蠕虫

另外的一个影响广泛的技术就是蠕虫,想象一下morris蠕虫:利用攻击程序--一般这些攻击程序都是已经存在的技术.这个蠕虫利用一个sendmail程序已存在的一个漏洞来获取其它机器的控制权.病毒一般会利用rexec,fingerd或者口令猜解来尝试连接.在成功入侵之后,它会编译在目标机器上编译源代码并且执行它.而且会有一个程序来专门负责隐藏自己的脚印.

internet的蠕虫病毒一般都是利用已知的攻击程序去获得目标机的管理员权限.但是蠕虫的生命也是很短暂的,当该病毒所利用的漏洞被修补的话,那么该蠕虫也就失去它的作用了,因为他们需要利用exploit这个媒介来进行自身的复制.而exploit又是只针对特定版本的特定程序才会有效的,所以蠕虫的跨平台能力很差,时效性也很弱.

欺骗库函数

我们可以愚弄那些比较傻的用户.如果你利用ld_preload环境变量来捉弄他,你可以让他执行你自己的代码,你已经利用ld_preload环境变量把标准的库函数替换成了你自己的程序.挺有意思吧?ld_preload并不是linux系统特有的并且它一般用在一些应用程序(比如老版本的staroffice需要运行在较新版本的red hat系统上)必须用他们自己的(或者比较老的版本,或者修改过的)库函数,因为在安装的时候没有满足他们的需求.quantum (staog病毒的作者)在unix病毒的邮件列表里面提供了这些代码,我做了修改,也是为了便于大家理解:

------------------------tryld.c------------------------------------
extern int __open(char *, int, int);
extern int execv(char *, char *[], char *envp[]);

int open(char *path, int flags,
int mode){
printf("open: %s\n", path);
return __open(path, flags, mode);
}

/* 注意这里,原来它放弃了envp参数,这样会...:(?!
呵呵,所以我修改了一下,影响不大:)*/
int execve(char *path, char *args[],
char *envp[]){
printf("execve: %s\n", path);
return execv(path, args, envp);
}
-------------------------------------------------------------------

------------------------main.c-------------------------------------
/*test only,by e4gle*/
#include
#include
#include
#include

main()
{
int fd;
execve("/bin/date","",null);
if(fd=open("/etc/inittab",o_rdonly)!=-1)
{
fprintf(stdout,"open file succeed!\n");
}
else
fprintf(stderr,"open error!\n");
close(fd);
return 0;
}
-------------------------------------------------------------------

这段代码获取open和execv并且改变了它们的输出,好,我们测试一下:

[e4gle@redhat62 elf]$ gcc -o main main.c
[e4gle@redhat62 elf]$ ./main
open file succeed! <--证明我们打开文件成功了,open调用正常工作
[e4gle@redhat62 elf]$ ldd -v -r ./main
libc.so.6 => /lib/libc.so.6 (0x4001c000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

version information:
./main:
libc.so.6 (glibc_2.0) => /lib/libc.so.6
/lib/libc.so.6:
ld-linux.so.2 (glibc_2.1.1) => /lib/ld-linux.so.2
ld-linux.so.2 (glibc_2.1) => /lib/ld-linux.so.2
ld-linux.so.2 (glibc_2.0) => /lib/ld-linux.so.2
/*跟踪一下库函数的利用,都是glibc的标准库函数,solaris里面是sotruss,我个人认为sotruss
比较好用:)*/
[e4gle@redhat62 elf]$ gcc -shared -o tryld tryld.c
[e4gle@redhat62 elf]$ export ld_preload=./tryld <--用我们自己的lib
[e4gle@redhat62 elf]$ ./main
execve: /bin/date
open: /etc/inittab
open file succeed!
/*注意!不一样了吧?已经在用我们自己的open和execve了,呵呵:)*/

以上仅仅是个测试代码并且没有任何危害性,但是它足以说明我们利用欺骗函数库来攻击程序的原理.



书写shell脚本病毒是一个很简单的制造unix病毒的方法.我知道肯定会有很多同行会说,脚本病毒怎么会是真正的病毒呢?它只是用脚本语言来书写的而不是用汇编.但是实际上,我们评定一个病毒病毒本身可以在系统上任意感染传播,而不是这个病毒的大小或者用什么语言来写的.在usenix 1989 卷2上你可以看到tom duff和m. douglas mcilroy的脚本病毒代码.shell脚本病毒的危害性不会很大并且它本身极易被破坏,因为它是以明文方式编写并执行的,任何用户和管理员都可以发觉它的代码.但是,我想大多数的用户都不会理解一下代码的吧:
for %%f in (*.bat) do copy %%f + bfv.bat

通常一个用户会深信不疑的去执行任何脚本,而且不会过问该脚本的由来.这样,这些用户都成为病毒的目标了;这些都是用户的意识问题,这样是没办法避免病毒的入侵的,所以我们的用户需要大大加强对这些病毒的防范意识.
相关新闻
学习从系统中删除病毒2007/6/28
吃透木马运行原理把它扼杀2007/6/28
McAfee杀毒软件高级设置技巧五招2007/6/28
隐藏文件看不到?中毒了!2007/6/25
360安全卫士推出集三重防护理念2007/6/25
 
    其它相关新闻
·学习从系统中删除病毒
·吃透木马运行原理把它扼杀
·McAfee杀毒软件高级设置技巧五招
·隐藏文件看不到?中毒了!
·360安全卫士推出集三重防护理念
·使用杀毒软件应该注意什么
·CA发布声明:我的杀毒软件漏洞很大
    最新新闻
·磁碟机病毒的十大罪行
·病毒预警:光华反病毒资讯(7月16日-7月22日)
·病毒预警:光华反病毒资讯(7月9日-7月15日)
·用Regsvr32命令解决系统疑难杂症
·Windows的DLL文件原理与修改方法
·如何隐藏硬盘分区
·攻防全面分析 常用九种攻击方法
·卡巴再次误报 将注册表判为木马
·英特尔酷睿2存在安全缺陷
    相关软件下载
·AVG(原Ewido)Anti-Spyware最新完整病毒库更新(2008.06.02)-Anti-Spyware升级包
·AVG(原Ewido)Anti-Spyware每日增量病毒库更新(2008.06.02)-Anti-Spyware升级包
·Kaspersky Anti-Virus7.0.0.125增量包(2008.05.31)-卡巴斯基升级包
·Kaspersky Internet Security7.0.0.125完整升级包(2008.06.01)-卡巴斯基升级包
·熊猫卫士06月01号最新病毒升级包通用版-熊猫卫士升级包
·Avast杀毒软件病毒库升级包(2008-06-01)for avast! 4.0 VPS更新-Avast升级包
·Avast杀毒软件病毒库升级包(2008-06-01)for avast! 4.x VPS更新-Avast升级包
·小红伞AntiVir最新病毒库(2008.06.01) for WindowsNT/2000/XP-小红伞升级包
·McAfee VirusScan DAT 5306病毒库-麦咖啡升级包
·更多相关杀毒软件
  [本站导航]  
瑞星  瑞星杀毒软件瑞星升级包 瑞星杀毒瑞星2007 瑞星在线杀毒瑞星杀毒软件下载瑞星升级
卡巴斯基  卡巴斯基下载卡巴斯基6.0卡巴斯基杀毒软件卡巴斯基7.0卡巴斯基病毒库卡巴斯基升级包
江民  江民杀毒软件江民杀毒江民2007江民杀毒软件下载江民升级包江民升级江民离线升级包
金山毒霸  金山毒霸2007下载金山毒霸下载金山毒霸2007升级包金山毒霸升级金山毒霸杀毒软件
诺顿  诺顿杀毒软件诺顿杀毒诺顿病毒库诺顿企业版诺顿升级包诺顿升级诺顿下载
小红伞AntiVir  德国小红伞小红伞下载小红伞中文小红伞杀毒软件小红伞汉化Avira AntiVir
麦咖啡McAfee  麦咖啡杀毒软件麦咖啡升级包麦咖啡8.0麦咖啡企业版麦咖啡8.5mcafee virusscan
NOD32  nod32升级nod32升级服务器nod32下载nod32 2.7nod32升级idnod32更新nod32升级包
F-Secure  F-secure杀毒软件f-secure anti-virusF-secure汉化版F-secure注册机F-secure2007
Dr.Web  dr.web keydr.web cureitdr.web注册码dr.web汉化dr.web病毒库大蜘蛛大蜘蛛杀毒软件
Avast  avast注册码 序列号avast antivirusavast杀毒软件avast中文版avast 升级avast升级包
木马专杀  木马杀客木马克星AVG Ewido Anti-SpywareAVG Ewido Anti-Spyware升级包 更新
防火墙  瑞星防火墙天网防火墙arp防火墙瑞星个人防火墙江民防火墙防火墙下载风云防火墙
流氓软件清理  瑞星卡卡360安全卫士Wopti流氓软件清除大师奇虎360安全卫士360安全卫士绿色版
推荐软件  Firefox火狐浏览器浏览器Picasa照片处理软件非主流图片制作软件非主流照片制作
关于本站 - 广告合作 - 联系我们 - 下载声明 - 网站地图 - RSS2.0 - 合作伙伴:爱客宝
Copyright©1998 - 2007 爱客者 All Rights Reserved

粤ICP备07006801号