• 对于注定会优秀的人来说,他所需要的,只是时间----博主
  • 手懒得,必受贫穷,手勤的,必得富足----《圣经》
  • 帮助别人,成就自己。愿君在本站能真正有所收获!
  • 如果你在本站中发现任何问题,欢迎留言指正!
  • 本站开启了防爆破关小黑屋机制,如果您是正常登录但被关进小黑屋,请联系站长解除!

关于wordpress后台admin密码防爆破的一些操作

网络安全 eryajf 4个月前 (06-26) 5859°C 已收录 0个评论
本文预计阅读时间 9 分钟

密码破解,这包含了攻防两端考量以及操作,就像你有导弹,我就有反导弹系统,你有反导弹系统,我就有反反导弹系统。彼此追赶,互相博弈当中,都在提升自己的能力。当然了,我们反对研制武器用于战争,就像反对掌握技术用于破解一样。

昨天还在与一个朋友讨论关于验证码破解的问题,他兴奋的与我说,发现小米账号的验证码只有四位数,也就是说你随便输入一个手机号,比如雷军的手机号(当然需要你先知道雷军的手机号),然后直接去或许验证码进行登陆,四位数的数字组合就是 10*10*10*10,也就是一万种可能而已,通过通过脚本把这一万种可能全部走一遍,理论上就应该可以登陆你的账号了的。

当然这种漏洞都是非常低级而且人家也不可能不做限制的。说起限制也是非常简单,可以对同一 ip 请求次数的阈值设置进行相关策略制定,可以对同一账号登陆总是失败(据此判断可能是在进行破解)的次数设置阈值然后设置多长时间内不许再登陆。这些都是值得了解的,而我之前对这方面了解着实不多。

比如如下表述就是引自一篇所谓破解的文章内容:

从上边的话里,可以看出网络安全问题如果我们自己不关注,那么可有很多人都是密切关注着呢。

使用 wordpress 部署博客,平常就会遇到不少的攻击爆破等问题。

我就经常碰到,每当遇到之后我就心想,爆破吧,攻击吧,反正就是这么一个内容性的站点,并没有特别富裕价值的东西,或许攻击一会儿也就不再执着了罢。事实上之前也都是这样的,有一些破解大概就那么几次,十几次,最多几十次不得了了,然而面对那种无休无止,成百上千次的对后台密码进行破解的,就有些烦了。

终于,在我看到邮箱收到三四百封邮件之后,不能忍了。

一看到这种堆积式的错误登陆,不用多想,肯定是在被爆破了。

随便点击一个进去看看,尝试的用户名密码时间以及来源 ip 都非常清楚。

看一眼这个 ip。

总之很讨厌,这次我也不想忍受这种攻击了,准备着手来对这些爆破的同学采取一些小政策了。

首先当然是百度一波先看看有没有特别给力的插件之类的,转了一圈发现没有什么好用的,策略上大概也就那么几种:

  • 1,通过检测对可疑 ip 进行封禁。
  • 2,通过对一些后台以及登陆的 url 进行重定向。
  • 3,插件控制。

因为插件基本上都是英文的,也就没有尝试这个。我通过一篇文章尝试了第二种的办法,https://www.waitalone.cn/wordpress-adminpage-deny-brute-force.html

1,网上的一种办法。

办法就是在主题的 functions.php 中加入如下代码:

add_action('login_enqueue_scripts','cracker');
function cracker(){
if($_GET['access']!= '1111') header('Location:http://www.eryajf.net/');
}

请自行更改 1111 为自己的密码,然后把后面的 eryajf.net 的 URL 更改为你的博客域名。

如此一来,当你访问后台 admin 的时候会跳转到首页,真正访问登陆页面的时候则需要访问 http://www.eryajf.net/wp-login.php?access=您的密码

这样或许不无不可,但是经过我的体验感觉有时候会影响一些正常的访问,因此也放弃了这种办法,决定自己来搞一搞。

2,自己用的办法。

对于那些爆破我们的,就应该毫不留情直接关小黑屋里。

因此我在 nginx 下边做了拒绝访问的策略,一旦你触及我的底线,不好意思,小黑屋有请。

我想大家应该都知道在配置 nginx 的虚拟主机的时候,一般把配置文件一个一个单独放在一个目录下,然后在 nginx 的默认配置文件当中进行include调用。

include vhost/*.conf;

注意这条调用指令写在server 区域之外 http 区域之内

接着我就在vhost目录下创建了一个hei.conf的文件。

[root@long vhost]$cat hei.conf
deny 91.210.145.28 ;
deny 51.38.224.237 ;

书写格式也就这样,把做坏事儿的 ip 扔进配置文件里边,然后让 nginx 加载一下,对方再想来攻击你,那就还它一个 403 看看。

注意这个地方我在写规则的时候 ip 与后边的分号有一个空格的,这样并不影响使用,也是为了方便后边脚本的使用。

上边两个 ip 就是因为不老实然后就被关进小黑屋了的。

既然已经确立使用这种方案了,那么接下来就通过对日志的分支,利用脚本,把这些事情自动给他完成了。

脚本如下:

#!/bin/bash
set -e

Log=/var/log/nginx/error.log
File=/usr/local/nginx/conf/vhost/hei.conf
fip=`grep wp-login.php $Log | awk '/error/{ip[$36]++;}END{for (i in ip){if (ip[i]>20){print i}}}' | awk -F "," '{print $1}'`

for i in $fip
do
    a=`awk -v i=$i '$2==i{print}' $File | wc -l`
    if [ "$a" -ne 0 ]
    then
        echo "服务器安全" &> /dev/null
    else
        echo "deny $i ;" >> $File
        /usr/local/nginx/sbin/nginx -s reload
    fi
done

简单说明一下脚本

  • 第六行:在错误日志当中取出登陆次数超过 20 次的失败者的 ip。
  • 第十行:逐个判断此 ip 是否已经在小黑屋里关着。如果已经有了,那么服务器是安全的,如果没在,那么将之请进小黑屋当中,然后让 nginx 重新加载一下配置。

写完之后,如果在你的系统中已经有类似的 ip 了,可以执行一波进行测试,看看是否已将其送往小黑屋成功。
这个地方,如果日志逐渐变大,那么可以利用脚本进行一下切割,还是很有必要的。

随后把这个脚本放进定时任务当中,自己随便定义多久执行一次就好了。

*/5 * * * * /bin/bash /opt/hei.sh

最后,还是想说一下,所有进行暴力破解的,无不是从一些非常基础简单的密码开始的,如果我们被爆破没几下就守不住了,那只能说,该换密码了。事实上,我所使用的密码,是一个我自己也记不住的,一个由工具自动生成的密码,总之,密码复杂一点,总是没有错的。


二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于 wordpress 后台 admin 密码防爆破的一些操作
赞赏
喜欢 (2)or
[如果想支持本站,可支付宝赞助]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮