Discovered: September 13, 2002
Updated: February 13, 2007 11:53:31 AM
Also Known As: Apache/mod_ssl Worm, Linux/Slapper-A [Sophos], ELF_SLAPPER.A [Trend], Linux.Slapper.Worm [CA], Linux/Slapper.worm.a [McAfee], Worm.Linux.Slapper [AVP], Linux/Slapper [Panda]
Type: Worm
Systems Affected: Linux
When a variant of the Linux.Slapper.Worm family attacks a computer, it attempts to connect on port 80. It also sends an invalid GET request to the server to identify the Apache system. After the worm finds an Apache system, it tries to connect on port 443 to send the exploit code to the SSL service that is listening on the remote computer.
The worm uses a Linux shell code exploit, which runs only on Intel platforms. This code requires the presence of the shell command /bin/sh to properly execute. The worm uu-encodes its own source code and sends it to the remote system. There it decodes the file, compiles it using gcc, and runs the resulting binary file. All the worm files are placed in the /tmp directory.
The worm binary is executed with an IP address as a parameter. This IP address is the address of the attacking computer and is used to create a peer-to-peer network of worm-infected systems for Denial of Service (DoS) attack purposes. Each compromised system listens on a UDP port to receive further instructions. The port changes from one variant to another.
The worm sweeps class B-sized networks, looking for Apache servers. The first byte of the network address is picked randomly from the following list, and the second byte is random:
3, 4, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 29, 30, 32, 33, 34, 35, 38, 40, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 61, 62, 63, 64, 65, 66, 67, 68, 80, 81, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239
There are three known variants of Linux.Slapper.Worm. Currently, Symantec products detect them all as Linux.Slapper.Worm. Here are descriptions of the three variants:
.A variant
The .A variant has the following characteristics:
UDP listening port: 2002
uu-encoded file: .uubugtraq
Source code file: .bugtraq.c
Compiled binary file: .bugtraq
.B variant
The .B variant has the following characteristics:
UDP listening port: 1978
uu-encoded file: .cinik.uu
Source code file: .cinik.c
Compiled binary file: .cinik
The .B variant also collects information about the infected host and sends it to an address on yahoo.com. In addition, the .B variant acts as a virus, infecting some files on the local computer by overwriting them with a copy of the worm binary, and scheduling them for later execution. It attempts to replace all world-readable, writeable, and executable files, but due to a bug, only a small number of these files will be infected. When it sends itself to a new system, the .B variant first looks for the source code in the /tmp directory; if it cannot find the source code, it attempts to download the code from a Web site in Romania. The download fails because the Web site has been closed.
.C variant
The .C variant is transmitted as a uu-encoded archive that contains two source files. It has the following characteristics:
UDP listening port: 4156
uu-encoded file: .unlock.uu
Archive file (.tgz format): .unlock
Source code files: .unlock.c, .update.c
Compiled binary files: httpd, update
One of the .C variant's binaries is named httpd, which is also the name of the Apache server executable. This was done to avoid drawing the attention of administrators when they check the names of the running processes using the "ps" command. The .C variant periodically listens on port 1052/TCP and provides a shell to an attacker who is connecting to this port.
Note: File names beginning with a dot ( . ) will not appear in a normal directory listing obtained using the
ls command. The files can be seen by using the
ls -a command.
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: Peter Szor