蛮力攻击/用户枚举

时间:2018-09-13 09:57:06

标签: wordpress security brute-force

自上周以来,我不断收到有关我的wordpress网站登录失败尝试的警报。

最初几天,攻击者使用了错误的用户名,并在3次尝试后被锁定。我使用sucuri免费和wp-security插件。后者具有登录锁定功能。

几天后,攻击者发现并使用了我的用户名,这使我感到惊讶。我立即将其更改为新的用户名,以为我会安全。我还在两个插件上都使用了大多数强化选项。我专门检查了字符串 ?author = n ,未在我的网站上提供任何结果。

无论如何,今天我又收到3条警报,提示有人试图使用该新用户名登录,这意味着我被锁定在自己的网站之外24小时。

这让我想知道:

a)别人怎么可能找到我的用户名?

b)还有其他插件,例如cerber security可以阻止这些攻击吗?

c)我可以添加任何规则到htaccess吗? (尽管我相信sucuri和wp-security添加了一些规则)

非常感谢!

1 个答案:

答案 0 :(得分:2)

列出用户

用户可以使用:

列出您的用户名
yoursite.com?author=1

其中的ID是user_id。

您可以通过检测作者页面来防止出现这种情况,并以此为例进行重定向(输入您的主题function.php):

// Disable access to author page
function remove_author_pages_page() {
    global $wp_query;

    if ( is_author() ) {
        $wp_query->set_404();
        status_header(404);
        wp_redirect(get_option('home'));
    }
}
add_action( 'template_redirect', 'remove_author_pages_page' );

从wp-admin查找用户名

  • 攻击者可以通过尝试登录wp-admin来找到用户名
  • 如果攻击者即使输入了错误的密码也输入了正确的用户名,wordpress错误消息也会更改,因此攻击者知道用户名存在
  • 您可以将此代码添加到function.php中,以防止wp-admin错误的登录错误消息给出任何信息。

代码:

function no_wordpress_errors() {
    return '<strong>Error</strong>: check your logins';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

防止wp-admin暴力破解

这是我非常喜欢的解决方案:

  • 它使用wp-fail2ban插件
  • 您的服务器需要安装和配置fail2ban软件包
  • 此软件包允许您禁止(多次从iptables中)无法多次连接SSH的IP,或强行强制端口
  • wp-fail2ban插件为您提供了一个自定义的fail2ban监狱,可将其添加到fail2ban监狱中(wp插件具有完整的文档)
  • 同时安装了两者,fail2ban将禁止在WP-admin上失败太多的IP(在IPtable级别上,因此甚至没有到达PHP。最终,攻击者不会使用太多服务器资源,因为服务器将阻止他的IP。他甚至无法使用PHP)

其他一些插件(例如Wordfence)也提供了一定的安全性,但是当它到达PHP攻击者时,它会使用更多的资源。但是它需要更少的技术知识来实施。