暴力破解
概述
- 暴力破解(Brute Force Attack)是一种通过自动化工具系统性地尝试所有可能的字符组合,以穷举方式突破安全防护的攻击手段。
- 其核心是利用计算力而非漏洞,常见于密码破解(如登录界面、加密文件)、目录扫描或 API 密钥猜测等场景。
- 攻击者通常借助字典(如常见密码表)或规则生成大量尝试请求,通过分析响应差异(如 HTTP 状态码)确定是否成功。
字典
弱口令
- 弱口令 是指容易被猜测或破解的密码,通常由于过于简单、常见或缺乏复杂性,导致攻击者能通过暴力破解、字典攻击或社会工程学等手段快速获取访问权限。
- 使用的弱口令可能会被猜解或被破解工具破解,从而泄露个人隐私信息,甚至造成财产损失。
- 若是系统管理员账户弱口令可能会导致整个系统被攻击、数据库信息被窃取、业务系统瘫痪,造成所有用户信息的泄露和巨大的经济损失,甚至可能引发群体性的网络安全危害事件。
通用弱口令
类型一:简单数字组合
- 示例:111111、112233、123123、654321、314159、101010、123321 等。
类型二:顺序字符组合
- 示例:abcdef、abcabc、123456、abc123、a1b2c3、aaa111、ABCDEF、abcABC、02468、acegi 等。
类型三:键位临近字符组合
- 示例:147258、123!@#、qwer123、123qwe、Qwerty、qweasd、mnbvcxz、poiuytrewq、0p9o8i7u、asdfghjkl、!@#$%^&*等。
类型四:网络设备、安全设备、应用系统、中间件等默认口令
- 示例:root、password、pass、admin、admin@XXX、calvin、bane@7766、talent、shell、system、private、netscreen、cisco、administor、admin_default、ruijie、sangfor、sangfor@2018、dlanrecover、venus60、leadsec.waf、administrator、h3c、firewall、ftppwd、venus.fw、weboper、safetybase、空字符等。
类型五:特殊含义组合
- 示例:shadow、test、p@ssw0rd、passw0rd、forbidden、woaini1314、jintianxingqiwu 、easypassword、cmscms、june1995、199001、@163.com、beijing、!@#$%^&*、secret、zhangwei、sys123、system123、knight、jordan、hell0w0rd、superman、success、loveme、%null%、welcome、buzhidao、zhangsan0807、zhangsan0807@、ZS@0807 等。
默认密码
条件弱口令
- 利用人的密码习惯,如姓名、邮箱、生日、用户名、特殊数字、伴侣信息、手机号码以及其个人、企业的信息等,而形成的密码。
- 即在一定场景或规则下设置的密码,虽然可能满足基本复杂度要求(如包含大小写字母、数字或符号),但仍存在明显规律或易被猜测的风险。
强口令
- 由数字、大小写字母、特殊符号组成的长密码
- 强密码生成器
暴力破解类型
- sniper:狙击手,单点爆破,爆破的参数只有一个,比如爆破密码。
- battingram:攻城锤,多点爆破,爆破的参数可以有多个,但是所有的爆破点共用一个密码字典。
- pichfork:叉子,多点爆破,爆破的参数可以有多个,每个爆破点都自己对应的字典,一一对应的爆破,爆破的次数是最小的字典大小。
- cluster bomb:集束炸弹,多点爆破,爆破的参数可以有多个,每个爆破点都自己对应的字典,一对多的爆破,爆破的次数是字典个数相乘,即 笛卡尔积。
密码字典
可从 GitHub 中下载
如何判断破解成功
- 观察响应长度:成功的响应包的响应体长度明显区别于其他响应,例如某次爆破成功的响应体的长度为
5056
,明显区别于其他响应体的长度5013
。 - 响应具体内容:把错误的特征排除掉(比如排除“用户名或密码错误”的包),剩下的包就是成功登录包,如下图所示。
- 响应状态码:很多网站登录成功,状态码为
302
。
暴力破解防御
- 手机验证码、邮箱验证码
- 安全的图形验证码(刷新、拼图、计算、选图,如
Google Recaptcha
) - 限制频率(密码登录失败三次,锁定)
- 生物指纹识别(人脸、语音、记忆识别)
- TOTP(基于时间的一次性密码)
- 禁用密码(银行 U 盾、SSH 公私钥)
- 开发者编写代码,强制注册用户使用强密码
暴力破解的其他应用
破解验证码
[!important]
只能破解四位纯数字的验证码
反复发送同一个请求
- 如短信轰炸、邮件轰炸等都是发送同一个请求很多次,没有定位点,只是单纯地重复发包。