我昨天注意到我的网站被黑客入侵了,现在我对一些事情感到很困惑。据我所知,所有被编辑或添加的文件都是通过特定用户帐户进行的;该帐户与一些不再使用的软件相关联,因此应该被删除,但事实并非如此。
我删除了所有这些文件(除了一个*),并删除了用户帐户,修复了已编辑的文件等。几乎所有的编辑都在网站的 wordpress 端。网站的大部分内容不是 wordpress,但它们位于同一台物理服务器上。所有编辑和添加都在已删除用户或 www-data 拥有的目录中。
*我没有删除该文件 - 但我重命名并移动了它 - 是黑客使用的工具之一......它的顶部有“oRb 的 Web Shell”,但这就是我能告诉你的全部内容。
这让我想到了我的第一个担忧(我知道我太啰嗦了,抱歉)——使用这个工具,我可以编辑或创建 www-data 拥有的任何目录中的文件,而且我几乎可以读取机器上每个目录中的每个文件。所以我的问题是,这个工具之所以能做到这一点,是因为它已经在服务器上了吗?还是我只是心胸开阔?
我的第二个问题是,Web 服务器的最佳权限是什么?我知道这个问题已经被问过无数次了。我这边的服务器全部以我的帐户为所有者,以我的组(只有我)为组。wordpress(我对此非常谨慎)这边全部由 www-data 所有。这样合适吗?rwx 权限应该是多少?
我真的不指望任何人能诊断出这个大问题——他们一开始是怎么进来的——但任何关于第二个问题和主要是第一个问题的澄清都将不胜感激!
谢谢!
答案1
wordpress 端全部归 www-data 所有,这样合适吗?
一般来说,这并不合适。WordPress 确实需要一个 www-data 可以写入的数据目录,但大多数情况下 www-data 不应拥有任何文件或文件夹。www-data 拥有的任何东西都可以由 Web 服务器更新。如果您的 PHP 代码(或任何其他服务器端技术)存在缺陷,那么攻击者可能会以某种方式欺骗该缺陷 PHP 代码来更新其中一个 PHP 脚本,以执行攻击者想要的操作,即从远程服务器下载文件并将其安装到您的系统上的某个位置。
某些 Web 应用需要在文件系统上写入数据。除极少数例外,您几乎不应允许从这些数据目录执行任何类型的脚本。