Information about the Network Worm "Nimda"

18 Sep 2001
Virus News

This is a virus-worm that spreads via the Internet attached to infected e-mails, and copies itself to shared directories over a local network, and also attacks vulnerable IIS machines (Web sites). The worm itself is a Windows PE EXE file about 57Kb in length, and is written in Microsoft C++.

In order to run from an infected message, the worm exploits a security breach. The worm then installs itself to the system, and runs a spreading routine and payload.

The worm contains the following "copyright" text string:

Concept Virus(CV) V.5, Copyright(C)2001 R.P.China

Installing

While installing, the worm copies itself:

  • to the Windows directory with the MMC.EXE name
  • to the Windows system directory with RICHED20.DLL (and overwrites original Windows RICHED20.DLL file) and with the LOAD.EXE name.

The last one is then registered in the auto-run section in a SYSTEM.INI file:

[boot] shell=explorer.exe load.exe -dontrunold

The worm also copies itself to a Temporary directory with random MEP*.TMP and MA*.TMP.EXE names, for example:

mep01A2.TMP
mep1A0.TMP.exe
mepE002.TMP.exe
mepE003.TMP.exe
mepE004.TMP

EXE files have Hidden and System attributes, as well as a LOAD.EXE file (see above).

The worm then runs its spreading and payload routines. Depending on the Windows version, the worm affects the EXLORER.EXE process, and may run its routines as an EXPLORER' background process (thread).

Spreading via E-mail

In order to send infected messages, the worm connects to a host machine by using SMTP protocol, and sends its copies to victim addresses.

In order to obtain victim e-mail addresses, the worm uses two ways:

1. scans *.HTM and *.HTML files and looks for e-mail-like strings

2. by using MAPI, connects to MS Exchange e-mail boxes and obtains e-mail addresses from there.

The infected messages are of HTML format and contain:

Subject: empty or random
Body: empty
Attach: README.EXE

Subjects are chosen from the name of a randomly selected file from a folder:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal
usually this is "My Documents" or a randomly selected file on the C: drive.

In order to spread from infected messages, the worm uses an "IFRAME" trick; the vulnerability described at:

Microsoft Security Bulletin (MS01-020): Incorrect MIME Header Can Cause IE to Execute E-mail Attachment http://www.microsoft.com/technet/security/bulletin/MS01-020.asp

Download patch: http://www.microsoft.com/windows/ie/downloads/critical/q290108/default.asp

What causes the vulnerability?

If an HTML mail contains an executable attachment, whose MIME type is incorrectly given as one of several unusual types, a flaw in IE will cause the attachment to be executed without displaying a warning dialogue.

What does the patch do?

The patch eliminates the vulnerability by correcting the table of MIME types and their associated actions in IE. This has the effect of preventing e-mails from being able to automatically launch executable attachments.

Spreading via the local network

The worm scans local and shared (mapped) remote drives in three different manners, and infects all accessible directories in there.

While infecting, the worm uses two different ways:

1. It creates .EML (in 95%) or .NWS (in 5%) files with randomly selected names. As a result, these EML and NWS files are everywhere on an infected machine (and in the local network), and there may be thousands of them. These files contain the worm's copy in e-mail form.

The e-mail form is an HTML e-mail message with the worm's copy in an MIME envelope, and with a IFRAME trick as described above. Upon being opened, this message immediately infects a vulnerable machine.

2. The worm looks for filename+extension combinations:

*DEFAULT* , *INDEX* , *MAIN* , *README* + .HTML, .HTM, .ASP

(*NAME* means that may be a sub-string in the file name)

In case such file is found, the worm copies itself in e-mail form to there with the README.EML name, and appends to a victim's HTM/ASP file a JavaScript program that simply opens the README.EML file when the HTML/ASP file is being opened, and it activates the worm as a result.

As a result, the worm infects Web pages, and may spread to machines that visit these Webs.

Spreading as an IIS attack

To upload its file to a victim's machine, the worm uses a "tftp" command, and activates a temporary TFTP server on an infected (current) machine to process the "get data" command from the victim's (remote) machine in exactly the same way as the {"BlueCode":IISWorm_BlueCode} IIS worm.

The name of file that is uploaded to a victim's machine is ADMIN.DLL.

Payloads

The payload routine adds "Guest" user to the Administrator User Group (as a result, a "Guest" user has full access to an infected machine).

The worm also opens all local drives for sharing.