暴力破解
一、暴力破解
暴力破解(Brute-force Attack)是网络安全领域最原始却极具威胁的攻击手段。
核心原理是通过系统性枚举所有可能的组合,试图撞库破解密码、密钥或敏感信息。这一过程如同用数千万把钥匙逐一尝试打开一扇门锁——尽管看似「笨拙」,但在计算能力爆炸的今天,配合硬件加速与算法优化,却能成为攻破系统的「终极手段」。
技术本质
穷举逻辑:不依赖系统漏洞或加密算法弱点,纯粹通过算力穷举所有可能的字符组合(如字母、数字、符号的排列)。
自动化工具:借助Burp Suite、Hydra、Aircrack-ng等工具,批量生成测试用例并发送至目标系统,自动验证匹配结果。
场景延伸:不仅限于密码破解,还可用于爆破加密密钥(如WiFi的WPA2密码)、验证码(如短信动态码)、API接口参数等。
二、暴力破解的完整攻击链条
1. 信息收集阶段
攻击者通过社工、漏洞扫描或公开数据泄露,获取目标系统的用户名列表(如常见用户名「admin」「user」)、密码策略(如长度限制、字符类型)、加密算法(如MD5、SHA-1)等关键信息。
案例:某论坛泄露用户数据库,攻击者从中提取10万个用户名,针对性生成包含常用密码的字典。
2. 字典生成与优化
基础字典:使用内置字典(如SecLists),包含常见密码(「123456」「password」)、年份、姓名组合等。
定制字典:结合目标特征(如公司名、员工姓名拼音)生成专属字典,例如针对「某银行」系统,可能包含「bank2024」「@abcd123」等组合。
模糊测试:通过工具(如Crunch)按规则生成指定长度、字符集的全组合字典(如8-12位大小写字母+数字的1.2×10²⁰种可能)。
3. 自动化攻击执行
攻击者利用工具建立与目标系统的连接,循环发送「用户名+密码」组合进行验证。
技术细节:在HTTP协议中,可通过Burp Suite的Intruder模块设置请求参数(如表单中的「username」「password」字段),并行发送数千个请求/秒。
4. 结果验证与渗透
一旦检测到响应状态码异常(如HTTP 200 OK表示登录成功),或返回内容包含「欢迎」「令牌」等关键词,即判定破解成功,进而渗透系统窃取数据。
三、为什么暴力破解能成功?深度原因解析
1. 系统防护机制缺失
无频率限制:服务器未限制同一IP的登录尝试次数(如允许每秒发送1000次登录请求),攻击者可全速爆破。
反例:某银行APP设置「同一IP每分钟最多尝试5次登录」,直接将暴力破解耗时从「1小时」延长至「12天」。
无验证码/复杂验证:未启用图形验证码、滑块验证或二次认证(2FA),导致工具可无障碍自动提交请求。
漏洞案例:2023年某高校教务系统因未部署验证码,被攻击者用Hydra在3小时内爆破1000+学生账号。
2. 密码策略薄弱
短密码与简单组合:用户使用「生日」「手机号后6位」等易猜密码,或密码长度不足8位(如6位纯数字密码仅有10⁶种组合,GPU可瞬间破解)。
加密算法过时:系统仍使用MD5、SHA-1等不安全哈希存储密码,且未加盐(Salt)处理,攻击者可通过彩虹表秒级反查。
数据对比:加盐的BCrypt哈希破解需数月(假设每秒10亿次计算),而未加盐的MD5仅需数秒。
3. 网络架构暴露风险
端口开放与服务脆弱性:暴露RDP、SSH、MySQL等端口且未做访问控制,攻击者可直接通过协议层暴力破解(如用Medusa爆破SSH密钥)。
弱认证接口:API接口未限制请求频率,或使用明文传输认证参数(如HTTP Basic Auth),为中间人攻击与暴力破解提供便利。
4. 人性弱点与数据泄露
密码复用:用户在不同平台使用相同密码,攻击者通过泄露的A平台账号密码,直接尝试登录B平台(即「撞库攻击」)。
典型场景:2022年某电商平台泄露500万用户数据,攻击者利用其中10万组有效密码,成功登录3万余个关联的银行账户。
四、实战工具
常用工具
工具名称 |
核心功能 |
典型场景 |
Burp Suite |
web应用爆破(表单、API) |
渗透测试中破解登录接口 |
Hydra |
协议层爆破(SSH、FTP、MySQL等) |
服务器端口暴力破解 |
Hashcat |
哈希值破解(需先获取哈希文件) |
破解数据库存储的密码哈希 |
Aircrack-ng |
WiFi密码爆破(抓包后字典攻击) |
无线局域网安全评估 |
五、Burp Suite Intruder攻击
模块一:Sniper(狙击手模式)
针对单个payload--即针对一个目标的破解(如密码或账号等等)
模块二:Battering ram(攻城锤模式)
适用于密码和用户名一样的情况下,同时进行暴力破解
模块三:Pitchfork(草叉模式)
字典payload一个对一个形式爆破
模块四:Cluster bomb(集束炸弹模式)
一对多 可以进行遍历,枚举
弱口令漏洞深度解析
一、漏洞原理详解
密码存储机制
哈希过程示例:
import hashlib
import os
def hash_password(password):
# 生成随机盐值
salt = os.urandom(16)
# 创建PBKDF2哈希
key = hashlib.pbkdf2_hmac(
'sha256',
password.encode('utf-8'),
salt,
100000 # 迭代次数
)
return salt + key
# 验证过程
def verify_password(stored_hash, password):
salt = stored_hash[:16]
key = stored_hash[16:]
new_key = hashlib.pbkdf2_hmac(
'sha256',
password.encode('utf-8'),
salt,
100000
)
return new_key == key
弱口令成因矩阵
类别 |
占比 |
典型案例 |
风险等级 |
短密码 |
32% |
"123456" |
⭐⭐⭐⭐⭐ |
常见词汇 |
28% |
"password" |
⭐⭐⭐⭐ |
个人信息 |
22% |
"John1980" |
⭐⭐⭐ |
键盘模式 |
15% |
"qwerty" |
⭐⭐ |
默认凭证 |
3% |
"admin/admin" |
⭐⭐⭐⭐⭐ |
二、攻击原理深度剖析
认证流程漏洞点
漏洞利用点:
1. 无速率限制 → 允许无限尝试
2. 错误信息泄露 → 区分用户名有效性
3. 哈希算法脆弱 → 快速离线破解
三、攻击类型扩展
1. 高级字典攻击技术
智能字典生成:
from itertools import product
def generate_smart_dict(username, base_words):
"""生成智能字典"""
variations = []
years = [str(y) for y in range(1980, 2024)]
special_chars = ['!', '@', '#', '$', '%']
# 基础变换
for word in base_words:
variations.append(word)
variations.append(word.capitalize())
variations.append(word.upper())
# 添加年份后缀
for year in years:
variations.append(word + year)
variations.append(word.capitalize() + year)
# 添加特殊字符
for char in special_chars:
variations.append(word + char)
variations.append(char + word)
# 添加用户名相关
variations.append(username)
variations.append(username + "123")
variations.append(username + "!")
return set(variations)
# 使用示例
username = "johndoe"
base = ["password", "secret", "welcome"]
smart_dict = generate_smart_dict(username, base)
print(f"生成 {len(smart_dict)} 个密码变体")
2. 密码喷射攻击(Password Spraying)
攻击优势:
①绕过账户锁定策略
②降低被检测概率
③针对云服务特别有
四、攻击方式技术细节
1. 在线攻击工具详解
Hydra SSH攻击示例:
hydra -L users.txt -P passwords.txt ssh://192.168.1.100 -t 4 -V
参数说明:
`-L`:用户名列表
`-P`:密码字典
`-t`:并行线程数
`-V`:详细模式
Burp Suite Intruder攻击:
2. 离线攻击进阶
Hashcat破解示例:
# NTLM哈希破解
hashcat -m 1000 -a 3 hashes.txt ?l?l?l?l?l?l?l
# 使用规则攻击
hashcat -m 0 -a 0 hashes.txt dict.txt -r rules/best64.rule
GPU破解性能对比:
硬件配置 |
MD5哈希/秒 |
SHA1哈希/秒 |
NTLM哈希/秒 |
RTX 4090 |
100 GH/s |
45 GH/s |
200 GH/s |
RTX 3080 |
60 GH/s |
25 GH/s |
120 GH/s |
CPU i9-13900K |
1.2 GH/s |
0.8 GH/s |
2.5 GH/s |
五、完整攻击链分解
攻击链各阶段工具:
阶段 |
工具 |
用途 |
信息收集 |
Nmap, theHarvester |
发现目标资产 |
武器构建 |
CUPP, CeWL |
生成定制字典 |
初始访问 |
Hydra, Medusa |
凭证爆破 |
权限提升 |
Mimikatz, LaZagne |
提取凭证 |
横向移动 |
CrackMapExec, Impacket |
网络扩散 |
持久化 |
Cobalt Strike, Metasploit |
维持访问 |