如何处理 sql被暴力破解 有人实时进行暴力破解我的sql服务器 我该怎么办?
不确定你说的是外网还是局域网。
除了增加密码的复杂性外,外网的话,在路由器上阻止对应的IP访问,如果考虑到可能是动态IP的访问,至少需要阻止一段时间,内网务必使用行政手段处理。
防火墙开了不顶用,你在防火墙里添加个安全措施,禁止那个人的IP访问你的服务器,或是端口,你先把网线拔了设置。
打开防火墙的“高级安全”,点击新建规则。
进入,新建规则入站向导,选择自定义。
点击下一步后,点击程序,选中默认所有程序。
点击,协议和端口,全部默认,然后继续点击下一步。
进入到作用域,找到下列IP地址,点击添加按钮,添加你需要过滤的ip地址。
点击下一步,选中阻止链接,继续点击下一步。
进入到配置文件,何时应用该规则,全部默认即可。
进入到名称,填写名称,和描述,点击完成就可以了。
会,暴力破解的明显问题是密码越长,破解密码所用的时间就越长。密码一旦超过一定长度,基本上不可能强行破解。
例如,使用破解的服务器集群,每秒可以尝试3500亿次。破解6位密码只需408秒,7位密码为647分钟,8位密码为1024小时,9位密码为4053天,10位密码为1055年。
服务器集群具有更快的密码破解速度
简单的长密码远远不够,因为也有破解密码的方法,就是使用"密码簿"。"密码簿"是一组常见的密码,还集成了一些常用的日期和词汇,随着破解密码的增加,密码簿也不断丰富。
密码簿已成为破解密码的一种手段。
破解专家会针对不同的环境使用不同大小的密码本,即原始暴力破解进入密码簿的尝试,有些人也会有自己的密码簿,一般来说,密码本越丰富,密码越常见,快速破解的几率就越高。
破解密码比你想象的要容易。
所以设置密码的原则是,第一个密码足够长,第二个是我们不能使用普通单词,也就是我们常说的"强密码。"这就是为什么有些网站要求密码不少于8位,必须包含大写和小写字母和数字。
顾名思义,暴力破解的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的!
但实际发送的数据并不像想象中的那样简单——“ 每次只向服务器发送用户名和密码字段即可!”,实际情况是每次发送的数据都必须要封装成完整的 HTTP 数据包才能被服务器接收。但是你不可能一个一个去手动构造数据包,所以在实施暴力破解之前,我们只需要先去获取构造HTTP包所需要的参数,然后扔给暴力破解软件构造工具数据包,然后实施攻击就可以了。
Web暴力破解通常用在,已知部分信息,尝试爆破网站后台,为下一步的渗透测试做准备。
Http 中的 response 和 request 是相对浏览器来说的。浏览器发送request,服务器返回response。
Get 和 Post :get放在url中,而post放在http的body中。
http_referer :是http中header的一部分,向浏览器发送请求时,一般会带上referer,告诉服务器我是从哪个页面链接而来,为服务器处理提供一些信息。
这里我们使用dvwa渗透测试平台中的暴力破解模块来进行演示。
先使用任意账号密码尝试登录,并同时使用 firefox F12 进行抓包分析。
这一步的作用是,收集构造HTTP数据包所需要的参数,比如cookie、get/post、referer、提交得字段名等。
可以看到cookie里面除了 username 和 password 字段之外还有一个 token,这个通常是用来防止CSRF攻击的。
收集到以上信息之后,我们就可以构造用于攻击的数据包。
需要用到的参数收集完毕之后,接下来就需要使用到爆破软件,这里我们先讲一个专用与爆破的软件——Bruter,之后会再介绍一款综合的Web类安全软件 :
如下图所示,这款软件支持包括FTP、SSH在内的十多种不同应用场景的暴力破解。我们这里是Web登录的爆破,所以选择Web Form:
点击协议右侧的选项,将我们之前获得的信息输入进去。
其实我们也可以直接在网址一栏中输入我们要攻击的URL,点击载入,它会自动将构造攻击数据包所需要的信息识别出来并填好,如果我们发现有问题或者有遗漏,也可以手动修改。
有些朋友可能要说,既然可以自动获取相关参数,那为什么我们还要花时间精力去手动收集信息呢?其实之前的手动收集主要是帮助我们理解暴力破解的原理,正所谓知其然不够,还要知其所以然。并且软件自动获取的参数也可能会出错,我们可以再验证一次。
接下来设置用户名和密码。用户名可以使用字典,如果你知道用户名是什么,你也可以直接输入字符串,比如:admin。
密码则有多种选择,如果选择字典选项,则需要加载我们自己事先准备好的字典(比如自己收集的弱口令字典),右侧还可以设置大小写、字符长度等:
如果选择暴力破解选项,就是软件使用自动生成字符串进行攻击,我们可以自定义使用到的字符种类、长度等:
至于右侧的选项,大家可以根据自己的需要进行选择,设置完毕之后点击开始,就可以开始暴力破解:
![Uploading githubpages_3_brutard7_653421png ]
接下来我们介绍另一款软件 WebCruiser Web Vulnerability Scanner ,这是一款相对综合的软件,包括常见的Sql注入、XSS检测等功能,其中的暴力破解模块也非常强大!
这款软件自带web界面,我们可以直接在url一栏中输入攻击网址,并做一次任意用户名密码的登录提交,之手点击Resend按钮,可以看到已经自动对之前操作进行抓包:
之后在点击右侧的Bruter按钮,会直接跳转到Bruter界面,同样需要的参数都已经自动填好,设置好字典就可以开始破解了:
暴力破解就暂时讲到这里,之后有时间会对这篇文章进行修改和优化,如果有什么问题欢迎留言!
如果你觉得我讲的不错的话,可以关注一下我的其他文章和课程,希望能真正的帮到你
网站服务器是和你办公,远程登录在一个局域网内,还是在互联网上?
远程登录的IP是固定还是不固定的?
了解了上面的两个情况之后,你可以对服务器所在的网络进行设置,只允许内部计算机使用3389,或者,只允许固定的那个IP地址使用3389端口。
其余的话,基本上没太好的办法。
为了在CentOS 或 RHEL上安装fail2ban,首先设置EPEL仓库,然后运行以下命令。
$ sudo yum install fail2ban
在Fedora上安装fail2ban,简单地运行以下命令:
$ sudo yum install fail2ban
在Ubuntu,Debian 或 Linux Mint上安装fail2ban:
$ sudo apt-get install fail2ban
为SSH服务器配置Fail2ban
现在你已经准备好了通过配置 fail2ban 来加强你的SSH服务器。你需要编辑其配置文件
/etc/fail2ban/jailconf。
在配置文件的“[DEFAULT]”区,你可以在此定义所有受监控的服务的默认参数,另外在特定服务的配置部分,你可以为每个服务(例如SSH,Apache等)设置特定的配置来覆盖默认的参数配置。
在针对服务的监狱区(在[DEFAULT]区后面的地方),你需要定义一个[ssh-iptables]区,这里用来定义SSH相关的监狱配置。真正的禁止IP地址的操作是通过iptables完成的。
下面是一个包含“ssh-iptables”监狱配置的/etc/fail2ban/jailconf的文件样例。当然根据你的需要,你也可以指定其他的应用监狱。
$ sudo vi /etc/fail2ban/jaillocal
[DEFAULT]
# 以空格分隔的列表,可以是 IP 地址、CIDR 前缀或者 DNS 主机名
# 用于指定哪些地址可以忽略 fail2ban 防御
ignoreip =1270011723100/24101000/2419216800/24
# 客户端主机被禁止的时长(秒)
bantime =86400
# 客户端主机被禁止前允许失败的次数
maxretry =5
# 查找失败次数的时长(秒)
findtime =600
mta = sendmail
[ssh-iptables]
enabled =true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=your@emailcom, sender=fail2ban@emailcom]
# Debian 系的发行版
logpath =/var/log/authlog
# Red Hat 系的发行版
logpath =/var/log/secure
# ssh 服务的最大尝试次数
maxretry =3
根据上述配置,fail2ban会自动禁止在最近10分钟内有超过3次访问尝试失败的任意IP地址。一旦被禁,这个IP地址将会在24小时内一直被禁止访问 SSH 服务。这个事件也会通过sendemail发送邮件通知。
一旦配置文件准备就绪,按照以下方式重启fail2ban服务。
在 Debian, Ubuntu 或 CentOS/RHEL 6:
$ sudo service fail2ban restart
在 Fedora 或 CentOS/RHEL 7:
$ sudo systemctl restart fail2ban
为了验证fail2ban成功运行,使用参数'ping'来运行fail2ban-client 命令。 如果fail2ban服务正常运行,你可以看到“pong(嘭)”作为响应。
$ sudo fail2ban-client ping
Server replied: pong
测试 fail2ban 保护SSH免遭暴力破解攻击
为了测试fail2ban是否能正常工作,尝试通过使用错误的密码来用SSH连接到服务器模拟一个暴力破解攻击。与此同时,监控 /var/log/fail2banlog,该文件记录在fail2ban中发生的任何敏感事件。
$ sudo tail -f /var/log/fail2banlog
根据上述的日志文件,Fail2ban通过检测IP地址的多次失败登录尝试,禁止了一个IP地址19216818。
检查fail2ban状态并解禁被锁住的IP地址
由于fail2ban的“ssh-iptables”监狱使用iptables来阻塞问题IP地址,你可以通过以下方式来检测当前iptables来验证禁止规则。
$ sudo iptables --list -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-SSH tcp --0000/00000/0 tcp dpt:22
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-SSH (1 references)
target prot opt source destination
DROP all --192168180000/0
RETURN all --0000/00000/0
如果你想要从fail2ban中解锁某个IP地址,你可以使用iptables命令:
$ sudo iptables -D fail2ban-SSH -s 19216818-j DROP
当然你可以使用上述的iptables命令手动地检验和管理fail2ban的IP阻塞列表,但实际上有一个适当的方法就是使用fail2ban-client命令行工具。这个命令不仅允许你对"ssh-iptables"监狱进行管理,同时也是一个标准的命令行接口,可以管理其他类型的fail2ban监狱。
为了检验fail2ban状态(会显示出当前活动的监狱列表):
$ sudo fail2ban-client status
为了检验一个特定监狱的状态(例如ssh-iptables):
$ sudo fail2ban-client status ssh-iptables
上面的命令会显示出被禁止IP地址列表。
为了解锁特定的IP地址:
$ sudo fail2ban-client set ssh-iptables unbanip 19216818
注意,如果你停止了Fail2ban 服务,那么所有的IP地址都会被解锁。当你重启
Fail2ban,它会从/etc/log/secure(或
/var/log/authlog)中找到异常的IP地址列表,如果这些异常地址的发生时间仍然在禁止时间内,那么Fail2ban会重新将这些IP地址禁止。
设置 Fail2ban 自动启动
一旦你成功地测试了fail2ban之后,最后一个步骤就是在你的服务器上让其在开机时自动启动。在基于Debian的发行版中,fail2ban已经默认让自动启动生效。在基于Red-Hat的发行版中,按照下面的方式让自动启动生效。
在 CentOS/RHEL 6中:
$ sudo chkconfig fail2ban on
在 Fedora 或 CentOS/RHEL 7:
$ sudo systemctl enable fail2ban
0条评论