Discovered: August 2, 2002
Updated: February 13, 2007 11:40:00 AM
Type: Virus
Systems Affected: Windows 2000, Windows 95, Windows 98, Windows Me, Windows NT, Windows XP
When W32.Golsys.8020 is executed, it does the following:
First, it needs to import several functions from the file Kernel32.dll. Therefore, the virus begins its malicious actions by attempting to find the base (the start of the file) of Kernel32.dll in memory. After it finds the base, it manually gets the address to several functions inside Kernel32.dll. The virus does this by parsing the export table by itself. The imported APIs will enable the virus to allocate memory, load dll files into its own address space, and get addresses to functions inside the loaded .dll files without having to manually parse the export table.
Next, the virus attempts to allocate 4,940 bytes of memory, but this will result in 8 KB of allocated memory, because memory is allocated in 4 KB pages. It then attempts to load Kernel32.dll into its own memory space by using the LoadLibrary function from Kernel32.dll. By loading a .dll file in its own memory space, the virus can use a Windows API to get addresses to functions inside the .dll file.
Next, the virus imports a long list of functions from Kernel32.dll. It stores the addresses of these functions in the memory area that it just created. At this point, the main thread launches a secondary thread. The main thread jumps to the start of the host file, and thereby allows the original host to execute.
Under Windows, if the main thread stops executing, all secondary threads will be terminated by the operating system. Therefore, when the original host has finished executing, all viral threads will also be terminated.
The secondary thread starts by finding the path to the %system% folder and creating Sysl0gon.exe in that folder. It also determines the path to the %windir% folder and saves the path to it in memory.
NOTES:
- %system% is a variable. The virus locates the System folder. By default this is C:\Windows\System (Windows 95/98/Me), C:\Winnt\System32 (Windows NT/2000), or C:\Windows\System32 (Windows XP), and copies itself to that location.
- %windir% is a variable. The virus locates the Windows main installation folder (by default this is C:\Windows or C:\Winnt) and copies itself to that location.
Next, the virus imports many APIs from several different .dll files. It again saves the addresses to the functions in memory. When it has finished, it may delete Sysl0gon.exe from the %system% folder or encrypt it with a dword or key.
NOTE: Sysl0gon.exe is not by itself a viral file; thus, it is not be detected by NAV. It is only used to store data by the virus.
At this point, the secondary thread will launch many threads. The virus keeps track of how many threads it has launched by increasing a counter for each one. These threads search through all drives on the system and attempt to infect all executable files that they find. When the virus infects files, it also adds an infections marker. This prevents the virus from infecting the same file twice.
The virus runs itself as a service process, and it sleeps for a short while between file infections. This is most probably done in an attempt to go unnoticed.
Recommendations
Symantec Security Response encourages all users and administrators to adhere to the following basic security "best practices":
- Use a firewall to block all incoming connections from the Internet to services that should not be publicly available. By default, you should deny all incoming connections and only allow services you explicitly want to offer to the outside world.
- Enforce a password policy. Complex passwords make it difficult to crack password files on compromised computers. This helps to prevent or limit damage when a computer is compromised.
- Ensure that programs and users of the computer use the lowest level of privileges necessary to complete a task. When prompted for a root or UAC password, ensure that the program asking for administration-level access is a legitimate application.
- Disable AutoPlay to prevent the automatic launching of executable files on network and removable drives, and disconnect the drives when not required. If write access is not required, enable read-only mode if the option is available.
- Turn off file sharing if not needed. If file sharing is required, use ACLs and password protection to limit access. Disable anonymous access to shared folders. Grant access only to user accounts with strong passwords to folders that must be shared.
- Turn off and remove unnecessary services. By default, many operating systems install auxiliary services that are not critical. These services are avenues of attack. If they are removed, threats have less avenues of attack.
- If a threat exploits one or more network services, disable, or block access to, those services until a patch is applied.
- Always keep your patch levels up-to-date, especially on computers that host public services and are accessible through the firewall, such as HTTP, FTP, mail, and DNS services.
- Configure your email server to block or remove email that contains file attachments that are commonly used to spread threats, such as .vbs, .bat, .exe, .pif and .scr files.
- Isolate compromised computers quickly to prevent threats from spreading further. Perform a forensic analysis and restore the computers using trusted media.
- Train employees not to open attachments unless they are expecting them. Also, do not execute software that is downloaded from the Internet unless it has been scanned for viruses. Simply visiting a compromised Web site can cause infection if certain browser vulnerabilities are not patched.
- If Bluetooth is not required for mobile devices, it should be turned off. If you require its use, ensure that the device's visibility is set to "Hidden" so that it cannot be scanned by other Bluetooth devices. If device pairing must be used, ensure that all devices are set to "Unauthorized", requiring authorization for each connection request. Do not accept applications that are unsigned or sent from unknown sources.
- For further information on the terms used in this document, please refer to the Security Response glossary.
Writeup By: Neal Hindocha