- registry entries named with 8 hex letters in
HKLM \Software\Microsoft\Windows\CurrentVersion\Run and RunServices.
You may want to try to start Windows in safe mode, delete the registry entries specified above and delete the files referred by them.
Let BitDefender delete infected files.
It is important to install the updates described in Microsoft Security Bulletins MS03-039 and MS04-011.
Bogdan Dragu BitDefender Virus Researcher
Version A (exploits the LSASS vulnerability - see Microsoft Security Bulletin MS04-011):
The worm comes as an EXE, but its main functionality is contained in a DLL embedded in the EXE. The EXE was written in Assembler and/or C, linked with the linker in Visual C++ 6 and encrypted with a simple algorithm; the DLL was written in Visual C++ 7.10 and packed with UPX.
When run, the EXE decrypts itself, gets the functions it needs from kernel32 and user32, drops the embedded DLL to a temporary file with the name starting with a '~' character and attempts to inject and run the DLL in the address space of the process that owns the Shell_TrayWnd window (Windows Explorer) using the classic VirtualAllocEx/WriteProcessMemory/CreateRemoteThread method (this works on NT versions of Windows); if it fails, it calls RegisterServiceProcess to hide itself from the Task Manager (on Windows 9x) and loads and runs the DLL in its own address space. In either case, the DLL's exported function "Run" is called with a parameter containing the current command line; this way, the pathname of the EXE is known by the DLL.
The DLL uses a mutex called "00:24:03:54A9D" to avoid multiple copies of itself running. A thread is created to check for Internet connection and copy the IP of the local machine to a global string every 5 seconds.
In order to uniquely identify the infected machine, the serial number of the harddisk drive containing the Windows folder (or the C: drive) is used to generate an 8 hexadecimal digits string.
All files in the temporary folder that have the name starting with '~' are deleted (including the dropped DLL); the EXE is copied to the Windows System folder in two files named [5 to 14 random letters].exe; the registry entries HKLM\Software\Microsoft\Windows\CurrentVersion\Run\[hdd id] and HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices\[hdd id] are created to run these files at every startup.
The main routine waits for a connection to Internet; it attempts to access a script on the following hosts:
- http://[5 to 12 random letters].dns4biz.org
where [X] loops through all hexadecimal digits.
The script is called "reg"; the worm reports the hdd id and the version of the worm (114 for Bobax.A). The reply must include the hdd id as the first 8 characters; the rest of the reply specifies a command and an argument to that command; the following actions can be performed, depending on the command:
- "upd": An EXE is downloaded from a specified URL and launched; the worm ends its execution;
- "exe": An EXE is downloaded from a specified URL; the worm doesn't end its execution;
- "scn": Infects other machines. The worm creates an HTTP server on a random port between 2000 and 61999; any client that connects is given the copy of the worm to download (as image/gif); this is used to upload the copy of the worm to the exploited machines.
The IP's to infect are generated from the local IP by keeping the first 1 or 2 bytes and generating random values for the last bytes; 128 threads are created in order to infect 128 machines (65 of these threads keep only the 1st byte of the local IP and modify the other 3; the other 63 keep the first 2 bytes of the local IP and modify the other 2). The worm first attempts a connection to TCP port 5000 of the target IP; it then sends the exploit SMB packets to the LSASS service on TCP port 445. The exploit code will download a copy of the worm from the HTTP server as "svc.exe" and run it.
- the worm can download some data that is used to set up an email relay; the data is downloaded from a specified host's "get" script to a temporary file named [crc of full URL]_[hdd id].tmp; the data is checked for integrity using a simple hash function; a status
- the worm can also report some progress information to a "status" script on a specified website;
- "spd": reports the following information to a "speed" script running on a specified website: hdd id, Internet connection speed (number of bytes per second when downloading a maximum of 512 KB from a specified URL), RAM size, total free space on fixed drives, operating system version, CPU type & speed, IP, screen resolution.
Version C is similar to version A, but besides the LSASS vulnerability, it also attempts to infect other machines by exploiting the DCOM RPC vulnerability (see Microsoft Security Bulletin MS03-039) (packets are sent to TCP port 135).
It reports version 117 instead of 114 to the "reg"scripts; it opens one of the following URL's:
It also tries to open the following URL besides the ones listed for A:
- http://[5 to 12 random letters].no-ip.info.