今天很不幸地发现我的网站上有一个恶意脚本。它的 chmodded 为 644,但我无法删除它。它上面的目录允许我正常删除它。界面是 cPanel。
我从其背后的源代码底部找到了创建者的名字。
这个脚本非常讨厌,在我的网站的每个目录中都有。幸运的是,我有一个干净的备份,我计划尽快恢复它。
从源代码中,我推断它被用来“破解”ftp 密码、mysql 数据库、一般安全问题,而且它(不幸的是)还能做很多事情,包括直接访问我帐户上的每个文件。它针对某些脚本,即 phpbb、smf 和 vbulliten,但我的网站上没有运行这些脚本。
是否有一个脚本可以强制删除此病毒/蠕虫/不管它是什么而不触发它?
事实上,它出现在所有 chmod 至少为 755 的目录中,还有几个目录中的 chmod 为 644。
我该怎么办?还没有人运行过它,它只是放在那里。访问日志中还没有记录任何人用它做过任何事情(目前)
我应该采取什么最佳路径?我听说它涉及整个服务器,而不仅仅是我的帐户。
另外,如果这个网站不适合提问,我很抱歉,但我认为这是最好的,因为它直接相关。有没有办法将文件名列入黑名单?
答案1
我再怎么强调也不为过;你需要重建服务器。你无法确定没有安装任何后门或木马二进制文件。你无法删除脚本的事实表明服务器出了问题。唯一可以确定的方法是重新安装。考虑到你有备份,这应该不会花太长时间。
如果您无法控制服务器,请坚持让控制服务器的人重新安装系统。如果他们不这样做,我建议您转向其他托管服务提供商,因为他们不重视安全性。
答案2
你所描述的是“不可变的”位,其功能类似于“主只读”。一旦设置,文件就无法删除,但您可以随时取消设置位并删除文件。当然,您需要备份您能备份的内容,清除设置,然后从头开始重建。最好从轨道上删除。
答案3
根工具包和其他恶意程序常用的方法是使用扩展属性(尤其是不可变属性)来使其更难清除。缺乏经验的管理员可能不知道或不会想到要检查扩展属性。有关信息,请参阅 man lsattr 或 chattr。
当然,您确实需要重建系统,正如其他答案所指出的那样。
答案4
有很多 php 漏洞可用于插入此类文件。从您的描述来看,您似乎处于共享托管环境中?如果是这样,则您的服务器上的其他人可能也遭遇了同样的命运。我不同意您应该重建整个服务器。通常,这些文件被插入时,所有者是无人或随机 UUID,因此这可以解释为什么您无法删除这些文件。
具体来说,在 cPanel 环境中,有一些控制 open_basedir 的设置可能会无意中允许此类事情发生。这通常只会影响 /home 或更高级别的目录。
如果您控制服务器,请确保这些文件归您的用户所有,ls -l <filename>
如果它们不归您的用户所有,您将需要联系管理员让他更改这些文件的名称和/或删除它们。