0


密码暴力破解

暴力破解原理

暴力破解法(Brute Force)又被称为穷举法,是一种密码分析的方法,即将密码进行逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试9999次就能找到正确的密码。理论上除了具有完善保密性的密码以外,利用这种方法可以破解任何一种密码,问题只在于如何缩短试误时间。有些人运用计算机来增加效率,有些人辅以字典来缩小密码组合的范围。

暴力破解一般来说有三种方式:

  • 排列组合:将数字、大写字母、小写字母、各种特殊字符排列组合,若是在不知道密码的长度情况下需要更多的逐渐增多位数,这样的运算量非常的大,这种方法需要高性能的破解算法和CPU/GPU做支持。
  • 字典破解:通过社会工程学与人们常用的密码建立破译字典,然后逐个尝试。
  • 排列组合+字典破解:两种方式的结合,增大破解的几率

从暴力破解的方式我们就可以看出来,他有一个简单、通俗易懂的名字,叫做:猜。一个个试,总有一天可以试出来,因为大小写字母、数字、特殊符号的个数是有限的,他们的排列组合也是有限的,只是特别多而已。

这样的方式在遇到弱口令是十分有效的,例如简单的 123456、电话号码、abcde。

所以只要密码设置的足够长,足够复杂便可以防范暴力破解这样的攻击方式。

暴力猜解之BS架构

一般是对web应用程序中的高权限用户进行猜解,如网站的内容管理系统账户。一般针对 B/S的暴力猜解,使用Burp Suit 镜像表单爆破。

基于表单的暴力破解

我们采用pikachu作为示例

先通过burp抓包

抓包之后,进行暴力破解

结果,找到了密码

这是最简单的暴力破解方式,也就是没有验证码之类的情况下,就这么暴力破解。再看下一种情况。

基于验证码暴力破解

**在客户端验证的 **

也就是验证码是通过前端验证的,那么这种我们抓包之后,不需要验证码字段都可以实验破解。

on client常见问题:不安全的前端js实现验证码;不安全的将验证码在cookie中泄露;不安全的将验证

码在前端源代码中泄露

抓包,删掉验证码数据,把密码数据作为变量

攻击

效果:也能破解出来

然后看一下网页源代码

**在服务端校验的 **

看网页源代码,你就找不到前端js的校验代码部分了,因为这是服务端校验的,我们可以看服务端的代码

既然有了服务端校验,我们再通过上面的抓包删除验证码数据的情况就不行了

那么我们还使用这个数据包,并且使用刚才抓取到的验证码数据

再攻击,破解成功

这个原因是什么?on server常见问题:验证码在后台不过期,导致长期使用(php默认session是24分钟过期);验证码校验不严格,逻辑出现问题;验证码设计的太过简单和有规律的被猜解。

*Token***防爆破示例 **

有些网站是基于token值来做暴力破解防范的,比如京东淘宝等网站,刚开始登录时没有验证码,输入几次错误密码之后才有,我们抓包它的话你就会看到有token值,我们这里还是用pikachu来进行测试。

攻击,从结果可以看到,没有破解成功。

因为token的值每次请求之后,token值都会发生变化。那么如何处理呢,我们应该把每次响应回来的新的token值替换到每次后续请求中,所以token值是不能防范暴力破解的,不过防止csrf是很有效的。

解决方法

注意:破解方式为音叉;线程数设为1;Grep-Extract设置好开始 token" value="结束为 " />

,有郊载荷设为递归搜索 "token" value=" ,先设置攻击类型,然后设置密码和token值两个变量

配置参数,线程数改为1,因为有token,所以不能采用多线程的方法。

再配置参数

然后配置载荷

第一个密码载荷

第二个,选择我们的递归搜索

开始攻击,由于我们用的是1个线程,所以速度可能比较慢

如果你查看网页源代码的时候,发现代码中有验证码的数字,也就是代码没写好,出了图片验证码之

外,它把数据写到了代码中,那么验证码的绕过,我们也可以通过这种方式来搞。

以前微软的很多网站都有这种漏洞,我们关闭代理,然后去wooyun找找看,多看看别人的,有助于拓宽思路。

C/S架构暴力猜解

C/S即客户端/服务器,基于C/S架构的应用程序,如 ssh、ftp、sql-server、mysql 等,这些服务往往提供一个高权限的用户,而这个高权限的用户往往可以进行执行命令的操作,如 sql-server 的 sa ,mysql的root,oracle的sys和system帐号,使用这些高权限的用户能在很大程度上给开发人员带来方便,但如果口令被破解带来的危害也是相当大的。C/S架构主要使用的破解工具 Hydra、Bruter、X-scan

*hydra***的使用 **

hydra是著名黑客组织thc的一款开源的暴力密码破解工具,可以在线破解多种密码。官网:http://www.thc.org/thc-hydra,可支持AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP,FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-PROXY, HTTPS-FORM-GET, HTTPS,FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MYSQL, NCP,NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec,Rlogin, Rsh, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP, SOCKS5, SSH (v1 and v2), Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC and XMPP等类型密码。

这款暴力密码破解工具相当强大,支持几乎所有协议的在线密码破解,其密码能否被破解关键在于字典是否足够强大。对于社会工程型渗透来说,有时能够得到事半功倍的效果。本文仅从安全角度去探讨测试,请勿用于非法事件。

在kali中已经集成好了,直接使用即可

通过命令来使用的,参数如下

hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns]
[-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV] 
server service [OPT]
-R 继续从上一次进度接着破解。
-S 采用SSL链接。
-s PORT 可通过这个参数指定非默认端口。
-l LOGIN 指定破解的用户,对特定用户破解。
-L FILE 指定用户名字典。
-p PASS 小写,指定密码破解,少用,一般是采用密码字典。
-P FILE 大写,指定密码字典。
-e ns 可选选项,n:空密码试探,s:使用指定用户和密码试探。
-C FILE 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数。
-M FILE 指定目标列表文件一行一条。
-o FILE 指定结果输出文件。
-f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解。
-t TASKS 同时运行的线程数,默认为16。
-w TIME 设置最大超时的时间,单位秒,默认是30s。
-v / -V 显示详细过程。
server 目标ip
service 指定服务名,支持的服务和协议:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt 
http-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 
ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp 
rsh cvs svn icq sapr3 ssh smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd 
firebird ncp afp等等。
OPT 可选项

**使用: **

1.手动创建用户名字典和密码字典,这里只是为了演示,只加了几个用户名和弱口令。真正破解时,需要利用密码字典生成器生成强大的字典

比如上传user.txt文件和top100.txt

2.破解ssh:

指令:hydra -L user.txt -P top100.txt -vV -e ns 192.168.0.20 ssh

比如我们先上传文件,就放到/root目录下吧

然后通过kali系统爆破一下它自己吧,如下图,成功了

破解成功,直接显示结果。也可以使用 -o 选项指定结果输出文件。这个我们可以试试看

hydra -L user.txt -P top100.txt -vV -e ns -o save.log 192.168.1.104 ssh

不过现在暴力破解很多都用的GPU,GPU比CPU的计算能力更强,挖矿、暴力破解等好多都用GPU,因为快。GPU更贵昂。

CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景。CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。

暴力破解防御

1、sleep

2、Token

3、限制尝试次数,锁定账户

 4、二次验证


 5、reCAPTCHA(ip验证)


 6、行为识别


 7、waf防御


 8、间隔时间强制修改密码

9、取消密码登录

个人用户安全建议

1、使用复杂密码

2、不同网站使用不同密码

3、定期修改密码

4、防止被钓鱼

标签: 网络安全

本文转载自: https://blog.csdn.net/qq_61714717/article/details/128334282
版权归原作者 非酋King 所有, 如有侵权,请联系我们删除。

“密码暴力破解”的评论:

还没有评论