Threat Description

Nymph

Details

Aliases: Nymph, Roach, Roach.b, W32/Roach, I-Worm.Roach.b
Category: Malware
Type: Worm
Platform: W32

Summary



Nymph is a mass-mailer with backdoor capabilities created by ASM/iKX group. It is one of the first worms that uses search engine of a webserver to find victim's e-mail addresses. The worm is disguised as 'E-fortune cookie generator'. This worm is a variant of W32/Roach worm and it has a few serious bugs that don't allow it to work even for a short while on an infected system. The worm itself is a Windows PE EXE file about 29kb long. The code of the worm is encrypted with a simple XOR encryption loop.



Removal



Automatic Disinfection

Allow F-Secure Anti-Virus to disinfect the relevant files.

For more general information on disinfection, please see Removal Instructions.



Technical Details



When started the worm first gets API addresses of certain functions from KERNEL32.DLL, WSOCK32.DLL, WININET.DLL, USER32.DLL, MPR.DLL, ADVAPI32.DLL, IMAGEHLP.DLL, SETUPAPI.DLL. Many of the functions are not used in this worm version, but might be added in the future. The the worm would get the ability to spread in Windows networks, infect files, intercept EXE file starting, use miltiple IRC servers and so on.

First the worm checks from what file is started. If the file name ends with 'okie' (cookie.exe), the worm generates a random number and shows a messagebox with a text that corresponds to this number (see cookie texts below). This is done to disguise worm installation to a system. If the worm is started from a file which name ends in 'om32' (dccom32.exe), the worm sets a flag that it is already installed and doesn't show any messageboxes.

The worm then gets to \Windows\System\ directory and drops a short ZIP archive from inside its body as EGGCASE.ATT. This archive has only FILE_ID.DIZ file with the following text:

FortuneCookie 32 - Version 1.0
 * FREEWARE *
 DESCRIPTION:
 ============
 FortuneCookie 32 is a Windows 32 version of the classical
 fortune cookies you can get at some restaurants. It's very
 simple double clicking on the cookie.exe file will bring up a
 fortune cookie.
 This program is freeware so feel free to send out a word of
 wisdom to your friends!

If the worm fails to drop this archive to \Windows\System\ directory, it tries to drop it into temporary folder. After that the worm looks for EGGCASE*.ATT files and immediately finds a dropped EGGCASE.ATT file. The worm then copies its file as DCCOM32.EXE into Temp and \Windows\System\ folders and creates a startup key with the name 'dcomdriver' for one of dropped files in the default Run keys:

[HKLM\Software\Microsoft\Windows\CurrentVersion\Run\]

Then the worm adds its file as COOKIE.EXE to the ZIP archive (eggcase.att) that it previously dropped. The worm does not use any ZIPping utility, it just adds its file 'as is' to the end of the archive, corrects and adds necessary data to make an archive valid. This archive will be used by the worm as an attachment to infected messages.

After that the worm waits for some time and then verifies Internet connection state. If there's no connection, the worm waits and tries again. If a valid connection is found, the worm creates additional 2 threads and puts its main thread into infinite wait loop. The first thread is the worm spreading thread, the second thread is a backdoor thread that uses IRC.

When thread 1 is started it waits for some time, checks Internet connection state and if a valid connection is found, it creates 3 sockets, resolves host name for 'pop.hotpop.com', 'diemen.nl.eu.undernet.org' (IRC server, there's one more server name in the worm's body, but it's never used) and 'wwp.icq.com' (ICQ Personal Communication Center) servers. The worm then reads settings from Microsoft Internet Account Manager or if it is not available from Outlook OMI Account Manager. It gets information about a default account and tries to connect to user's SMTP server. If the server is not available, the worm tries to use 'mail.hotmail.com' server. If user's SMTP server is accessible, the worm still changes it to 'smtp.hotpop.com' and then changes user's e-mail address to 'fearandwonder@hotpop.com'. These changes are in effect only when the worm is active, as it doesn't modify these settings in the Registry.

Then the worm gets Windows registered user name from the Registry. If there's no user name there, the worm generates a random number and selects the name corresponding to this number from its internal table:

dark
 evil
 lost
 cool
 kewl
 fool
 hack
 dead
 head
 bozz

This name will be used in 'From:' field of an infected e-mail that the worm sends itself out. Then the worm generates 3 more random numbers and fills a search form that will be used to search for e-mail addresses on a webserver. The form looks like that:

POST /scripts/srch.dll HTTP/1.1
 User-Agent: Mozilla/4.73 (Windows 95; U) Opera 4.02  [en]
 Host: wwp.icq.com
 Accept: text/html, image/png, image/jpeg, image/gif,
 image/x-xbitmap, image/vnd.wap.wbmp;level=0, */*
 Accept-Language: en
 Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
 Referer: http://www.icq.com/whitepages/search.html
 Connection: Keep-Alive
 Content- application/x-www-form-urlencoded
 Content-length: 212
 FirstName=&LastName=&NickName=&Email=&AgeRange=0-0&Gender=0&Lang=12
 &City=&State=&Country=0&Occupation=0&Dept=&Company=&PastInfo=0
 &PastRightteaserLead=&Interest=0&InterestText=&SubInterest=&Group=0
 &GroupText=&SEND=Search

Finally the worm connects to a webserver and sends the form there. When it gets a reply it looks for e-mail address and then sends an infected e-mail to that address. The worm uses Microsoft anonymous SMTP server to send e-mails. The worm randomly composes sender's name from 2 tables and adds '@hotmail.com' in the end. The first table is shown above, the second table is:

trooper
 travler
 nemonic
 _maniac
 _master
 _avatar
 _jesuzz
 riddler
 _satan_
 lucifer

The subject line if an infected e-mail is 'Subject: Fw:' followed by one of the randomly selected cookie texts (see table below). The recepient info is 'To: <removed>'. The worm uses EGGCASE.ATT archive (with FILE_ID.DIZ and its file COOKIE.EXE) as an attachment. The attachment name is FORTUNE.ZIP and it is sent MIME-encoded. The worm also sends the second attachment - a body of itself as SETUP.EXE file hoping that a user will run at least one of the attachments. The message body is in HTML format, it looks like that (black text on bright blue background):

SMACK!!!
 You have been hit
 This is the funny-attachment war! You have just been hit and by
 the rule book you can't hit this person back. To be in the game
 you need to send this message to five of your friends, try to
 find some small and funny attachment to send along. If you don't
 have time use the one you got hit by, go ahead hit someone!

In the end of the infected e-mail there is '--nymph--' text.

When thread 2 is started, it generates a nick from 'nymph' plus random 4-digit number ('nymph1234' for example), connects to 'diemen.nl.eu.undernet.org' IRC server and sets invisible mode for a user with the generated nick. Then the worm joins #nymph channel and sends a private message:

[I-Worm-Nymph v.1.1] by Asm/iKX

Then the worm enters the loop that handles incoming IRC messages. The worm responds to 'PING', 'JOIN', 'INVI', 'PRIV' and '319' messages. The worm can join a channel when instructed by join and invitation commands and enters a private chat session on PRIV command. In the private channel session the worm has backdoor capabilities. It responds to 3 messages: 'msgx' - quit, 'msgi' - get information about worm version and 'msgu' - upload and run a file. When 'msgu' message is received, the worm creates an additional thread that allows to download and run a specified file on an infected computer. The file is downloaded with a random name into Temp folder and is activated by the worm.

The worm has the following cookie texts:

it is predictable, but I wouldn't like to predict it myself. - C. Lawson
 100,000 lemmings can't be wrong.
 A friend in need is a pain in the ass.
 A man is as old as he feels. But never as important.
 A man is as old as the woman he feels.
 Always be sincere - Even when you don't mean it.
 Always tell her she's pretty, especially when she isn't.
 Anyone who can see through a woman is missing a lot.
 Avoid life - It'll kill you in the end.
 Do to the other fellow as he would do unto you. But for God's
  sake do it first!
 Experience, the name given by men to their mistakes.
 Get stoned - Drink liquid cement.
 Happiness can't buy money.
 If a woman wants to learn to drive, don't stand in her way.
 Join the army, travel the world, meet interesting people and shoot them.
 Just because you're paranoid it doesn't mean they aren't out to get you.
 Life is a sexually transmitted disease.
 Love Thy Neighbour - But don't get caught.
 Money can't buy friends but it can buy a better class of enemy.
  - Spike Milligan.
 Never put off till tomorrow what you can avoid altogether.
 Racial prejudice is a pigment of the imagination
 Smoking - think of it as evolution in action.
 Sudden prayers make God jump.
 When faced with two evils I like to do the one I've never tried
  before. - Mae West
 Live fast, Die young, Leave a good looking corpse.
 A Wise Man can see more from the bottom of a well than a Fool
  can see from the top of a mountain.
 Walk softly but carry a big stick.
 TO DO IS TO BE - Socrates%TO BE IS TO DO - Sartre%DO BE DO BE DO - Sinatra
 It is better to keep your mouth closed and let people think  you
  are a fool than to open it and remove all doubt. - Samual
  Clemmens
 What you can not avoid, Welcome.
 If you can't tie good knots... tie many.
 Anything free is worth what you pay for it.
 Two wrongs do not make a right; it usually takes three or more.

The worm also has the following text strings that are never displayed:

[I-Worm.Nymph@MM v.1.1] by Asmodeus iKX
 creech, creech... we will infest.
 Info - this is a stripped version of W32/Roach,
 it will pave way for its larger cousin.
 Greets : Lifewire/iKX, BillyBel/iKX, StarZero/iKX
 SimpelSimon, Ultras, Vecna, T-2000, and the rest
 of the ikx family





Technical Details: Alexey Podrezov, F-Secure Corp., July 2001


SUBMIT A SAMPLE

Suspect a file or URL was wrongly detected? Submit a sample to our Labs for analysis

Submit Now

Give And Get Advice

Give advice. Get advice. Share the knowledge on our free discussion forum.

Learn More