| Description:
|
Details
Worm.Linux.Slapper
"Slapper" is an Internet worm that infects Linux machines running the popular "Apache" web server software. It does that by exploiting a vulnerability in the "Secure Sockets Layer" SSL "mod_ssl" interface code of the server which was originally reported on July 30, 2002, and listed by the Computer Emergency Response Team (CERT) as the Vulnerability Note VU#102795. (http://www.kb.cert.org/vuls/id/102795)
The configurations vulnerable to the specific exploit implementation used by the worm are Intel x86 Linux Apache installations with OpenSSL older than 0.9.6e and 0.9.7-beta. Updating to one of these two versions or other more recent releases will patch the vulnerability and prevent the worm from infecting the system.
The worm source is approximately 68.4KBytes in size, and has some similarities with the "I-Worm.Scalper" reported earlier this year, which also hit Apache servers through a buffer overflow exploit.
Besides infecting more computers to spread further, the worm will act as a backdoor on the victim, and allow any potential attacker to run commands as well for launch various types of Denial-Of-Service attacks through a distributed network aintained between the infected machines.
Technical details of the "Slapper" worm
Like in the case of the older "Scalper" worm, the attacks are mounted against randomly-generated IP address classes of the format a.b.x.x, where "a" is selected from an array of 162 possible choices, "b" is a full 1-byte long random choice, and "x.x" are scanned incrementally from "0.0" up to "255.255". For each random IP address, the worm checks if it doesn't loop back to the local machine (eg. addresses of the form 127.x.x.x), then it tries to connect on port 80 and send a simple "GET /" request to check if the server runs an Apache version. Next, the worm will check if the specific Apache version reported in the HTTP headers match any of the versions it knows to infect, and if so, proceed further. In the case an Apache server was detected, but the apparent version returned is unknown to the worm, the selection for "Red-Hat 1.3.26" will be tried anyway.
The complete list of Linux distributivs with Apache versions the worm knows how to "correctly" infect is the following:
(Apache): "Gentoo", "Debian 1.3.26", "Red-Hat 1.3.6", "Red-Hat 1.3.9", "Red-Hat 1.3.12", "Red-Hat 1.3.12", "Red-Hat 1.3.19", "Red-Hat 1.3.20", "Red-Hat 1.3.26", "Red-Hat 1.3.23", "Red-Hat 1.3.22", "SuSE 1.3.12", "SuSE 1.3.17", "SuSE 1.3.19", "SuSE 1.3.20", "SuSE 1.3.23", "SuSE 1.3.23", "Mandrake 1.3.14", "Mandrake 1.3.19", "Mandrake 1.3.20", "Mandrake 1.3.23", "Slackware 1.3.26" and "Slackware 1.3.26".
So, if the web server reply includes the "Apache" string, the worm will attempt to exploit the SSL vulnerability by first "shaking hands" with the SSL server on port 443, then if the exploit was successful, it will UUENCODE a copy of its source, upload it through the hacked connection in the victim server, compile and then run it. During this process, the UUENCODED copy of the worm will be saved as "/tmp/.uubugtraq", the clear-text source of the worm as "/tmp/.bugtraq.c", and the compiled binary will be stored as "/tmp/.bugtraq".
When run on the victim server, the worm will again enter the replication cycle, looking for more hosts, and activating the backdoor component on the UDP port 2002. No provision is taken against server reboots, as the worm doesn't try to set itself up so that it would receive control every time the system is restarted.
The backdoor accepts a rather large set of commands, between them, flooding remote systems with UDP, TCP, DNS or RAW packets, running local commands, downloading a binary from a remote machine via HTTP and running it, sending mails, providing information on the configuration of the hacked machine, etcall All the communication with the backdoor is encrypted, however, the encryption is static and is probably performed only to prevent direct analysis of the traffic.
As an interesting detail, the worm will attempt to create and maintain a communication network between infected machines, each node having the ability to receive and forward commands. This allows a malevolent "master" to mount a distributed DoS attack in which the single "order" of attack is executed and passed along by all the network participants.
Another interesting detail is that the worm contains a "version" tag, which in this version of "Slapper" is set to "12.09.2002". A similar tag in the previous "Scalper" worm was "26.04.2002".
The following comments, presumably from the author can be seen inside the worm source:
/****************************************************************************
*
* Peer-to-peer UDP Distributed Denial of Service (PUD) *
* by contem@efnet *
and
* I am not responsible for any harm caused by this program! *
* I made this program to demonstrate peer-to-peer communication and *
* should not be used in real life. It is an education program that *
* should never even be ran at all, nor used in any way, shape or *
* form. It is not the authors fault if it was used for any purposes *
* other than educational. * |