密码暴力破解
什么是暴力破解
使用大量的认证信息在认证接口尝试登录,直到得到正确的结果。 为了提高效率,一般使用带有字典的工具来进行自动化操作
不安全的密码
- 默认密码
000000、123456、空密码、身份证后六位、手机号后六位… - 常见密码
https://nordpass.com/most-common-passwords-list/ - 裤子
网站被黑客攻击导致整个数据库的密码泄露被脱库,已经泄露的密码叫裤子
密码猜解思路
- 确定猜测范围
密码长度,注册界面限制长度,一般为6-16位
密码内容,数字、字母、特殊符号 - 使用合适的密码字典
github:Weak-password、SuperWordlist、PasswordDic
指定格式字典:crunch
社工字典:cupp、ccupp、https://www.bugku.com/mima/
提取网站中的单词:cewl 网址 -w word.txt
Python暴力破解
DVWA的low等级暴力破解,get方式传递参数,暴破admin的密码
构造http请求数据,通过响应结果中是否包含错误提示判断是否暴破成功
BurpSuite暴力破解
DVWA的low等级暴力破解
BurpSuite抓取登录数据包
将数据包发送到Intruder,攻击模式使用Sniper(狙击手模式,只能对一个字段进行攻击),设置password内容为攻击字段
password字段加载字典文件内容
Start attack开始攻击,因错误密码的响应数据包内容相同,可根据响应数据包长度排序确定正确的密码
DVWA的high等级暴力破解
high等级添加了token验证,token只生效一次,需要从上一次HTTP响应结果中获取下一次的token。BurpSuite抓取登录数据包
将数据包发送到Intruder,攻击模式使用Pitchfork(草叉模式,可对多个字段进行攻击,但字段的值是按顺序对应的),设置password和token的内容为攻击字段
进入Options选项,Add添加响应数据包过滤规则
Refetch response刷新响应数据包,双击选取token值所在的位置,复制token值
点击OK成功添加过滤规则
对攻击的响应结果进行过滤,带有Welcome说明登录成功
Payloads中token字段设置类型为Recursive grep递归匹配,粘贴获取的token值到first request
因token只能使用一次无法并行发包,设置成单线程并开始攻击
成功过滤出密码password
其他暴力破解工具
wfuzz
wfuzz爆破pikachu的暴力破解模块,过滤单词数为1797的失败响应结果
Hydra
使用kali的Hydra爆破redis服务器的ssh密码
Medusa
爆破root用户的ssh密码
msfconsole
msfconsole爆破redis服务器ssh登录用户名和密码
如何防御暴力破解
服务器防御
- 限制尝试错误密码次数,锁定账户
- 密码错误时sleep延迟响应时间
- 增加token禁止多线程访问
- 二次验证,如人脸识别、设备验证码、人机身份验证、异地登录验证
- 锁定多次密码错误的ip
- WAF识别暴力破解
- 强制用户修改密码
- 取消密码登录
用户防御
- 使用复杂密码
- 不同网站使用不同密码
- 定期修改密码
- 防止被钓鱼