GNU/Linux >> Tutoriels Linux >  >> Linux

Que fait ce script sh s'il est exécuté ?

J'ai téléchargé la première URL (http://something.example.com/xx) et j'ai exécuté

$ file xx
xx: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.15, not stripped

Il s'agit donc d'un programme exécutable destiné à fonctionner sur une machine Linux. Je suppose que vous utilisez un serveur Linux. Ensuite, nous voulons voir ce que fait le programme, mais bien sûr, vous ne voulez pas l'exécuter. Un moyen rapide consiste à ignorer tout le code d'instruction informatique intégré dans l'exécutable et à simplement regarder quelles chaînes lisibles par l'homme il pourrait contenir. Alors, j'ai couru

$ 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

"Commandes activées et en attente" suggère qu'il s'agit d'un programme qui fait que votre serveur agit comme un nœud de botnet.

Le prochain fichier qu'il télécharge, http://something.example.com/ru, est un script shell, qui à son tour télécharge un .tar.gz à partir de http://example.hu/ar/64.tgz (ou 32.tgz, selon l'architecture de votre CPU), puis l'installe et l'exécute. Cette archive contient trois fichiers :

  • Un php interpréteur compilé pour Linux
  • Un autre exécutable Linux nommé pnscan
  • Un script shell nommé run qui lance pnscan

L'autre chose qu'il fait est de créer une tâche cron hebdomadaire qui télécharge et exécute http://something.example.com/sh, qui contient exactement le script shell que vous avez publié ci-dessus. Fondamentalement, il réinfectera automatiquement votre machine chaque semaine, sauf si vous désinstallez cette tâche cron.

Action recommandée

Le code semble avoir été assemblé par des script kiddies. Il utilise des outils existants tels que pnscan , liés avec des scripts shell. Ce n'est pas du code de qualité Stuxnet.

D'après les informations que vous avez ajoutées ultérieurement (votre serveur Apache ne prend pas en charge PHP, votre serveur Apache fonctionne toujours normalement et aucune tâche cron n'a été installée), il semble probable que le code n'ait jamais été exécuté sur votre serveur. Dans ce cas, vous êtes probablement OK! Exécutez ps ax pour vérifier si quelque chose de suspect est en cours d'exécution, et tout devrait bien se passer.


Consultez cet article de blog pour plus de détails :

Depuis la découverte de la vulnérabilité dans Apache/PHP qui permettait d'exécuter du code PHP à l'aide d'une simple requête HTTP POST, des attaques automatisées ont été lancées à grande échelle, ce qui a conduit à un grand nombre d'hôtes compromis.

Ces attaques ont diminué au cours des derniers mois, cependant, l'une de ces attaques automatisées était particulièrement intéressante en raison du fait que l'approche utilisée peut être qualifiée de ver. Passons à toute l'attaque à un niveau supérieur avant d'aborder la partie technique.

L'acteur a utilisé l'exploit publié par kingcope [exploit-db] avec une charge utile modifiée qui téléchargeait quelques scripts et binaires qui à leur tour commençaient à analyser un bloc A aléatoire d'adresses IPv4. S'il s'avérait qu'un hôte exécutait Apache, des tentatives d'exploitation seraient lancées et tout le processus recommencerait. Ces attaques ont été repérées pour la première fois vers novembre 2013.

Sur la base des informations décrites, il semble qu'il s'agisse d'une sorte de botnet travaillant sur les exploits mentionnés ci-dessus.


Linux
  1. Que signifie cette sortie de Xev ?

  2. Qu'est-ce que Echo $ ? Faire??

  3. À quoi sert le Colon Builtin ':' ?

  4. Que retourne malloc(0) ?

  5. Que signifie cet avertissement ?

Que fait "lc_all=c" ?

Que signifie l'esperluette à la fin d'une ligne de script Shell ?

Qu'est-ce que cette statistique de processus indique ?

Que signifie set -e dans un script bash ?

Script d'initialisation Linux qu'est-ce que 0<&- &> réalise

Que fait kill -- -0 ?