computer 版 (精华区)

发信人: ghost (hurt my heart), 信区: network
标  题: 红色代码分析
发信站: 听涛站 (2001年09月05日13:27:49 星期三), 站内信件

 

  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" atom。
   (用来表示此主机已经被感染。)
  (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,则新的
攻击地址可能为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.

  很多情况下,与被感染的主机在同一或相近网段内的主机也使用相同的系统。
因此,蠕虫使用这种机制就会大大增加感染的成功率。

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\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中的补丁,你就可能执行
这个木马程序;否则,你不会执行这个木马。  


 

--
一个男人,最重要的是要对你做过的事情负责,勇于承担所作事情的后果
(不论它结局是好还是坏)

                                     ---无名氏
※ 来源:·听涛站 tingtao.dhs.org·[FROM: 匿名天使的家] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:1.231毫秒