Email-Worm.Win32.Happy or Happy also known as Happy99 is an email/newsgroup worm that also behaves in some ways like a virus and trojan. It was created by Spanska and appeared in the 4th edition of the 29A virus magazine. Although Happy99 is wild, it has no destructive payload and is, as its author describes, a "sympathetic hitchhiker who uses your internet connection to travel, and thank you for the trip with a small animation."
This is the first known modern internet worm discovered "in the wild." This computer worm is a kind of virus program that, while spreading its copies, does not infect disk files as the main target, but replicates its copies by sending itself via the Internet as an attachment in e-mail messages. The worm was posted by somebody (maybe by the worm's author) to several news servers in January 1999, and then in few days, it was discovered "in the wild" in Europe and continued spreading.
The worm arrives as an attachment in an e-mail as a HAPPY99.EXE file. When an infected attachment is executed and gains control, the worm displays a firework in the program's window to hide its malicious nature. During this, it installs itself in the system, hooks sendings to the Internet, converts its code to the attachment and appends it to the messages. As a result the worm, when it is installed into the system, is able to spread its copies to all the addresses the messages are sent to.
While installing, the worm affects files in the Windows system directory only. It creates the SKA.EXE and SKA.DLL files in there, copies the WSOCK32.DLL to the newly created WSOCK32.SKA and patches the original WSOCK32.DLL file to hook e-mail sending calls.
The worm arrives exactly as a 10.000-byte executable HAPPY99.EXE file. This file has Win32 Portable Executable (PE) internal structure. The worm installs itself into the Win95/98 systems and continues spreading with no problems. Under WinNT, it is not able to spread because of bugs.
The worm contains text strings, some of them are encrypted:
Is it a virus, a worm, a trojan? MOUT-MOUT Hybrid (c) Spanska 1999. Happy New Year 1999 !! begin 644 Happy99.exe end \Ska.exe \liste.ska \wsock32.dll \Ska.dll \Ska.exe
When the HAPPY99.EXE file is executed, the worm copies itself to the Windows system directory with the SKA.EXE name and drops the additional SKA.DLL file in the same directory. The SKA.DLL is stored in the main EXE file (HAPPY99.EXE) in encrypted and lite-packed form.
The worm then copies the WSOCK32.DLL to the WSOCK32.SKA name (makes a "backup") and patches the WSOCK32.DLL file. If the WSOCK32.DLL is in use and cannot be opened for writing, the worm creates a new key in the system registry to run its dropper during the next rebooting:
The WSOCK32.DLL patch consists of a worm initialization routine and two redirected exports. The initialization routine is just a small piece of worm code - just 202 bytes. It is saved to the end of WSOCK32.DLL code section (".text" section). The WSOCK32.DLL has enough space for that, and the size of WSOCK32.DLL is not increased during infection. Then the worm patches the WSOCK32.DLL export tables so that two functions ("connect" and "send") will point to the worm initialization routine at the end of WSOCK32.DLL code section.
When a user is connecting to the Internet the WSOCK32.DLL is activated, and the worm hooks two events: connection and data sending. The worm monitors the e-mail and news ports (25 and 119 - smtp and nntp). When it detects a connection on one of these ports, it loads its SKA.DLL library that has two exports: "mail" and "news". Depending on the port number, the worm calls one of these routines, but both of them create a new message, insert UUencoded worm HAPPY99.EXE dropper into it, and send it to an Internet address. The worm also adds its stamp to the kludge header of "infected" messages:
While sending infected attachments, the worm stores the recipients' addresses to the LISTE.SKA file in the Windows system directory. This "log" file contains up to 5K of data, and may contain up to about 200 addresses the infected messages were sent to.
Happy File size of 15392 bytes.
Creates the following files on an infected computer: