软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
CodeRed II&III 程序代码分析及清除指南

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

CodeRed II&III 程序代码分析及清除指南 By Seraph Chutium <A href="http://com.6to23.com/">http://com.6to23.com/</A> <A href="http://www.cnhack.org/">http://www.cnhack.org/</A> 新浪科技报道: 代号红色C来势更猛 专家称危险性大 http://tech.sina.com.cn/s/n/2001-08-07/79179.shtml 最新信息表明红色代码Ⅲ来势更猛 http://tech.sina.com.cn/s/n/2001-08-08/79420.shtml CodeRed 蠕虫病毒未对中文视窗系统造成多大影响, 不过近来的 CodeRed II 型可是专门针对中文系统的病毒, 最新的 CodeRed.v3 蠕虫病毒继承了 CodeRed II 的大部分功能。 同样是有意针对中文 Windosws 操作系统的攻击性病毒, 它与 CodeRed II 都将对 简体中文/繁体中文 Windows 系统进行双倍的攻击。 别名:CodeRed.v3, CodeRed III, W32.Bady.C 病毒的详细分析可在此下载: <A href="http://chutium.top263.net/software.htm">http://chutium.top263.net/software.htm</A> 微软已经发布了一个安全公告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 研究了一下,现在以成功清除,分析结果及手动清除方法如下: <STRONG>一、分析 </STRONG> 这个蠕虫的行为可以分为三部分:初始化、感染、繁殖、安装木马。 <STRONG>1.</STRONG>初始化 当一个 WEB 服务器感染此病毒后,它首先将初始化: (1) 确定 Kernel32.dll 动态链接库中 ISS 服务器的服务进程地址。 (2) 查找调用 API 函数 GetProcAddress 以使用以下 API 函数: LoadLibraryA CreateThread .. .. GetSystemTime (3) 加载 WS2_32.dll 库使用socket closesocket SAGetLastError 等函数。 (4) 从 USER32.DLL 中调用 ExitWindowsEx 以重新启动系统。 <STRONG>2.</STRONG>感染 (1) 蠕虫设置一个跳转表,以便得到所有需要的函数地址。 (2) 获得当前主机的IP地址,以便在后面的繁殖步骤中处理子网掩码时使用。 (3) 检查系统语言是否中文 (台湾或中华人民共和国版本)。 (4) 检查是否已经执行过了,如已执行则跳至繁殖步骤。 (5) 检查"CodeRedII" atom是否已被放置。这个步骤可以确保此主机不会被重复感染。 (如已放置,则进入永久休眠状态。) (6) 如上一检查没有发现中没有发现"CodeRedII" atom,则增加一个"CodeRedII" atom。 (用来表示此主机已经被感染。) (7) 对于非中文系统,将工作线程数目定为300。如果是中文系统,则设置为600。 (8) 蠕虫开始产生一个新的线程跳到第一步去执行。蠕虫会根据上一步骤中设定的线程。 (数目产生新线程。这些线程都会跳至繁殖步骤去执行。) (9) 调用木马功能。 (10) 如果是非中文系统,休眠1天;如果是中文系统,休眠2天。 (11) 重起系统。这会清除内存中驻留的蠕虫,只留下后门和explorer.exe木马。 <STRONG>3.</STRONG>繁殖 (1) 设置IP_STORAGE变量。保证不会重复感染本主机。 (2) 休眠64h毫秒。 (3) 获取本地系统时间。蠕虫会检查当前时间是不是小于2002年或月份小于10月。 如果日期超出了上述条件,蠕虫会重启系统。这使蠕虫的传播不会超过10月1日。 (4) 设置SockAddr_in变量,获取攻击主机IP时会使用这个变量。 (5) 设置Socket套接字。蠕虫调用socket()函数,产生一个套接字,并设置该套接 字为非阻塞模式。这可以加速连接速度。 (6) 产生下一要攻击主机的IP并发起连接。如果连接成功,将跳到"设置套接字为 阻塞模式"步骤。 (7) 调用select()。如果没有返回句柄,则跳到最后一步。 (8) 设置套接字为阻塞模式。 这是因为连接已经建立,没有必要再使用非阻塞模式。 (9) 向该套接字发送一份蠕虫的拷贝。 (10) 执行recv调用。 (11) 关闭套接字,返回第一步。 繁殖中的 IP 地址分析: 这个蠕虫的独特之处在于它选择下一个要连接的主机IP的方法。它首先在1到254的范 围内随机生成4个字节(防止IP地址为一个0或255)。然后,随机从这些字节中取出一个 字节,然后与7做与操作('AND'),产生一个0 - 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. 很多情况下,与被感染的主机在同一或相近网段内的主机也使用相同的系统。因此, 蠕虫使用这种机制就会大大增加感染的成功率。 <STRONG>4.</STRONG>安装木马 (1) 获取%SYSTEM%系统目录。例如C:\WINNT\SYSTEM32 (2) 将cmd.exe加到系统目录字符串的末尾,例如C:\WINNT\SYSTEM32\cmd.exe (3) 将驱动器盘符设置为C: (4) 将cmd.exe拷贝到 驱动器盘符:\inetpub\scripts\root.exe (5) 将cmd.exe拷贝到 驱动器盘符:\progra~1\common~1\system\MSADC\root.exe (6) 创建"驱动器盘符:\explorer.exe" (7) 往"驱动器盘符:\explorer.exe"中写入二进制代码。 (8) 关闭"驱动器盘符:\explorer.exe" (9) 将驱动器盘符改为D,重复从第四步开始的操作 (10) 回到 1.感染 阶段的最后一步,开始休眠。 安装木马的详细分析: 蠕虫创建的"explorer.exe"是一个木马,它的主要工作方式与 CodeRed II 基本相同: 获取本地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/scripts/root.exe?/c+command (如果root.exe还存在) http://TARGET/msadcs/root.exe?/c+command http://TARGET/c/winnt/system32/cmd.exe?/c+command (如果root.exe已经被删除) http://TARGET/c/inetpub/scripts/root.exe?/c+command http://TARGET/c/progra~1/common~1/system/MSADC/root.exe?/c+command 蠕虫将"explorer.exe"木马放在"C:\"和"D:\"的根目录下面,这是想利用微软安全公 告MS00-052(http://www.microsoft.com/technet/security/bulletin/MS00-052.asp) 中所描述的漏洞,windows系统在执行可执行程序时,会先搜索系统盘根目录下面有没 有同名的程序,如果有,就先执行该程序。因此,如果攻击者将"exploer.exe"木马放 在系统盘根目录下面,就可能先于真正的"exploer.exe"被执行。当属于管理员组的用 户交互地登录进入系统时,木马将被执行。如果您没有安装SP2或者MS00-052中的补丁, 您就可能执行这个木马程序;否则,您不会执行这个木马。 <STRONG>二、清除</STRONG> —— 注:以下修复过程对 CodeRed II 型<U><STRONG>同样有效</STRONG></U>。 如果不幸中了此病毒,应该立即关闭所有 80 端口的 web 服务,避免病毒继续传播。 <STRONG>1.</STRONG>清除的 web 服务器中的两个后门文件:/msadc/root.exe , /scripts/root.exe 这两个文件的物理地址一般情况下默认为: C:\inetpub\scripts\root.exe C:\progra~1\common~1\system\MSADC\root.exe <STRONG>2.</STRONG>清除本地硬盘中:c:\explorer.exe 和 d:\explorer.exe , 先要杀掉进程explorer.exe,打开任务管理器,选择进程。检查是否进程中有两个 "exploer.exe".如果您找到两个"exploer.exe",说明木马已经在您的机器上运行了, 在菜单中选择 查看 -> 选定列 -> 线程计数,按确定。这时您会发现显示框中增加了新的 一列"线程数"。检查两个"exploer.exe", 显示线程数为"1"的"exploer.exe"就是木马 程序。您应当结束这个进程。 之后,您就可以删除掉C:\exploer.exe和D:\exploer.exe了, 这两个程序都设置了隐藏和只读属性。您需要设置"资源管理器" 的 查看 -> 选项 -> 隐藏文件 为"显示所有文件"才能看到它们。 <STRONG>3.</STRONG>清除病毒在注册表中添加的项目: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 删除键:SFCDisable 键值为:0FFFFFF9Dh 或将键值改为 0 ( 设置为0FFFFFF9Dh后,将在登陆时禁止系统文件检查 ) HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots 键:Scripts 键值为:,,217 改为 ,,201 ( 这个键默认就是被打开的,不过如果没有特别需要的话,可以关闭 ) ( 因为很多漏洞都是利用了这个虚拟目录下的文件攻击的。 ) HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots 键:msadc 键值为:,,217 改为 ,,201 ( 同Scripts ) HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots 删除键:c 键值为:c:\,,217 ( 它将本地硬盘中的 C 盘在 web 中共享为 c ) HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots 删除键:d 键值为:d:\,,217 ( 它将本地硬盘中的 D 盘在 web 中共享为 d ) 如果不删除注册表中的以上键,中毒服务器的本地硬盘 C、D 将被完全控制。 <STRONG>4.</STRONG>重新启动系统,以确保 CodeRed.v3 彻底清除。 <STRONG>三、后记 </STRONG>如果要确保清除病毒后不再次被感染,就需要安装微软发布的补丁。 <STRONG>以上内容资料引自:</STRONG><A href="http://chutium.top263.net/"><STRONG>http://chutium.top263.net/</STRONG></A><STRONG> 对 CodeRed 病毒程序的分析。</STRONG>


相关文章

相关软件