CodeRed is a worm that caused possible billions of dollars of damage in the summer of 2001. It contains the text string "Welcome to worm.com Hacked by Chinese!", which is displayed on web pages that the worm defaces. It is also one of the few worms able to run entirely in memory, leaving no files on the hard drive or any other permanent storage (although some variants do this).
CodeRed arrives at a server as a GET /default.ida request on TCP port 80. The request contains code that exploits a known buffer overflow vulnerability in the indexing software in Microsoft's Internet Information Server (IIS), allowing the worm to run code from within the IIS server (described by Microsoft here). The worm runs entirely in memory, and cannot be found on the disk. It is about 3,569 bytes long.
The signature of CodeRed will appear in access logs as:
GET /default.ida?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN%u9090%u6858%ucbd3%u7801%u9090 %u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53f f%u0078%u0000%u00=a HTTP/1.0
Using the CreateThread API, the worm will try to create 100 threads or copies of itself, but due to a bug in its code it may actually create many more. Infected computers are likely to have high CPU loads because of this. Each of the threads checks for the file, C:\Notworm. If the file exists, the worm does not run and the thread goes into an infinite sleep state. It is uncertain what the exact significance of the Notworm file is. There is some speculation that this file may have only existed on one or more of the creator's computers in order to prevent it from infecting them.
If the date is between the 20th and 28th of any month, the worm will send junk data to port 80 on 220.127.116.11, then the IP address of whitehouse.gov (it was changed because of the worm). After the 28th, it goes into an infinite sleep mode and cannot be awakened unless deliberately executed.
The 100th thread of the worm will check the language of the local page of the server. If the language is US English, it will change the page to look like it is hacked by Chinese.
If the date is before the 20th of the month, the next 99 threads attempt to exploit more computers by targeting random IP addresses. To avoid looping back to infect the source computer, the worm will not make HTTP requests to the IP addresses 127.*.*.* . If the default language of the computer is American English, further threads cause Web pages to appear defaced. First, the thread sleeps for two hours, and then hooks a function which responds to the HTTP requests. Instead of returning the correct Web page, the worm returns its own HTML code.
"<html><head><meta http-equiv="Content-Type" content="text/html; charset=english"><title>HELLO!</title></head><bady>
<fontcolor="red">Welcome to http://www.worm.com !<br><br>Hacked By Chinese!</font></hr></bady></html> "
This hook lasts for 10 hours and is then removed. However, re-infection or other threads can rehook the function.
The worm attempts to connect to TCP port 80 on a randomly chosen host assuming that a web server will be found. Upon a successful connection to port 80, the attacking host sends a crafted HTTP GET request to the victim, attempting to exploit the buffer overflow in the Indexing Service.
The original CodeRed worm stopped propagating on 2001.07.28, going into "Infinite Sleep Mode". It is believed that the worm will not "awaken" and will not spread again, unless deliberately executed.
This variant is very similar to the original with only two major differences. The signature of CodeRed.II replaces the multiple N's with X's. This variant also drops a trojan called VirtualRoot, which can give a hacker access and control to the server.
CodeBlue uses the "Web Server Folder Traversal" Vulnerability (described by Microsoft here to infect new machines. This variant targets random IP addresses and sends an FTP get request to the target machine. The request causes the target machine to download the file HTTPEXT.dll to an IIS folder with privileges to execute certain commands on the server (scripts, msadc, iisadmin, _vti_bin, iissamples, iishelp, webpub). The worm on the infecting machine executes the .dll file with a URL request, causing the DLL to drop the file SVCHOST.exe into C:\ (the hard drive on most systems, not in any folders). This makes CodeBlue different from CodeRed, as it is written to the hard drive.
Note: There is a legitimate SVCHOST.exe file in the Windows System Folder, do not mistake it for CodeBlue, as it is an important system file. CodeBlue will be located at C:\ (just the hard drive and not in any folders.
The worm creates a local machine registry key with a subdirectory "Domain Manager" and adds the value "c:\svchost.exe" so that the worm runs when the machine is started. SVCHOST.exe drops a VBS file, D.VBS, which removes the IIS service mappings .ida, .idq, and .printer.
If the time is between 10:00AM to 11:00AM, the worm will start a denial of service attack against http://www.nsfocus.com/, a Chinese security website.
CodeRed infected between 1 and 2 million computers and resulted in an estimated $2.75 billion in clean-up costs and lost productivity. This is out of a possible 6 million, as that is the number of IIS servers in existence at the time. It was the most costly malware of 2001.
eEye believed that the worm originated in Makati City, Philippines (the same origin as the VBS/Loveletter worm). The defaced web pages strongly suggest that it might come from China.
The virus' name originated from the Code Red Mountain Dew drink.
The webpage reappears in the ResonateII virus.
CodeRed was deemed by the FBI to be so dangerous that it could bring down the entire Internet due to the increased traffic from the scans.
The phrase "Hacked by Chinese", the payload of the original CodeRed, became a cliché to indicate an online defeat.
Kaspersky Labs , Viruslist.com, Net-Worm.Win32.CodeRed.a
CERT, CERT® Advisory CA-2001-19 "Code Red" Worm Exploiting Buffer Overflow In IIS Indexing Service DLL 2001.07.19 - 2002.01.17
CIAC, L-117: The Code Red Worm 2001.07.19
Cliff Changchun Zou, Weibo Gong, Don Towsley. "Code Red Worm Propagation Modeling and Analysis". University of Massachusetts, 2002.
Science Daily, "System Halts Computer Viruses, Worms, Before End-user Stage". 2003.11.12
John W. Lockwood, James Moscola, Matthew Kulig, David Reddick, and Tim Brooks. Internet Worm and Virus Protection in Dynamically Reconfigurable Hardware
Eric Chien. Symantec.com, CodeRed Worm.
Brian Cashell, William D. Jackson, Mark Jickling, Baird Webel, Government and Finance Division. CRS Report for Congress, Received through the CRS Web, "The Economic Impact of Cyber-Attacks". 2004.04.01
McAfee Antivirus. W32/CodeBlue.worm
Michelle Delio. Wired, "Code Blue Targets China Firm". 2001.09.07
-. -, The Hunt for the Worm Writers. 2001.08.09