How FunLove works
Files infected with W32.FunLove.4099 insert the Flcss.exe file into the \Windows\System (Windows 95/98/Me) or \Winnt\System32 (Windows NT) folder. Whenever the 4,608-byte Flcss.exe file can be created, the virus attempts to execute it as a service on computers running Windows NT. If for any reason the service can not be executed, the virus creates a thread inside the infected program. This thread infects local and network drives by searching for Portable Executable (PE) files with .exe, .scr, or .ocx extensions. The thread then executes inside the infected process and the main thread of the program takes control. In most cases, this does not cause any noticeable delays. When the virus can execute itself as a service process under the "FLC" name, other infected programs will try to insert the Flcss.exe file, but will not create a new infection thread. W32.FunLove.4099 is the second virus that runs as a service on Windows NT.
The WNT.RemEx.A (
W32.RemoteExplore)
virus is very similar in its functions to W32.FunLove.4099, but W32.FunLove.4099 can run on both Windows 95/98 and Windows NT. It is, therefore, considered more successful than WNT.RemEx.A. When the virus runs as a service, it can spread on the local drives, even if no one is logged on. Because of this, the virus can infect files that are normally not accessible after the logon. For example, the virus can infect Explorer.exe on a Windows NT system.
On Windows 95/98 computers, infected programs place the Flcss.exe file in the \System folder and try to execute it as a regular process. If the process cannot be executed, the virus tries to execute the infection thread inside the infected host program.
This virus also attacks the Windows NT file security system. For the virus to attempt the attack, it needs administrative rights in Windows NT Server or Windows NT Workstation during the initial infiltration. Once the Administrator or someone with the equivalent rights logs on, W32.FunLove.4099 has the opportunity to modify the Ntoskrnl.exe file, the Windows NT kernel located in the \Winnt\System32 folder. The virus modifies only two bytes in a security API named SeAccessCheck. W32.FunLove.4099 is then able to give full access to all files to all users, regardless of its original protection, whenever the computer is booted with the modified kernel. This means that a Guest--who has the lowest possible rights on the system--can read and modify all files, including files that are normally accessible only by the Administrator. This is a potential problem, because the virus can spread everywhere, regardless of the actual access restrictions on the particular computer. Furthermore, after the attack, no data can be considered protected from modification by any user.
Unfortunately, the consistency of Ntoskrnl.exe is checked only once during the startup process. The loader, Ntldr, checks Ntoskrnl.exe when it loads into physical memory during startup. If the kernel becomes corrupted, Ntldr is supposed to stop loading Ntoskrnl.exe and display an error message, even before a "blue screen" appears. To avoid this, W32.FunLove.4099 patches Ntldr so that no error messages are displayed, and Windows NT will boot successfully, even if its checksum does not match the original. Since no code checks the consistency of Ntldr itself, the patched kernel will be loaded without notifying the user. Because Ntldr is a hidden, system, and read-only file, W32.FunLove.4099 changes the attributes of it to "archive" before it attempts to patch it. The virus does not change the attribute of Ntldr back to its original value after the patch. FunLove can also infect local and network drives. It enumerates the mapped network drives and infects PE files on those computers. In addition, the Ntoskrnl.exe and Ntldr patch is performed on the network drives. Whenever a computer with sufficient rights maps the System drive of a computer running Windows NT, the virus modifies the kernel and the loader components over the network.
The Ntoskrnl.exe and Ntldr patches are executed by a routine picked up from the
Bolzano virus
. In fact, more than 50 percent of the virus code shows similarities to the Bolzano virus. It is very likely that the author of these two viruses is the same person.
How FunLove locates the mapped drives on a system
FunLove uses the Windows function call WNetEnumResourceA. Details on this function can be found in the Microsoft Developer Network documentation.
Can Ntoskrnl.exe be infected across the network, without Flcss.exe actually being copied to the system?
The worm infects every network drive that it finds through the call to WNetEnumResourceA. As long as the drive is writeable, FunLove will modify Ntoskrnl.exe over the network, even without dropping Flcss.exe onto the system. FunLove does not actually infect Ntoskrnl.exe, but it changes the file's security function. Once the affected computer is restarted, the modified Ntoskrnl.exe and Ntldr are loaded, and security is compromised.
Files not infected
The virus does not infect files that begin with the following characters in their names:
aler
amon
avp
avp3
avpm
f-pr
navw
scan
smss
ddhe
dpla
mpla
These are partial file names of antivirus programs, as well as a few other programs.
Symantec Security Response encourages all users and administrators to adhere to the following basic security "best practices":