编辑:进一步的信息/调查信息包含在这篇文章的评论
对这个模糊的标题表示歉意 – 总结这个问题有困难。
我最近发现,我的网站之一,在恶意软件的服务。 作为这个的结果,我已经grepped在httpdocs下的每个文件,并寻找任何可疑的东西,即调用shell_exec,eval,base64,passthru,包括,要求,cookiefunction在PHP文件。 我也经历了所有的JS文件寻找可疑的方法,另外,因为该网站的方面是从一个数据库build立我已经搜查了任何可疑的东西(使用phpmyadmin数据库searchfunction来寻找PHPshell等典型的JS恶意软件命令)
所有没有用,我根本找不到这是哪里。 因此,我已经重新加载了所运行的软件的所有文件,并有效地重新安装了站点文件。 我也有提供的软件经过检查,他们也没有find任何东西。
这让我得出的结论是,更高级别的东西,即Apache已经被攻破。 所以问题是我应该在这里检查?
我正在运行一个专门的服务器,只服务于这个网站,只有我有权访问(他说),所以我能够运行任何需要帮助诊断
恶意软件如何呈现?
间歇地将以下代码放入我的标签中:
<style> .iqb71l { position:absolute; left:-1958px; top:-1826px} </style> <div class="iqb71l"><iframe src="hXXp://1.1.1.1/f72387bd1dfab35f89f1899e1be07c08/q.php" width="198" height="501"></iframe></div>
注意:在上面的代码示例中,我已将“http”更改为“hXXp”,将IP地址更改为“1.1.1.1”
但是,代码并不总是被注入,似乎是随机添加的。 另外,当代码确实出现时,IP地址跟在GUID和类名之后通常是不同的。
此外,没有任何恶意软件扫描仪(即谷歌网站pipe理员工具等等)正在采取这一点。 所以我猜测,这不仅仅是一个基本的注入,它是随机select何时呈现自己,它是dynamicselect一个地址注入,它似乎是恶意软件扫描器referrers隐形。
花了很多时间谷歌这一点,我一直没有find任何类似的情况下,但我已经find了很多网站pipe理员询问有关出现在他们的服务器上的一个不可思议的q.php文件引用。
识别PHP代码中的恶意软件是一个噩梦。 但是,我将传达一些基本的技巧,我已经从清理这些噩梦中的一些噩梦成功地收集了。
首先,你有没有一个干净的网站版本? 比如staging版本的staging版本,你可以比较一下? 如果是这样,在dry-run模式下运行rsync和CRC校验,如下所示:
rsync -rvnc --exclude '.svn' --exclude 'xml' --exclude 'temp' --exclude 'tmp' --exclude 'cache' /clean/version/of/site/ /infected/version/of/site/
请注意,我添加了一些--exclude参数来排除已知temp和cache目录的检查。
如果您没有一个干净的网站副本比较,只需下载一个干净的安装版本的PHP软件,您使用该软件作为比较基础。 那么假设你有一个被感染的WordPress网站? 下载完全相同的WordPress版本并进行上面的Rsync比较。
做了Rsync CRC / Dry-Run比较,他帮助我追踪感染并立即清理。 基本上,通过Rsync认为是不同的或新的一个接一个的文件列表,看看他们是否感染。 10次中有9次会在文件末尾注入代码,因为缺less更好的术语,看起来像垃圾。 那将是感染。
但是不要在背后拍拍自己。 还有其他的感染。 在许多情况下,至less有2或3个以上。 因此,手动检查Rsync声明的每个文件,直到完全清理完为止。
你没有说什么PHP代码是你的网站的基础,但我也会立即build议更新你的安装到最新的补丁版本的软件。 机会是好的,你不是第一个,这是一个已知的问题,所以补丁将堵塞恶意软件从头开始。
呵呵,关于恶意软件进入你的数据库,这可能是一个切入点,但更多的时候是通过数据库获得用户访问,然后将恶意软件写入你的文件系统的PHP代码库,恶意软件通常侵入你的站点。
在这里回答我自己的问题(绝不贬低JakeGould的答案)
我终于find了这个原因,而不是写在这个页面上:
使用该页面上的指导(和链接的文章),我看着加载的Apache模块,并find不是已知的Apache模块mod_view_proxy.so。 这是通过/etc/httpd/conf.d/perl.conf中的LoadModule指令加载到Apache中的。 所有的文件已被触及,所以他们的date时间戳不看起来可疑。 作为博客条目提到SSHD也被replace为不同的版本。
至于如何得到妥协,并不完全确定 – 假设是由运行和旧版本的vBulletin和/或其插件之一(这完全是我的错)造成的。
另外我需要给这些人他们的会费:
正如你从这个线索中看到的,我已经用尽了所有的想法和技术能力,所以作为最后的手段,我把所有我知道并做的事情都带到了Sucuri。 是的,它是一个有偿服务,但他们发现这个问题,解决了它 – 他们的服务太棒了。 他们真的有兴趣帮助我解决这个问题,这是我们目前不常见的一项服务。 我只有赞扬他们,毫不犹豫地将他们推荐给我的任何人。