暴力破解:
kali自带的用户本和密码本
/usr/share/wfuzz/wordlist/others
暴力破解漏洞:
由于服务器没有做限制,导致攻击者可以通过暴力的手段破解所需要的信息,如用户名、密码,验证码等,暴力破解需要一个庞大的字典。
绕过前端验证进行爆破:
什么是前端验证:
前端验证放到js中,不会经过后台验证,只在前端进行验证。
字典:
1.常用的账号密码(弱口令),比如常用用户名/密码TOP500等
2.互联网上脱库后账号密码(社工库),比如CSDN当年泄露600W用户信息
3.使用指定的字符串使用工具按照规定的规则进行排列组合算法生成密码。
暴力破解:
如果 一个网站没有对登陆接口实施防止爆破的措施,或者实施不了合理的措施,该网站存在暴力破解漏洞
防御:
1.是否要求用户设置了复杂密码
2.是否每次认证都使用安全的验证码
3.是否对尝试登陆的行为进行判断和限制
4.是否在必要的情况下采取了双因素认证
暴力破解测试流程:
1.确认登录接口的脆弱性:确认目标是否存在暴力破解漏洞(比如观察验证元素和response信息,判断是否存在被暴力破解的可能)
2.对字典进行优化:根据实际情况对字典进行优化,提高爆破过程的效率
3.工具自动化操作:配置自动化工具(比如线程,超过时间,重试次数等),进行自动化操作。
暴力破解,字典优化技巧:
1.根据注册信息优化,对目标站点进行注册,搞清楚账号和密码的一些限制,比如目标站点要求密码必须是6位以上,字符数字组合,则可以根据此来优化字典。
2.如果爆破的是管理后台,系统管理员是admin/administrtor/root的几率比较高,可以使用这个来判断用户名
C/S架构的暴力破解
C/S客户端/服务器,基于C/S架构应用程序,如ssh sql-server mysql等。这些服务,往往提供了一个高权限的用户,这个高权限的用户往往能在很大的程度上给用户带来方便,但是如果口令被破解会带来的危害也是很大的
C/S架构主要是使用的破解工具是hydra、bruter、X-scan
B/S架构暴力拆解
一般是对web应用程序中的高权限用户进行拆解,如网站的内容管理系统账户,一般针对B/S的暴力破解
使用burp suite表单爆破。
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等类型密码。
hydra
hydra语法格式:hydra 参数 IP服务
参数:
-l login 小写,指定用户名破解
-L file 大写,指定用户的用户名字典
-p pass 小写,用于指定密码破解,很少使用,一般采用密码字典。
-P file 大写,用于指定密码字典
-e ns 额外的选项
n:空密码试探
s:使用指定账户和密码试探
-M file 制定目标ip列表文件,批量破解。
-o file 指定结果输出文件
-f 找到第一对登录名或者密码的是时候终止破解。
-t tasks 同时运行的线程数,默认是16
-w time 设置最大超过时间,单位
-v / -V 显示详细过程
-R 恢复爆破(如果爆破中断了,下次执行hydra -R /path/to/hydra.restore就额可以继续任务了)
-x 自定义密码。
service:服务名,支持服务和协议有:telnet,ftp,ssh等
注意:
1.自己创建的呢字典,然后放在目前的目录下面或者指定的目录
2.参数可以统一放到最后,格式比如hydra ip 服务 参数
3.如果能确定用户名一项,比如web登陆破解,直接用-l就可以了,然后剩余的时间用hb破解密码。
4.缺点:如果目标网站登陆的时候需要验证码就无法破解了
5.man hydra最万能
6.或者hydra-U http_from 查看具体的帮助
- 其他实例:
1.破解ssh hydra -L 用户名字典 -P 密码字典 -t 线程数 -vV 详细信息 -e ns ip ssh
2.破解ftp hydra ip ftp -L 用户名字典 -P 密码字典 -t 线程数 -vV
3.get 方式提交,破解web登陆:
hydra -L 用户名字典 -P 密码字典 -t 线程数 -vV e ns ip http-get /amin/
hydra -L 用户名 字典 -P 密码字典 -t 线程数 -vV e ns-fip http-get /
admin/index.php
4.post方式提交,破解web登陆(基于web的post请求时候需要使用hydra的http-post-form模块,web参数之间使用:分隔)
hydra -L 用户名字典 -P 密码字典 -s 80 ip http-post-from
"/admin/login/login.,php:username='USER'$password"='PASS'&submit=login:sorry password"hydra -t 3 -L 用户名字典 -P 密码字典 -o out.txt -f 指定用户找到第一个用户名停止
ip 10.10.10.10 http-post-from "login.php;id=^USER^&passwd=^PASS^:<title>wrong username of password</title>"
参数说明: -t 线程数3,-L 用户名字典,-p 密码字典,保存到out.txt文件内,-f 当破解第一个密码就停止,ip目标偶地址,http-post-form破解采用的http的post方式提交的表单密码破解,<title>中的内容是表示错误猜解的返回信息提示。/admin/login.php:登陆入口(登陆界面)
log:登录用户名参数
USER:变量,是hydra特殊用法
pwd(passwd):登录密码参数
结语:
这里介绍了一些工具的使用 hydra burp等,在渗透测试过程中需要各种工具去配合使用才会有更好的效果,这里写这个也是为了和各位师傅们交流学习,希望对大家有帮助!