暴力破解
2019年夏天,暴力破解我帮一个朋友查他的暴力破解WordPress站点为什么总是被灌垃圾评论。打开服务器日志,暴力破解我愣住了——来自全球各地的暴力破解IP,每分钟都在尝试登录他的暴力破解后台。不是暴力破解几十次,是暴力破解几千次。密码组合从"admin123"到"qwerty2020",暴力破解密密麻麻刷屏。暴力破解他用的暴力破解密码是"summer2019",跟用户名就差一个数字。暴力破解三小时之内,暴力破解攻击者就猜中了。暴力破解
这就是暴力破解暴力破解。没有什么高明技术,暴力破解就是硬试。像拿着一串钥匙挨个捅锁眼,直到门开。听起来很蠢对吧?但数据显示,它依然是入侵账户最有效的手段之一。
为什么它管用
因为人的密码太烂了。每年泄露的密码榜单上,"123456"、"password"、"iloveyou"稳居前十。攻击者根本不需要多聪明,他们只需要一本常用密码字典,加上自动化脚本,就能覆盖大部分人的选择。
我见过一个真实的案例。某公司内部系统被攻破,安全团队排查了半天,以为是高级持续性威胁。结果发现,攻击者只是用了一个开源工具叫Hydra,跑了一晚上,猜中了财务总监的密码——他用了自己女儿的名字加生日。这个信息在LinkedIn上就能找到。
暴力破解分两种。一种是纯暴力,穷举所有字符组合。理论上,八位密码有62的8次方种可能,现代计算机也要跑很久。但现实中没人这么干,效率太低。另一种叫字典攻击,用预先生成的密码列表去试。这些列表来自历史泄露数据,包含几千万条真实用户用过的密码。命中率惊人。
攻击者怎么做的
我拆解过一个典型的攻击流程。第一步,收集目标信息。邮箱、用户名、生日、宠物名,从社交媒体上扒。第二步,生成定制字典。用工具比如CUPP,把收集到的信息组合成可能的密码变体。第三步,跑自动化脚本。用Burp Suite或者Hydra,对着登录接口疯狂发请求。第四步,绕过防御。换IP、加延迟、模拟正常用户行为,避开速率限制和封禁。
整个过程可以完全自动化。一个脚本小子,下载几个工具,就能对一个中小型网站发起有效攻击。成本几乎为零。
防御不是设个复杂密码就完事
很多人以为密码够复杂就安全了。错。我见过用"X9#kL2$mP"这种密码的账户被攻破,因为攻击者用了撞库——从其他网站泄露的数据库里拿到这个密码,直接试。你在A网站用的密码,在B网站被泄露了,攻击者拿去试C网站,这叫凭证填充,也算暴力破解的变种。
真正有效的防御是多层叠加。第一,限制登录尝试次数。超过五次就锁定账户或者加验证码。第二,启用双因素认证。就算密码被猜中,没有第二重验证也进不去。第三,监控异常登录。同一IP短时间大量失败请求,直接拉黑。第四,用密码管理器生成随机密码,每个网站都不一样。第五,定期检查自己的邮箱是否出现在已知泄露库中,Have I Been Pwned这个网站可以查。
我自己给服务器配了Fail2ban,默认设置是五次失败就封IP十分钟。日志显示,每天封掉的IP有上百个。它们来自世界各地,很多是僵尸网络里的肉鸡。攻击者根本不在乎是谁的机器,只要能发请求就行。
一个容易被忽略的细节
暴力破解不光是猜密码。API密钥、SSH私钥、甚至Wi-Fi的WPS PIN码,都是目标。我邻居的路由器就被破了,因为他没关WPS功能。攻击者用Reaver跑了一个下午,PIN码就出来了。然后他改了DNS设置,把所有流量导到一个钓鱼页面。邻居完全没察觉。
所以别只盯着登录框。任何需要认证的地方,都是暴力破解的潜在入口。默认密码、弱口令、未更新的固件,全是漏洞。
说到底,暴力破解能成功,不是因为攻击者多厉害,而是因为防御者太懒。改个默认密码,开个双因素,设个尝试限制,就能挡住绝大多数攻击。但很多人就是不做。直到出事。









