WordPress站点被随机的PHP文件填满

时间:2021-07-14 作者:Dimitar Dev

两周前,当我试图通过浏览器访问我的一个WordPress网站时,我被重定向到一个广告页面。我走进了public_html 目录中找到了大量PHP 具有随机名称(乱七八糟的字母数字名称)的文件。我还发现很多WordPressPHP 文件已被更改,并且@include 顶部包含随机文件(大多数文件ico 扩展)。这不仅限于重定向到广告页面的站点,我的/var/www/ 目录-它们都被恶意PHP 文件。

我发现了一些权限设置不正确的文件,并对其进行了更正。我将所有目录权限更改为755 和所有文件权限644. 使用WordFense后,我能够消除所有恶意PHP 文件和@include 声明和一切恢复正常。

然而今天,我再次发现了大量恶意PHP 具有不属于的乱码字母数字名称的文件。执行删除恶意文件和删除@include 声明似乎毫无意义,因为这种情况还会再次发生——这只是时间问题。

在没有其他允许写入的文件的情况下,攻击者如何生成这些文件?我在整个系统中搜索了允许写入的PHP文件,但没有找到任何文件。

有没有办法解决这个问题?

编辑:我们确定没有SSH访问。我们多次查看了ssh身份验证日志,没有找到任何成功的ssh连接。

我们注意到几个文件的chmod发生了变化。如何在没有ssh访问权限的情况下更改文件权限?

我们在WP admin中发现了几个不是我们创建的用户(admin用户)。

我们的服务器运行在Ubuntu 18.04上,托管在Digital Ocean上。我们的PHP版本是8.0.8。我们的WordPress版本5.7.2

2 个回复
SO网友:syseng21

First steps:

<如果可以直接访问服务器,请将其脱机。-此时,您的服务器成为更大方案的一部分的可能性非常高

Recommended:

  • 完全禁用服务器并从发生此情况之前恢复备份检查服务器上的可用更新+wordpress安装,并确保没有使用不推荐使用的加载项/php代码
如果找不到这种情况的根本原因,将来很可能再次发生,因此请确保它的安全,监视ssh连接/仅允许来自IP等。

没有进一步的信息,没有更多的细节可以提供。-如果需要进一步帮助,请随时留下操作系统信息/软件信息。

编辑:如果激活,则禁用根用户通过密码登录,并且通常使用非根用户进行设置。Sudo在这些方面做得更好。

SO网友:RamenJunkie

我自己也有这个问题已经有一段时间了,希望能找到一个解决方案。我做过几件事,包括重新映像到一个全新的Digital Ocean服务器,清理插件,多次重新安装Wordpress fresh,移动使用的文件夹,更改权限,更改文件所有权。

我已经暂时停止了,但这不是一个真正的解决办法,但我会去做的。

我所发现的,与一些隐藏的东西有关。ico文件。

``find / -name ".*.ico" -print``
应该找到他们。您应该删除web文件夹中的任何内容。

这也会感染Wordpress、wp config中的其他文件。php、wp设置。php,索引。php,也可能是头文件。

它还将感染它可以写入的任何文件夹。我在一些自定义子页面的文件夹中有一些基本的HTML文件,而。html页面没有被感染,文件夹中充满了那些乱码。php文件。

我是如何暂时阻止这一切的。这不是修复,我还没有找到修复,我已经断断续续地寻找了一个。

导致此问题的原因是作为www数据用户或组运行的。我更改了所有web服务器文件的权限,使其成为不同的用户,但以web服务器仍能正常工作的方式可读。这有一些缺点。如果不对服务器进行SSHing并暂时将用户更改回www数据,我无法轻松更新。我也不能上传文件。

为了避免上传问题,我将今年的上传文件夹改回了www数据。这意味着恶意文件再次出现在此文件夹中。因为我在这里放的都是图像文件,所以我创建了一个cron作业,它在根crontab中每10分钟运行一次,然后清除所有PHP或隐藏的ico文件并将其删除。

``#!bin/sh``
``/usr/bin/find /var/www/html/PATH TO WORDPRESS UPLOADS FOLDER -name "*.php" -exec rm {} +``
以及

``#!bin/sh``
``/usr/bin/find /var/www/html -name ".*.ico" -exec rm {} +``
再一次,这是第三次,在有人像这里的人一样跳过我的案子之前,我知道这不是一个合适的解决方案。

相关推荐

如果WP_QUERY中有数据,如何签入Functions.php?

我在主页上有两个不同的WP查询。我需要检查函数中的$home\\u查询条件。php然后,如果$home\\u query返回null,我想做些什么。我尝试了pre\\u get\\u posts操作,但我无法捕获$home\\u查询数据,而且它运行了两次,因为页面上有两个WP\\u查询。使用If$home\\u query返回null的分页方式,我想将页面重定向到404页面并获取404响应的代码。例如https://example.com/page/200/ 页码是200,但在页面中没有200页码,我想重