如何阻止常见的WordPress的漏洞探头

我的服务器浪费了大量的资源来编写自动化脚本,这些脚本试图找到WordPress和其他内容管理系统中的已知漏洞。本文将介绍如何配置Apache的httpdweb服务器识别一些常用的探测模式,用于寻找WordPress、主题和插件中的漏洞。在确定此类探测之后,可以使用临时防火墙规则自动阻止攻击源IP。

不要试图实现,除非你理解改变下面提到的配置的效果。他们会解释我通过他们去,但yabo亚博体育下载按照说明盲目。特别是如果你跑的比WordPress的其他任何内容的系统。即使你没有在网站上运行WordPress,你可能仍然有这样的漏洞,并会从执行阻断技术在这里讨论中受益。

这些说明是针对Apache web服务器的,但是您可以在几乎任何web服务器上应用该逻辑。除非特别说明,所有的代码示例都是for的httpd配置。

这将是一个两步的过程。第一步是配置Apache WordPress的漏洞遇到常见的探头时发出403个反应,会是什么我将在本文中介绍。这一步可以在你不使用WordPress的成功使用,即使作为交通模式将是相同的,不管。第二步是使用Fail2Ban阻止重复的403响应作为覆盖以前的文章。

我们要保护他们的第一个文件是高价值目标“WP-config.php文件里面包含了数据库密码和其他有关网站运行方式的敏感信息。根据我自己的经验,我敢说,大约有四分之三的WordPress特定攻击都是针对这个文件。

在WordPress的配置文件中获取的常用方法是通过操纵插件和主题为人民服务了文件下载。要做到这一点,他们像手艺“的网址/wp-content/plugins/downloader/download.php?file=../../../wp-config.php“他们试图利用文件下载和上传插件以及照片库和其他插件的安全性较弱。即使您没有安装这些插件,我们也希望阻止这些请求。它们的共同之处在于它们的查询字符串包含"WP-config.php文件”这我们不太可能看不到一个合法的请求。

<地点 “/可湿性粉剂内容/”> <如果 “%{QUERY_STRING} =〜/wp-config.php /”>从拒绝所有 

如果曾经有过与您的Web服务器,特别是PHP解释器,原始文件及其所有秘密的问题,可以提供仅仅通过请求文件“/wp-config.php”上,无需使用插件或其他攻击。为了减少直接访问的风险,指导你的许多文章,以阻止在Apache的特定文件的直接请求。不幸的是,由于人为错误和方式,这个文件名的许多变化很可能对您的服务器和任何临时运行暂时存在的到位被遗忘的危险。这些只是我的服务器上该文件的顶部要求变种:

  • /wp-config.php~
  • / wp-config.php.bak
  • / wp-config.php。
  • / wp-config.php2
  • / wp-config.php1
  • /wp-config.php.rpmnew
  • /wp-config.bak
  • /wp-config.php.save
  • /wp-config.php.rpmsave
  • / wp-config.php_old
  • /wp-config.phpold
  • / wp-config.php.tmp
  • / wp-config.php-ftp
  • / wp-config-backup.php
  • /wp-config.old
  • /wp-config.txt

你可能会认识到至少一些上面是自动备份或自动保存通过流行的文本编辑器,或分配特定的备份文件创建的文件,还有一些是被编辑文件前制作人副本。yabo88软件下载显然,阻挡直接匹配“/wp-config.php这是不够的,需要比通常推荐的更广泛的匹配:

 Deny from all 

给出我们刚刚讨论过的,你也会想要回到第一个配置实例并调整从查询字符串匹配WP-config.php文件wp-config。我见过没有证据表明任何机器人正在积极尝试探测比WordPress的配置文件中的其他文件,但我们都知道它最终会发生。

既然已经控制了主要WordPress配置文件的探测目标,我们将快速了解一下WordPress登录系统。在登录尝试失败之后,它已经发出403个响应,所以这里没有太多要做的。yabo亚博体育下载然而,当你在WordPress中禁用注册时,只有bot会尝试注册一个新帐户。阻止试图直接访问注册表:

<地点 “/可湿性粉剂登录*”> <如果 “%{QUERY_STRING} =〜/动作=寄存器/”>从所有 拒绝

根据我自己的日志,仅这一个就应该与所有bot活动的6%相匹配。注册一个新帐户通常是他们在积极尝试提取WordPress配置文件之后所做的第三件事。

我在前面提到过,问题出现在流行主题之后,而不仅仅是插件。yabo88软件下载这主要是因为一些主题捆绑在插件中,或者包含自定义和可利用的PHP代码。所有这些调查的特点是,它们都要求以". php"在主题目录内。

它能极大地通过阻断的直接调用来改善. php所有主题目录中的文件。阻塞. php在主题目录中的文件将已经封锁针对流行的主题已知漏洞的攻击最多。yabo88软件下载不过,您的网站将只使用一个主题,以便阻止访问完全是任意的主题,但您使用的一个。替换默认twentysixteen主题下面您目前使用的主题的名称。

从拒绝所有

实现这个有点风险,因为如果你刚刚改变了你正在使用的主题,可能仍然有对图像、样式和脚本的引用在旧的文件夹中。您可以通过将主题文件夹重命名为"网站名称并且总是把当前的主题放在那个文件夹中。

如果你正在使用WordPress之外的任何系统,那么下一个可能不适合你。在任何情况下,请确保在部署它之后彻底测试所有内容。让我们阻止试图访问其他登录wp-admin,让我们只是平了禁止任何非PHP脚本语言。这并不是说你使用他们,或者他们可以使用这一点很重要,但它会切断在HTTP层的要求甚至调用WordPress和PHP服务404页之前。像所有以前的方法,这将释放服务器资源,而不是让attackbots浪费它。

 | CFM从所有 从所有拒绝

现在,每一个符合上述规则的一个请求会得到一个HTTP 403禁止错误。这有三个主要的好处:1)httpd为403提供服务的速度要比php+mysql+wordpress为404提供服务的速度快得多,从而为真正的用户释放资源。2)当你返回403而不是预期的404或200时,一些自动攻击只尝试了两次就放弃了。3)他们更容易跟踪和阻止访问。

返回403并不能阻止他们尝试其他地址,并有可能发现一个有用的地址。幸运的是,日志文件中重复的403错误现在将成为区分普通访问者和恶意机器人和用户的一个大红旗。请参阅前一篇文章使用Fail2Ban阻止重复的403响应有关配置这样的设置说明。

最后,确保包含我们在上面阻止的地址模式不允许指令阻塞在你的与/robots.txt文件。这将防止无意中被确定为坏机器人,并暂时荣誉像Bingbot和Googlebot机器人指令文件锁定你的网站了良好的机器人。下面是一个简单的例子

用户代理:*不允许:/ cgi-bin目录/不允许:/可湿性粉剂管理员不允许:/可湿性粉剂配置*不允许:/wp-content/themes/*.php不允许:/wp-login.php不允许:/ *。ASP *不允许:/*.cfm不允许:/*.cgi不允许:/*.|jsp*不允许:/*.pl不允许:/*.py

如果您对本文感兴趣,那么您应该继续研究完整的应用程序级防火墙,例如mod_security用于Apache web服务器。