外网打点不靠0day组合拳拿下目标系统
字数 2158 2025-11-02 00:39:25
外网打点实战技术教学文档
概述
本教学文档详细分析了一次成功的外网打点实战案例,攻击者在不使用0day漏洞的情况下,通过多种技术组合成功拿下了目标系统。本次攻击展示了红队攻防中信息收集、漏洞挖掘和权限提升的完整链条。
攻击路径总览
- JS隐藏注册页面发现 → 短信验证回显 → 断点调试获取动态密钥 → 越权获取用户信息 → 登录管理员后台
- 小程序弱口令爆破 → Fuzz相似API接口越权 → Hash碰撞获取管理员密码 → 接管高权限账户
- APP反编译获取系统信息 → 暴力破解bypass → 配置文件获取数据库凭据 → 获取用户数据
技术细节详解
方法一:JS接口挖掘与权限绕过
1. 隐藏接口发现技术
- JS代码分析:通过全局检索JavaScript代码,查找路由配置、接口注释或服务端代码中的注册逻辑
- 接口猜测:修改常见注册接口路径(如
/api/register、/user/signup、/auth/create)进行尝试 - 字典爆破:使用dirbuster、ffuf等工具扫描可能的接口路径
2. 短信验证码回显漏洞利用
- 在
/xxx/sendsmscode/接口发现验证码内容直接返回 - 漏洞影响:可伪造任意手机号进行系统登录
3. 加密通信逆向分析
- 发现请求数据使用AES-GCM加密方式
- 调试技巧:
- 设置条件断点(访问encrypt字段或调用AES-GCM函数时触发)
- 跟踪函数参数,特别是密钥和IV来源
- 发现session key为一次性,页面刷新即变化
- 使用AES-transfer插件自动替换加密字段
4. 越权漏洞挖掘
- 搜索技巧:查找包含id参数的接口
- 配合hae插件快速识别用户信息泄露
- 通过
/xxx/xxx/Getinfo?pageIndex=1&pageSize=15&key=1&id=72成功越权获取管理员手机号
方法二:小程序安全测试
1. 目标发现与信息收集
- 通过微信小程序搜索目标单位,发现后勤管控平台
- 识别系统使用shiro框架(尝试key爆破未成功)
2. 弱口令爆破技术
- 用户名生成策略:员工工号(5位数字,如10001,10002)
- 密码策略:固定密码123456 + Top1000用户名字典
- 成功爆破出三个有效账户
3. API接口Fuzz测试
- 从history中发现
StaffListV2接口(返回权限不足) - 相似接口Fuzz:
- StaffListV1、StaffListV3、StaffList
- 发现
StaffList接口未做鉴权,可获取所有员工邮箱和工号
4. 小程序解包与后台发现
- 使用KillWxapkg工具解包小程序
- 获取web后台管理地址:
https://api.xxxx-admin.com
5. 密码Hash碰撞攻击
- 在修改密码功能发现返回pwd_hash
- Hash算法分析:
pwd_hash = sha256(md5(password) + salt) - 碰撞脚本逻辑:
- 提取盐值和目标哈希值
- 读取密码字典文件
- 对每个密码计算
sha256(md5(password) + salt) - 与目标哈希比对,找到匹配项
- 成功碰撞出高权限账户密码:
1qaz@WSX
方法三:APP逆向与系统渗透
1. APP反编译技术
- 使用jadx反编译APP,获取管理系统域名地址
2. 验证码绕过技术
- 使用muggle_ocr识别验证码
- 安装配置:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple muggle_ocr - 默认监听8899端口,可通过server.py修改配置
3. 加密密码字段分析
- 定位password字段加密函数
- 分析加密逻辑,为暴力破解做准备
4. 配置文件信息提取
- 获取数据库连接凭据
- 成功访问数据库,获取数万用户数据
关键工具与资源
工具列表
- 目录扫描:dirbuster、ffuf
- 调试工具:浏览器开发者工具(条件断点)
- 加解密:AES-transfer插件
- 小程序解包:KillWxapkg(GitHub项目)
- 验证码识别:muggle_ocr
- APP反编译:jadx
字典资源
- Top1000用户名字典
- 常见弱口令字典(123456、888888、手机号后6位等)
- 5位数字工号生成规则
防御建议
针对开发人员
-
接口安全:
- 避免在客户端存储敏感逻辑
- 对所有API接口实施严格权限控制
- 定期清理测试和隐藏接口
-
验证机制:
- 短信验证码不应在响应中回显
- 实施有效的验证码防爆破机制
- 使用一次性会话密钥且确保其安全性
-
加密安全:
- 避免在客户端硬编码加密密钥
- 使用标准的加密库和安全的密钥管理方案
针对系统管理员
-
密码策略:
- 强制使用复杂密码策略
- 定期更换默认和弱口令
- 实施账户锁定机制防爆破
-
应用安全:
- 对小程序和APP进行安全加固
- 配置文件与敏感信息分离存储
- 定期进行安全测试和代码审计
总结
本次实战案例展示了红队外网打点的典型技术路径,强调了对目标系统的全面信息收集、多种漏洞的组合利用以及持续性的权限提升。攻击者通过细致的代码分析、巧妙的接口发现和耐心的密码破解,在没有0day的情况下成功实现了系统突破。
这种攻击方式具有很高的实用性和可复制性,防御方需要从开发规范、系统配置和持续监控多个层面建立纵深防御体系。