荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: fast (平淡), 信区: Virus
标  题: 红色代码分析及清除
发信站: 荔园晨风BBS站 (Fri Aug 31 17:10:25 2001), 转信

红色代码分析及清除
邱腾··yesky
序 言
  CodeRed 蠕虫病毒未对中文视窗系统造成多大影响,不过近来的CodeRed II型可是
专门针对中文系统的病毒,最新的 CodeRed.v3 蠕虫病毒继承了CodeRed II的大部分功
能。
  同样是有意针对中文Windosws操作系统的攻击性病毒,它与CodeRed II都将对简体
中文/繁体中文Windows系统进行双倍的攻击。
  别名:CodeRed.v3, CodeRed III, W32.Bady.C
  微软已经发布了一个安全公告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
研究了一下其程序代码,现在已成功清除,分析结果及手动清除方法如下:
分 析
  这个蠕虫的行为可以分为三部分:初始化、感染、繁殖、安装木马。
1.初始化
  当一个 WEB 服务器感染此病毒后,它首先将初始化:
  (1) 确定 Kernel32.dll 动态链接库中 ISS 服务器的服务进程地址。
  (2) 查找调用 API 函数 GetProcAddress 以使用以下 API 函数:
    LoadLibraryA
    CreateThread
    ..
    ..
    GetSystemTime
  (3) 加载 WS2_32.dll 库使用socket closesocket SAGetLastError 等函数。
  (4) 从 USER32.DLL 中调用 ExitWindowsEx 以重新启动系统。
2.感染
  (1) 蠕虫设置一个跳转表,以便得到所有需要的函数地址。
  (2) 获得当前主机的IP地址,以便在后面的繁殖步骤中处理子网掩码时使用。
  (3) 检查系统语言是否中文 (台湾或中华人民共和国版本)。
  (4) 检查是否已经执行过了,如已执行则跳至繁殖步骤。
  (5) 检查"CodeRedII" atom是否已被放置。这个步骤可以确保此主机不会被重复感
染。
    (如已放置,则进入永久休眠状态。)
  (6) 如上一检查没有发现中没有发现"CodeRedII" atom,则增加一个"CodeRedII" a
tom。
   (用来表示此主机已经被感染。)
  (7) 对于非中文系统,将工作线程数目定为300。如果是中文系统,则设置为600。

  (8) 蠕虫开始产生一个新的线程跳到第一步去执行。蠕虫会根据上一步骤中设定的
线程。
   (数目产生新线程。这些线程都会跳至繁殖步骤去执行。)
  (9) 调用木马功能。
  (10) 如果是非中文系统,休眠1天;如果是中文系统,休眠2天。
  (11) 重起系统。这会清除内存中驻留的蠕虫,只留下后门和explorer.exe木马。
3.繁殖
  (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,则新的攻击地址可能为1
92.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.
  很多情况下,与被感染的主机在同一或相近网段内的主机也使用相同的系统。因此
,蠕虫使用这种机制就会大大增加感染的成功率。
4.安装木马
(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\Script
s"
为 ,,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中的补丁,你就可
能执行这个木马程序;否则,你不会执行这个木马。
清 除
—— 注:以下修复过程对 CodeRed II 型同样有效。
  如果不幸中了此病毒,应该立即关闭所有 80 端口的 web 服务,避免病毒继续传播

1.清除的 web 服务器中的两个后门文件:/msadc/root.exe , /scripts/root.exe
  这两个文件的物理地址一般情况下默认为:
C:\inetpub\scripts\root.exe
C:\progra~1\common~1\system\MSADC\root.exe
2.清除本地硬盘中:c:\explorer.exe 和 d:\explorer.exe ,
  先要杀掉进程explorer.exe,打开任务管理器,选择进程。检查是否进程中有两个
 "exploer.exe".如果您找到两个"exploer.exe",说明木马已经在您的机器上运行了,
在菜单中选择 查看 -> 选定列 -> 线程计数,按确定。这时您会发现显示框中增加了新
的一列"线程数"。检查两个"exploer.exe", 显示线程数为"1"的"exploer.exe"就是木马
程序。你应该结束这个进程。
  之后,你就可以删除掉C:\exploer.exe和D:\exploer.exe了,这两个程序都设置了
隐藏和只读属性。你需要设置"资源管理器"的 查看 -> 选项 -> 隐藏文件 为"显示所有
文件"才能看到它们。
3.清除病毒在注册表中添加的项目:
  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 将被完全控制。
4.重新启动系统,以确保 CodeRed.v3 彻底清除。
  如果要确保清除病毒后不再次被感染,就需要安装微软发布的补丁。
网络安全:http://netsafe.ayinfo.ha.cn/  E-mail:netsafe@371.net

--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.127]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店