“红色代码”病毒是2001年7月15日发现的一种网络蠕虫病毒,感染运行Microsoft IIS Web服务器的计算机。其传播所使用的技术可以充分体现网络时代网络安全与病毒的巧妙结合,将网络蠕虫、计算机病毒、木马程序合为一体,开创了网络病毒传播的新路,可称之为划时代的病毒。如果稍加改造,将是非常致命的病毒,可以完全取得所攻破计算机的所有权限并为所欲为,可以盗走机密数据,严重威胁网络安全。
红色病毒首先被eEye Digital Security公司的雇员Marc Maiffret和Ryan Permeh发现并研究。他们将其命名为“Code Red”,因为他们当时在喝Code Red Mountain Dew。
“红色代码”蠕虫采用了一种叫做"缓存区溢出"的黑客技术,利用微软IIS的漏洞进行病毒的感染和传播。该病毒利用HTTP协议,向IIS服务器的端口80发送一条含有大量乱码的GET请求,目的是造成该系统缓存区溢出,获得超级用户权限,然后继续使用HTTP向该系统送出ROOT.EXE木马程序,并在该系统运行,使病毒可以在该系统内存驻留,并继续感染其他IIS系统。Code Red在向侵害对象发送GET乱码时,总是在乱码前加上一个后缀为.ida的文件名,表示它正在请求该文件,这是红色代码的重要特征。
设置运行环境。首先修改堆栈指针,设置堆大小为0218H字节。接着使用RVA(相对虚拟地址)查找Get Proc Address的函数地址,再调用此函数获得其他函数的地址,如socket,connect,send,recv,close socket等。
如果C: ot worm文件存在,则不进一步传染其他主机。
传染其他主机。创建100个线程,其中99个线程用于感染其他的Web服务器。通过一个算法来计算出一系列的IP地址作为传染目标。按照IP地址的生成算法,能够产生重复传染的情况,从而在这些服务器之间传输大量的数据而消耗其网络带宽,达到拒绝服务攻击的效果。
篡改主页。如果系统的默认语言不为美国英语(代码页不等于0x409),第100个线程和前99个线程一样去感染其他系统。否则会篡改系统的网页,被感染的Web服务器的网页将被篡改成某条消息。这个消息持续10h后会消失。与其他通过网络攻击篡改网页的方法不同,该病毒并不修改磁盘上的主页文件,而是修改w3svc.dll的TcpSockSend入口指向病毒代码,当浏览器访问这个被感染的Web服务器时,TcpSockSend返回前述的篡改消息。
产生对电脑的白宫的拒绝服务攻击。每一蠕虫线程都会检查C: ot worm文件。如果文件存在,则转为休眠,否则检查当前时间,如果时间在20:00UTC和23:59UTC之间,将对白宫进行攻击。创建一个socket并与白宫网站的80端口建立连接,并发送18000H(98K字节)的数据。在休眠大约415h后,再次重复发送数据。由于在全世界范围内有大量Web服务器被感染,其结果就可能会产生对白宫网站的拒绝服务攻击。
篡改被感染的网站,使其显示上节中提到的消息。
蠕虫病毒的活动一般与时间相关,根据系统时间不同会采取不同的活动:
1-19天
通过查找网络上更多地IIS服务器尝试自我传播。
20-27天
对几个固定的IP地址发动拒绝服务攻击,包括白宫的IP地址。
28天到月末
休眠,没有攻击活动。
检查服务器日志
检查web服务器的日志文件,如果出现下面的字符串,则表示可能遭到红色代码病毒的攻击:
GET/default.ida?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=aHTTP/1.0
如果在1025以上端口出现很多SYN SENT连接请求,或者1025号以上的大量端口处于listening状态,那么你的机子也是已经遭受红色代码病毒的感染。
如果在以下目录中存在Root.exe文件,则说明已经感染红色代码病毒:
C:/inetpub/scripts/Root.exe
D:/inetpub/scripts/Root.exe
C:/program Files/common file/system/MSADC/Root.exe
D:/program Files/common file/system/MSADC/Root.exe
C:/explorer.exe
D:/explorer.exe
(1)结束进程explorer.exe
有两个explorer进程。关闭其中线程计数为1的进程。
(2)删除上节“检查文件”中列出的文件
(3)打开“计算机管理”、"服务和应用程序"、"默认应用程序",默认web站点,删除其中的C和D的共享。
(4)修改如下注册表键值
HKEY-LOCAL-MACHINE/SYSTEM/Currentcontrolset/Services/w3svc/parameters/virtua/roots
删除其中的/C,/D,并将其中/MSADC和scripts的值217
删除HKEY-LOCAL-MACHINE/Software/Microsoft/windowsNT/currentversion/winlogon
将其中的CFSDisable的值还原为0。
(5)更新最新的操作系统补丁。重启计算机即可。
红色代码II病毒不同于以往的文件型病毒和引导型病毒,它只存在于内存中,传染时不通过文件这一常规载体,可以直接从一台电脑内存感染到另外一台电脑的内存,并且它采用随机产生IP地址的方式,搜索未被感染的计算机,每个病毒每天能够扫描40万个IP地址,因而其传染性特别强。一旦病毒感染了计算机后,会释放出一个特洛伊木马程序,为入侵者大开方便之门,黑客可以对被感染的计算机进行全程遥控。且红色代码II病毒不仅能感染英文Windows2000和NT,同时也可以感染中文操作系统。
“红色代码II”蠕虫代码首先会判断内存中是否以注册了一个名为CodeRedII的Atom(系统用于对象识别),如果已存在此对象,表示此机器已被感染,蠕虫进入无限休眠状态,未感染则注册Atom并创建300个恶意线程,当判断到系统默认的语言ID是中华人民共和国或中国台湾时,线程数猛增到600个,创建完毕后初始化蠕虫体内的一个随机数生成器(Rundom Number Generator),此生成器随机产生IP地址让被蠕虫去发现这些IP地址对应的机器的漏洞并感染之。每个蠕虫线程每100毫秒就会向一随机地址的80端口发送一长度为3818字节的病毒传染数据包。巨大的蠕虫数据包使网络陷于瘫痪。
红色代码三代病毒允许黑客拥有远程访问web服务器的完全权限。红色代码三代发现于2001年8月4日,因为它同样利用缓存溢出对其他网络服务进行传播,所以被称为原红色代码病毒的变种。红色代码三代具有很高的危险性,红色代码蠕虫病毒会感染运行微软index server 2.0或windows 2000索引服务的系统,它只会威胁到在windos NT和windows 2000操作系统上运行IIS 4.0和IIS 5.0的计算机。红色代码三代能够建立超过300个进程来寻找其他容易被攻击的服务器以进行传播。红色代码三代能探测更多的IP地址,这引起Internet访问量的增加和网络速度的下降。