Descargué la primera URL (http://something.example.com/xx) y ejecuté
$ file xx
xx: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.15, not stripped
Entonces, es un programa ejecutable destinado a ejecutarse en una máquina Linux. Supongo que está ejecutando un servidor Linux. A continuación, queremos ver qué hace el programa, pero, por supuesto, no desea ejecutarlo. Una forma rápida es ignorar todo el código de instrucciones de la computadora incrustado en el ejecutable y solo mirar qué cadenas legibles por humanos podría contener. Entonces, corrí
$ strings xx | less
[... excerpt ...]
NOTICE %s :Receiving file.
NOTICE %s :Saved as %s
NOTICE %s :Spoofs: %d.%d.%d.%d
NOTICE %s :Spoofs: %d.%d.%d.%d - %d.%d.%d.%d
NOTICE %s :Kaiten wa goraku
NOTICE %s :NICK <nick>
NOTICE %s :Nick cannot be larger than 9 characters.
NICK %s
NOTICE %s :DISABLE <pass>
Disabled
Enabled and awaiting orders
NOTICE %s :Current status is: %s.
NOTICE %s :Already disabled.
NOTICE %s :Password too long! > 254
NOTICE %s :Disable sucessful.
NOTICE %s :ENABLE <pass>
NOTICE %s :Already enabled.
NOTICE %s :Wrong password
NOTICE %s :Password correct.
NOTICE %s :Removed all spoofs
NOTICE %s :What kind of subnet address is that? Do something like: 169.40
NOTICE %s :Unable to resolve %s
NOTICE %s :UDP <target> <port> <secs>
NOTICE %s :Packeting %s.
NOTICE %s :PAN <target> <port> <secs>
NOTICE %s :Panning %s.
NOTICE %s :TSUNAMI <target> <secs>
NOTICE %s :Tsunami heading for %s.
NOTICE %s :UNKNOWN <target> <secs>
NOTICE %s :Unknowning %s.
NOTICE %s :MOVE <server>
NOTICE %s :TSUNAMI <target> <secs> = Special packeter that wont be blocked by most firewalls
NOTICE %s :PAN <target> <port> <secs> = An advanced syn flooder that will kill most network drivers
NOTICE %s :UDP <target> <port> <secs> = A udp flooder
NOTICE %s :UNKNOWN <target> <secs> = Another non-spoof udp flooder
NOTICE %s :NICK <nick> = Changes the nick of the client
NOTICE %s :SERVER <server> = Changes servers
NOTICE %s :GETSPOOFS = Gets the current spoofing
NOTICE %s :SPOOFS <subnet> = Changes spoofing to a subnet
NOTICE %s :DISABLE = Disables all packeting from this client
NOTICE %s :ENABLE = Enables all packeting from this client
NOTICE %s :KILL = Kills the client
NOTICE %s :GET <http address> <save as> = Downloads a file off the web and saves it onto the hd
NOTICE %s :VERSION = Requests version of client
NOTICE %s :KILLALL = Kills all current packeting
NOTICE %s :HELP = Displays this
NOTICE %s :IRC <command> = Sends this command to the server
NOTICE %s :SH <command> = Executes a command
NOTICE %s :Killing pid %d.
TSUNAMI
UNKNOWN
NICK
SERVER
GETSPOOFS
"Habilitado y esperando órdenes" sugiere que este es un programa que hace que su servidor actúe como un nodo de botnet.
El siguiente archivo que descarga, http://something.example.com/ru, es un script de shell, que a su vez descarga un .tar.gz
archivo de http://example.hu/ar/64.tgz (o 32.tgz, según la arquitectura de su CPU), luego lo instala y lo ejecuta. Ese archivo contiene tres archivos:
- A
php
intérprete compilado para Linux - Otro ejecutable de Linux llamado
pnscan
- Un script de shell llamado
run
que lanzapnscan
La otra cosa que hace es crear un trabajo cron semanal que descarga y ejecuta http://something.example.com/sh, que contiene exactamente el script de shell que publicó anteriormente. Básicamente, volverá a infectar automáticamente su máquina cada semana a menos que desinstale ese trabajo cron.
Acción recomendada
Parece que el código fue creado por script kiddies. Utiliza herramientas existentes como pnscan
, vinculado con algunos scripts de shell. No es un código de calidad Stuxnet.
A partir de la información que agregó más tarde (su servidor Apache no es compatible con PHP, su servidor Apache todavía se ejecuta normalmente y no se instaló ningún trabajo cron), parece probable que el código nunca se ejecutó en su servidor. En ese caso, ¡probablemente estés bien! Ejecute ps ax
para verificar si se está ejecutando algo sospechoso, y debería estar bien.
Consulte esta publicación de blog para obtener detalles completos:
Desde que se descubrió la vulnerabilidad en Apache/PHP que permitía que el código PHP se ejecutara mediante una simple solicitud HTTP POST, se lanzaron ampliamente ataques automatizados que llevaron a una gran cantidad de hosts comprometidos.
Esos ataques han disminuido durante los últimos meses, sin embargo, uno de estos ataques automatizados fue particularmente interesante debido al hecho de que el enfoque utilizado puede categorizarse como gusano. Vayamos a todo el ataque a un nivel superior antes de pasar a la parte técnica.
El actor usó el exploit lanzado por kingcope [exploit-db] con una carga útil modificada que descargó algunos scripts y archivos binarios que, a su vez, comenzaron a escanear un bloque A aleatorio de direcciones IPv4. Si se descubriera que un host ejecuta Apache, se iniciarían intentos de explotación y todo el proceso comenzaría de nuevo. Estos ataques se detectaron por primera vez alrededor de noviembre de 2013.
Basado en la información descrita, parece ser algún tipo de botnet que funciona con las vulnerabilidades mencionadas anteriormente.