2016-01-11 86 views
0

我们的Joomla网站一段时间没有被我们接触过。当我去添加新内容时,我们遇到以下问题。初始页面显示正常,但每当您点击任何菜单项或链接时,我们都会显示以下俄文文本:Joomla网站被黑客入侵?

Файлключевиковkeys/sharperdevelopment.com.txtпустилинесуществует。 Пропишитетудахотябыодинключевик。

翻译为:

文件关键字键/ sharperdevelopment.com.txt为空或不存在。规定至少一个关键字。

有没有人有任何线索,这是否是一个黑客问题或配置问题?网页上的查看源仅显示上面显示的文本。

我们的Joomla版本刚刚升级为:Joomla! 3.4.8稳定 该网站是SharperDevelopment.com

当然,这种情况的发生,我们满足了新的潜在客户之前。任何帮助或建议,将不胜感激。

+1

可能恢复到以前的已知好版本的网站? – David

+0

不幸的是,负责网站的人从未完全想到如何备份。 – Arkitec

+0

一个被黑客入侵的Joomla网站的解决方案:http://joomla.stackexchange.com/a/2339/120 –

回答

3

如果您的网站在更新之前遭到黑客入侵,您需要梳理文件系统中已修改和/或添加的文件。

上传Joomla 3.4.8的新副本不会解决此问题。

我打算假设linux,因为那是在我运行的时候。我管理每个托管多个域的多个LAMP服务器。

保存备份并将其标记为受感染。这样做是因为该网站正在工作,虽然感染了。

第一件事情......

run tail -f path/to/logs/* | grep POST 

你需要看看谁调职奇文件在您的网站。 关闭单词包装。 每个发现都需要被视觉观看。 joomla文件以<?php\n开头,然后评论标题。如果您看到一串PHP代码,则需要将其删除。

这是一些发布到我看到很多文件的列表。

nnnnnnnnnnnnnnnnn.php 
alias.php 
article.php 
css.php 
blog66.php 
defines.php < Joomla file that has been modified. 
dirs.php 
footer4.php 
functions14.php 
global.php 
lib87.php 
trust.php 
functions.php 

/includes/defines.php不应该是一个长文件。如果你看到// istart,那么你需要从这一点上删除所有的东西。

您需要grep使用eval或GLOBAL的文件。 istart也应该被检查。这些命令很可能会输出大量的数据,因此将其输入较少。

find /home -iname \*.php | xargs pcregrep -M "^<?php.*\n.*fun" 
find /home/ -iname \*.php | xargs grep "eval(" 
find ./ -iname \*.php | xargs grep "globals" 

管道减少这样的作品。

find ./ -name \*.php | xargs grep -r "eval(" | less 
grep -r "eval(" | less 

你要寻找的包含编码字符串这样的,但较长的文件:(代码贴无效)1ktebHkKHMh7oMftoPA4evcfEoVJs4sUmcTtLCl5Jq0IGoKAUnbzDC1f6C2rJpduyVxvDvRsEztPwSUb6ey73tAVtx8A6BPK + SwyqR/edx3BsfPnmsfbwCFG2kYk

很多时候,该文件将与EVAL BASE64_DECODE和gzuncompress结束。

许多合法文件使用eval和base64解码。如果你看到一段非常长的编码数据,它很可能是一个恶意文件。过了一段时间,您将能够看到看起来不正确的图案。

一些文件也可能有谷歌机器人的用户代理。我最近已经看到了这个字符串,所以我们也需要为以下字符串查找字符串googlebot

grep文件。

​​

你可以备份任何你得到的文件,并检查他们对joomla的github回购。

https://github.com/joomla/joomla-cms

还要检查MAILQ为垃圾邮件的僵尸网络造成延期的消息,这是许多这些文件都使用什么..

我还添加了iptables规则类似下面的最初停止。

-A INPUT -p tcp -m tcp --dport 80 -m string --string "POST /libraries/joomla/exporter.php" --algo bm --to 90 -j REJECT --reject-with icmp-port-unreachable 
-A INPUT -p tcp -m tcp --dport 80 -m string --string "POST /modules/bmvlfj.php" --algo bm --to 90 -j REJECT --reject-with icmp-port-unreachable 
-A INPUT -p tcp -m tcp --dport 80 -m string --string "POST /modules/7595mb.php" --algo bm --to 90 -j REJECT --reject-with icmp-port-unreachable 

可能有很多其他方式来搜索恶意文件,但这是我现在的方法。

将所有恶意文件关闭后,进行备份,然后更新所有扩展。之后,我会再次检查您的文件,并将Joomla文件的全新副本加载到您的网站上,然后搜索网络目录中最旧的文件。

确定它完全干净后,更改所有密码和备份。不要在本地存储备份。

+0

中列出的其他选项,非常好的答案 - 我实际上会使用您的建议来对我在受感染网站上拍摄的快照进行一些法医鉴定工作 - 您的指示很详细,并提供了一些关于如何继续的说明。当网站管理员发现他在12月1日发布的PHP目录中的快照时,我们确实设法避免了这一点 - 我们重新恢复了这些快照,并且网站又开始工作。我现在正在采取额外措施来锁定站点并自动执行备份。感谢您的回答。 – Arkitec

+0

很高兴你已经取得了一些进展。我知道这很令人头疼。我使用了一个perl脚本,防火墙尝试连接到我找到的文件。您也可以尝试使用以下网址在Google上执行搜索:site:domain.tld –

+1

附录:在恢复所有内容后,我们认为我们已经解决了这个问题,但是在我们网站上点击几次后,它立即重新感染了自己。事实证明,您需要删除除配置文件以外的所有内容,然后从备份中重新加载。我们终于恢复正常运行,并且可以开始进行上述的取证过程。 – Arkitec

0

其他答案,也许它可能对你会有所帮助:

你的问题:

的Joomla黑客入侵的网站?

尝试Eyesite扩展名。它拍摄你的J的快照!网站目录树和更高版本,如果有任何更改,它会通过电子邮件发送给您,直到您协调更改为止。 (多长时间取决于你 - 你使用cron来设定支票的时间表。)这样你就可以收到预警,特别是在像你这样的网站上,这些网站在很长一段时间内的变化最小。

0

我很好奇你发现了什么?我有一个Joomla 3站点,在3.4.7之后开始(我认为.7.7后出现.8,我认为这可能是一个修复)。我在这里学到的东西>>>http://forum.joomla.org/viewtopic.php?f=706&t=902833

基于这些信息,我关闭了海基会,网站工作正常(好吧,不好,因为我想使用SEF)。

我也担心被黑客攻击,但该线程上的其他海报似乎认为这是一个托管问题(我们正在使用BH)。

0

如果您运行自己的服务器,您可以使用incrond实时监控文件的更改。如果你不block front end access目录的目录不应该被浏览你会得到砍死期

PARAM="IN_CREATE,IN_DELETE,IN_MODIFY,IN_MOVED_FROM,IN_MOVED_TO,IN_ATTRIB" 
CMD='/path/to/mail/script file change detected in: [email protected]/$# with event [$%]|Web files changed' 
OUTPUT=/etc/incron.d/www-changes 
WEBROOT=/var/www 

# generate config 
find $WEBROOT -type d -print0 | xargs -0 -I{} echo "{} $PARAM $CMD" > $OUTPUT 

:您将需要编写一个脚本生成的目录列表观看。下面的目录应该阻止前端接入:

bin|cli|components|includes|language|layouts|libraries|logs|plugins|tmp 

你也应该在前端可访问的目录,以禁用脚本捉迷藏:

images|media|modules|templates 

然后,您可以监视错误日志与incrond访问被禁止文件&阻止攻击者。

使用I-Blocklistipset的列表也有帮助。我block approximately 120,000 abusive ip's in a fraction of a second。这对block tor nodes也很有用。

如果使用ipset你应该把屏蔽规则iptables的raw表有更好的表现&不是input & output表作为很多导游会错误地显示。

运行Hiawatha Webserver作为网络服务器或反向代理也将停止大量的攻击。

您的/var/www应安装在noexec,nosuid以防止攻击者运行他们设法上载的脚本。

php-fpm中使用chroot功能来限制攻击者可用的文件。为了找到在chroot运行需要dns分辨率的文件列表:

strace php /path/to/file-below 

<?php 
header("Content-Type: text/plain"); 
echo(gethostbyname("google.com")."\n"); 
print_r(getdate()); 
?>