|
|
"红色病毒II"蠕虫分析与解决方案 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
最近,一个名为\"CodeRedII\"的蠕虫正在迅速传播。与以前的\"Code Red\"蠕虫一样,这个 蠕虫利用的也是微软IIS web服务器的一个远程漏洞: “微软Index Server(.ida/idq) ISAPI扩展远程溢出漏洞 (MS01-033)” http://security.nsfocus.com/showQuery.asp?bugID=1528
与以前的\"Code Red\"蠕虫不同的是,这个新蠕虫会在被感染的系统上放置后门程序,因 此它造成的危害更大。它也使用了一种更为有效的传播机制,使它可以更快地感染其他主机。
在受感染的Windows 2000系统上,这个蠕虫可以获取系统(system)级权限,并会留下后门。 由于蠕虫代码不适用Windows NT系统,因此可能造成Windows NT系统上的IIS服务崩溃。
蠕虫特征: ==========
。被蠕虫攻击的系统,可能会在web server的日志中留下如下的记录: /default.ida?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%uc bd3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a HTTP/1.0 这与\"Code Red\"蠕虫留下的记录非常相似: /default.ida?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNN%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%uc bd3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a HTTP/1.0 注意:如果您发现这样的记录,并不表示您的系统已经被感染了。只是表示蠕虫试图攻 击过您的系统。由于蠕虫没有对web服务器的类型进行识别,因此很多UNIX系统下的web 服务器也会受到攻击。如果蠕虫攻击成功,在IIS的日志中应该是看不到上述记录的。 。被蠕虫感染的主机上,会存在下列后门程序: C:\\explorer.exe D:\\explorer.exe 蠕虫也会将%SYSTEM%\\CMD.EXE文件复制到IIS \"scripts\" 和 \"MSADC\"目录内,并改名为 root.exe 。一旦被这个蠕虫感染,您的web服务器负荷或者网络流量可能会异常增大。 。 在受到蠕虫攻击后,您的IIS 4.0服务可能会停止。 蠕虫行为分析: ============
下列分析是基于eEye Digital Security公司Marc Maiffret和Ryan Permeh提供的一份分 析报告。您可以在下列地址查阅此报告全文: http://www.eeye.com/html/advisories/coderedII.zip 这个蠕虫的行为可以分为三部分:感染、繁殖、安装木马。 【感染】 * 蠕虫设置一个跳转表,以便得到所有需要的函数地址 * 获得当前主机的IP地址,以便在后面的繁殖步骤中处理子网掩码时使用。 * 检查系统语言是否中文 (台湾或中华人民共和国版本) * 检查是否已经执行过了,如已执行则跳至繁殖步骤 * 检查\"CodeRedII\" atom是否已被放置。这个步骤可以确保此主机不会被重复感染。 如已放置,则进入永久休眠状态。 * 如上一检查没有发现中没有发现\"CodeRedII\" atom,则增加一个\"CodeRedII\" atom。 用来表示此主机已经被感染。 * 对于非中文系统,将工作线程数目定为300。如果是中文系统,则设置为600 * 蠕虫开始产生一个新的线程跳到第一步去执行。蠕虫会根据上一步骤中设定的线程 数目产生新线程。这些线程都会跳至繁殖步骤去执行。 * 调用木马功能 * 如果是非中文系统,蠕虫休眠1天;如果是中文系统,蠕虫休眠2天 * 重起系统。这会清除内存中驻留的蠕虫,只留下后门和explorer.exe木马。
【繁殖】 * 设置IP_STORAGE变量。保证不会重复感染本主机 * 休眠64h毫秒 * 获取本地系统时间。蠕虫会检查当前时间是不是小于2002年或月份小于10月。如果 日期超出了上述条件,蠕虫会重启系统。这使蠕虫的传播不会超过10月1日。 * 设置SockAddr_in变量,获取攻击主机IP时会使用这个变量。 * 设置Socket套接字。蠕虫调用socket()函数,产生一个套接字,并设置该套接字为 非阻塞模式。这可以加速连接速度。 * 产生下一要攻击主机的IP并发起连接。如果连接成功,将跳到\"设置套接字为阻塞 模式\"步骤。 * 调用select()。如果没有返回句柄,则跳到最后一步。 * 设置套接字为阻塞模式。这是因为连接已经建立,没有必要再使用非阻塞模式。 * 向该套接字发送一份蠕虫的拷贝 * 执行recv调用 * 关闭套接字,返回第一步。 这个蠕虫的独特之处在于它选择下一个要连接的主机IP的方法。它首先在1到254的范 围内随机生成4个字节(防止IP地址为一个0或255)。然后,随机从这些字节中取出一个 字节,然后与7做与操作(\'AND\'),产生一个0 - 7之间的随机数。然后根据这个随机数 从一个地址掩码表中取出相应的掩码:
dd 0FFFFFFFFh ; 0 dd 0FFFFFF00h ; 1 dd 0FFFFFF00h ; 2 dd 0FFFFFF00h ; 3 dd 0FFFFFF00h ; 4 dd 0FFFF0000h ; 5 dd 0FFFF0000h ; 6 dd 0FFFF0000h ; 7
(注意实际掩码在内存中的位置是反向存储的) 这个表可以决定随机生成的IP地址有多少会被使用。例如,如果生成一个随机数5,则 根据上面的掩码表,新的地址应该一半为随机地址一半为旧IP地址。比如如目前受害 者IP地址是192.168.1.1,随机产生的IP可能是 01.23.45.67,则新的攻击地址可能为 192.168.45.67。
其结果就是新的被攻击IP会有八分之三的机率(5,6,7)在当前机器IP所在的B类地址 范围内产生,有八分之四的机率(1,2,3,4)在A类范围内产生,另八分之一的机 率是随机IP地址(0)。
蠕虫如果发现产生的IP是127.x.x.x或者是224.x.x.x或者与当前IP相同,它就会重新 产生一个新的IP. 很多情况下,与被感染的主机在同一或相近网段内的主机也使用相同的系统。因此, 蠕虫使用这种机制就会大大增加感染的成功率。
【安装木马】 * 获取%SYSTEM%系统目录。例如C:\\WINNT\\SYSTEM32 * 将cmd.exe加到系统目录字符串的末尾,例如C:\\WINNT\\SYSTEM32\\cmd.exe * 将驱动器盘符设置为C: * 将cmd.exe拷贝到 驱动器盘符:\\inetpub\\scripts\\root.exe * 将cmd.exe拷贝到驱动器盘符:\\progra~1\\common~1\\system\\MSADC\\root.exe * 创建\"驱动器盘符:\\explorer.exe\" * 往\"驱动器盘符:\\explorer.exe\"中写入二进制代码。 * 关闭\"驱动器盘符:\\explorer.exe\" * 将驱动器盘符改为D,重复从第四步开始的操作 * 回到【感染】阶段的最后一步,开始休眠。
蠕虫创建的\"explorer.exe\"是一个木马,它的主要工作方式如下: * 获取本地windows目录 * 执行真正的\"explorer.exe\" * 进入下面的死循环: while(1) { 设置\"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\SFCDisable\" 到0FFFFFF9Dh, 禁止系统文件保护 设置\"SYSTEM\\CurrentControlSet\\Services\\W3SVC\\Parameters\\Virtual Roots\\Scripts\" 到 ,,217 设置\"SYSTEM\\CurrentControlSet\\Services\\W3SVC\\Parameters\\Virtual Roots\\msadc\" 到 ,,217 设置\"SYSTEM\\CurrentControlSet\\Services\\W3SVC\\Parameters\\Virtual Roots\\c\" 到c:\\,,217 设置\"SYSTEM\\CurrentControlSet\\Services\\W3SVC\\Parameters\\Virtual Roots\\d\" 到d:\\,,217 休眠10分钟 } 蠕虫通过修改上面的注册表增加了两个虚拟web目录(/c和/d),并将其分别映射到C:\\ 和D:\\。这使得即使用户删除了root.exe,只要\"explorer.exe\"木马仍在运行,攻击者 仍然可以利用这两个虚拟目录来远程访问您的系统。例如: http://TARGET/c/inetpub/scripts/root.exe?/c+dir (如果root.exe还存在) http://TARGET/c/winnt/system32/cmd.exe?/c+dir (如果root.exe已经被删除) 蠕虫将\"explorer.exe\"木马放在\"C:\\\"和\"D:\\\"的根目录下面,这是想利用微软安全公 告MS00-052(http://www.microsoft.com/technet/security/bulletin/MS00-052.asp) 中所描述的漏洞,windows系统在执行可执行程序时,会先搜索系统盘根目录下面有没 有同名的程序,如果有,就先执行该程序。因此,如果攻击者将\"exploer.exe\"木马放 在系统盘根目录下面,就可能先于真正的\"exploer.exe\"被执行。当属于管理员组的用 户交互地登录进入系统时,木马将被执行。如果您没有安装SP2或者MS00-052中的补丁, 您就可能执行这个木马程序;否则,您不会执行这个木马。
解决方法: =========
我们建议受到蠕虫感染的用户重新安装系统,以便清除其他潜在地后门。如果您不能立刻 重装系统,您可以参考下列步骤来清除蠕虫:
1. 您应当首先停止IIS服务,以防止蠕虫的进一步攻击
2. 打开任务管理器,选择进程。检查是否进程中有两个\"exploer.exe\".如果您找到两个 \"exploer.exe\",说明木马已经在您的机器上运行了,您应当立刻杀掉木马程序;否则, 说明您还没有执行木马程序,您可以转到第四步。
3. 在菜单中选择 查看| 选定列 | 线程计数,按确定。这时您会发现显示框中增加了新的 一列\"线程数\"。检查两个\"exploer.exe\", 显示只有一个线程的\"exploer.exe\"就是木马 程序。您应当结束这个进程的操作。
4. 您需要删除C:\\exploer.exe和D:\\exploer.exe。注意:这两个程序都设置了隐藏和只读 属性。您需要设置\"资源管理器\"的 查看 | 选项 | 隐藏文件为\"显示所有文件\"才能看 到它们。
5. 您需要删除root.exe. 它们在IIS的scripts和MSADC目录下。缺省可能是下列目录:
C:\\inetpub\\scripts\\root.exe D:\\inetpub\\scripts\\root.exe C:\\program files\\common files\\system\\MSADC\\root.exe D:\\program files\\common files\\system\\MSADC\\root.exe
6. 修复蠕虫创建的注册表项:
* 备份注册表 * 使用regedit,找到下列表项: HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\W3SVC\\Parameters\\ Virtual Roots 将\"/C\"和\"/D\"的项删除。将\"/scripts\"和\"/MSADC\"项中\",,217\"改成\",,201\" HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\WinLogon 蠕虫已经将其变为0FFFFFF9Dh,将这一项的值改变为0。
7. 安装微软提供的补丁。
微软已经发布了一个安全公告MS01-033: http://www.microsoft.com/technet/security/bulletin/MS01-033.asp
同时提供了针对NT和2000系统的补丁: . Windows NT 4.0: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=30833
. Windows 2000 Professional, Server and Advanced Server: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=30800
8. 重新启动系统 参考资料:
[1.] eEye 的分析报告: http://www.eeye.com/html/advisories/coderedII.zip [2.] CERT Incident Note IN-2001-09 : http://www.cert.org/incident_notes/IN-2001-09.html [3.] Symantec CodeRed.v3: http://www.sarc.com/avcenter/venc/data/codered.v3.html 
|
|
相关文章:相关软件: |
|