全程带阻:记一次授权网络攻防演练(上)
字数 1510 2025-08-18 11:38:52
授权网络攻防演练教学文档
1. 攻击链概述
完整的网络攻击链通常包括以下七个步骤:
- 信息搜集
- 漏洞利用
- 建立据点
- 权限提升
- 权限维持
- 横向移动
- 痕迹清除
2. 信息收集阶段
2.1 初步观察
- 目标系统:供应商管理系统
- 关键观察点:
.do接口地址(可能为Struts2框架)- 登录功能
- 密码找回功能
2.2 技术验证
-
Struts2验证:
- 使用安恒S2漏洞验证工具扫描
- 确认无Struts2命令执行漏洞
-
登录功能分析:
- 存在图片验证码
- 验证码防御机制有效(应答标志变化)
- 暂时放弃暴力破解
3. 密码找回功能攻击
3.1 用户名枚举
- 漏洞点:密码找回功能未验证验证码
- 攻击方法:
- 使用中国人姓名(top500)和后台账号字典
- 枚举获得有效账号:nana、admin、liufei
3.2 敏感信息泄露
- 漏洞点:密码找回响应中包含敏感信息
- 泄露信息包括:
- 用户邮箱
- 哈希密码(MD5格式)
3.3 密码破解
-
信息库查询:
- 从邮箱提取用户名查询历史密码
- 仅找到liufei的历史密码但验证失败
-
哈希破解:
- 使用彩虹表破解liufei密码:!QAZ2wsx
- 其他账号密码未破解
4. 低权限访问
4.1 使用弱口令登录
- 账号:liufei
- 密码:!QAZ2wsx
- 功能限制:仅有回收站功能,无业务数据
4.2 社工字典生成
- 使用hashcat生成社工属性密码字典
- 规则库:dive.rule
- 基础信息:用户名nana
- 生成字典:se_passwds.txt
- 破解结果:nana密码为nanacnacnanac
5. 权限提升尝试
5.1 上传功能分析
- 非管理员禁止上传文件
- 需要获取admin权限
5.2 密码重置漏洞
-
IDOR漏洞:
- 参数email可被篡改
- 可劫持密码重置邮件到攻击者邮箱
-
攻击步骤:
- 修改email参数为攻击者邮箱
- 接收重置链接
- 修改admin密码
注意:实际演练中需获得授权
6. JWT攻击
6.1 JWT结构分析
- 格式:三段式base64(header.payload.signature)
- 解码发现:
- 第一部分:JWT标识
- 第二部分:包含用户名信息
- 第三部分:签名
6.2 JWT攻击方法
-
未校验签名:
- 直接修改user字段为admin
- 尝试绕过签名验证(失败)
-
禁用哈希:
- 修改alg字段为none
- 使用pyjwt库生成无签名token
- 尝试绕过(失败)
-
密钥爆破:
- 使用自定义脚本爆破弱密钥
- 爆破成功:密钥为"\(admin\)"
6.3 垂直越权实现
- 使用正确密钥生成伪造token
- 修改user字段为admin
- 使用正确签名
- 成功绕过权限检查
- 实现文件上传功能
7. 工具与技术总结
7.1 使用工具
- 信息收集:
- Burp Suite
- 安恒S2漏洞验证工具
- 密码破解:
- cmd5.com彩虹表
- hashcat
- JWT攻击:
- pyjwt库
- 自定义爆破脚本
7.2 关键技术
- 用户名枚举技术
- 社工字典生成技术
- JWT签名绕过技术
- 垂直越权技术
8. 漏洞总结
- 用户名枚举漏洞
- 敏感信息泄露漏洞
- 弱口令漏洞(liufei)
- 社工属性口令漏洞(nana)
- 任意用户密码重置漏洞(IDOR)
- JWT弱密钥漏洞(导致垂直越权)
9. 防御建议
- 密码找回功能:
- 实施验证码保护
- 限制错误响应信息
- 认证机制:
- 使用强密码策略
- 避免密码哈希泄露
- JWT实现:
- 使用强密钥
- 严格校验签名
- 禁用none算法
- 权限控制:
- 实施最小权限原则
- 关键操作二次验证
10. 后续攻击方向
- 文件上传getshell
- 权限维持技术
- 内网横向移动
- 痕迹清除技术
注:实际攻击需获得授权,本文仅用于教学目的