渗透测试中爆破与撞库的区别
这是一个在渗透测试和安全领域中非常经典且重要的问题。简单来说,“爆破”是猜密码,“撞库”是偷用密码。
下面我们来详细解释两者的区别。
核心定义
-
爆破
-
目标:针对某一个特定的用户账号,尝试用大量不同的密码去登录,直到找到正确的那个。
-
前提:你已经知道了一个确定的用户名(例如:admin、zhangsan@company.com)。
-
原理:利用“用户名已知,密码未知”的特点,使用密码字典(一个包含成千上万常用密码、泄漏密码、根据规则生成的密码的文件)对该账号进行高频次的登录尝试。
-
比喻:你盯上了保险箱A(用户名),然后拿一万把不同的钥匙(密码字典)一把一把地试,直到打开它。
-
-
撞库
-
目标:使用一批已经泄露出来的用户名和密码组合,去批量尝试登录其他不同的网站或系统。
-
前提:你手上有一份或多份从其他网站泄露的“用户名-密码”数据库。
-
原理:利用很多人“在不同网站使用相同用户名和密码”的坏习惯。攻击者不关心具体是哪个用户,而是用这批偷来的凭证,自动化地、大规模地去“撞”其他系统的登录接口。
-
比喻:你从小区A的物业那里偷来了一串钥匙和对应的门牌号(泄露的账号密码),然后你拿着这串钥匙,跑到小区B、小区C,挨家挨户地试,看哪把钥匙能打开别人家的门。
-
详细对比表格
特性 | 爆破 | 撞库 |
---|---|---|
攻击目标 | 单一、明确的用户账号 | 整个系统的任意用户账号 |
所需信息 | 已知用户名 + 密码字典 | 一批已知的“用户名-密码”对(来自其他泄露数据库) |
攻击原理 | 对一个账号尝试多个密码 | 用一组账号密码尝试登录多个系统 |
核心依赖 | 密码强度弱、系统无爆破防护 | 用户在多个平台使用相同凭证的坏习惯 |
攻击效率 | 相对较低,尤其是面对强密码和防护措施时 | 非常高,因为直接使用真实的凭证对,成功率取决于用户的密码复用率 |
攻击目的 | 获取特定目标的访问权限 | 获取任意可用的访问权限,常用来寻找“软柿子” |
防御措施 | - 强密码策略 - 登录失败次数限制/账户锁定 - 引入验证码(CAPTCHA) - 登录延时 | - 强制使用唯一密码 - 多因素认证(MFA/2FA) - 监控异常登录地点和行为 - 定期检查企业账号是否在公开泄露库中 |
举例说明
场景:攻击者想进入某公司的内部系统(system.example.com)
-
爆破攻击:
-
攻击者通过信息收集,发现公司CEO的邮箱是
ceo@example.com
。 -
他确定这个邮箱很可能在
system.example.com
有账号。 -
他使用Hydra、Burp Suite Intruder等工具,加载一个庞大的密码字典,对
ceo@example.com
这个账号发起持续的登录请求,尝试密码如Password123
,Company@2024
,ceo@birthday
等,直到成功。
-
-
撞库攻击:
-
攻击者从暗网购买了一份从“某社交网络”泄露的数据库,里面有1亿个“邮箱-密码”对。
-
他编写一个脚本,自动取出这些邮箱和密码,去尝试登录
system.example.com
的登录接口。 -
脚本运行后,他发现列表中有
zhang.wei@example.com:123456
这个组合,并且成功登录了system.example.com
。原来,员工张伟在社交网络和公司系统上使用了相同的邮箱和弱密码。
-
总结与关联
-
本质不同:爆破的核心是“猜”,撞库的核心是“复用”。
-
相互结合:在实战中,两者并非完全割裂。例如,攻击者可能先通过撞库获取了一个低权限账号,然后以此为基础进行内网渗透,再对域管理员账户进行密码爆破。
-
防御重点:
-
防御爆破,关键在于加强认证系统本身的健壮性,不让攻击者可以无限尝试。
-
防御撞库,关键在于教育用户(或通过技术手段强制)使用唯一、强壮的密码,并开启多因素认证,这样即使密码在其他地方泄露,也不会危及本系统。
-
理解这两者的区别,对于制定有效的安全防护策略至关重要。