服务器被入侵。 在哪里看?

最近我们有一个运行Apache(2.2.3)的Web服务器,它正在清理数据,并将其移动到另一个服务器上,以便重build当前的服务器。

我们想要弄清楚在完成移动到新服务器之后所做的工作。 我们已经有了简单的东西,注入的PHP代码在众多的文件和PHP插入到数据库中。

同时,我们仍然在HTML文档中改变了标签,或者在文档中的开始标签之后插入了大量的文本。 发生在search引擎上的所有HTML文件都是从一个静态的HTML文件或者从一个PHP文件生成的。 只要引用者包含特定的关键字,它也会将来自search引擎的任何人redirect到另一个网站。

如果页面caching在我们的反向代理中,则不再发生这种情况,这帮助我们缩小了Apache的潜在用途。 这是我想知道“我在哪里看?” 我们已经寻找额外的模块添加和检查我们的configuration文件,还没有find任何东西突出。

在哪里可以检查一些其他地方,以便我们可以看到究竟发生了什么?

如果你知道关键词,你可以grep你的/ root目录中的所有文件。 然后手动通过结果。

代码插入到文件中…我会想到的第一件事就是妥协的用户。 简单的FTP黑客工作。 以我的经验(相当可观的是作为一个虚拟主机公司的前线系统pipe理员),弱密码是人们喜欢承认的次数。 写入文件的方式并不多,这是其中之一。

我认真的build议是清理一切,然后:

  1. 完全禁用FTP。 理想的是通过防火墙设置。
  2. 强制执行严格的密码,并定期更改密码。
  3. 通常情况下,你会被允许松散的文件和目录权限。 切勿允许全局写入。 总有一个更好的方法。
  4. 不要使用不是来自广受欢迎的源代码的PHP代码。 谷歌search垃圾脚本是不值得的。

如果您确实想要查找可能发生的事件,请search您在FTP日志中不熟悉的IP地址。 如果您认为这是一个脚本破解,请检查您的/ tmp目录中的黑客脚本。 任何可执行程序都是坏消息,就像任何脚本一样。 检查您的适用的Apache日志参考受影响的文件,特别是如果这些文件不经常访问。

请记住,您可以通过以下方式从文件中清除代码:

sed -ie s/regexorstring//g * 

…在相应的目录中运行。 这只是一个查找和replace(基本),将抓住任何你想要去的string,将其删除。 在那里有一些正则expression式会使它变得很容易。