外网打点不靠0day组合拳拿下目标系统
字数 2158 2025-11-02 00:39:25

外网打点实战技术教学文档

概述

本教学文档详细分析了一次成功的外网打点实战案例,攻击者在不使用0day漏洞的情况下,通过多种技术组合成功拿下了目标系统。本次攻击展示了红队攻防中信息收集、漏洞挖掘和权限提升的完整链条。

攻击路径总览

  1. JS隐藏注册页面发现 → 短信验证回显 → 断点调试获取动态密钥 → 越权获取用户信息 → 登录管理员后台
  2. 小程序弱口令爆破 → Fuzz相似API接口越权 → Hash碰撞获取管理员密码 → 接管高权限账户
  3. 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)
  • 碰撞脚本逻辑
    1. 提取盐值和目标哈希值
    2. 读取密码字典文件
    3. 对每个密码计算sha256(md5(password) + salt)
    4. 与目标哈希比对,找到匹配项
  • 成功碰撞出高权限账户密码: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. 配置文件信息提取

  • 获取数据库连接凭据
  • 成功访问数据库,获取数万用户数据

关键工具与资源

工具列表

  1. 目录扫描:dirbuster、ffuf
  2. 调试工具:浏览器开发者工具(条件断点)
  3. 加解密:AES-transfer插件
  4. 小程序解包:KillWxapkg(GitHub项目)
  5. 验证码识别:muggle_ocr
  6. APP反编译:jadx

字典资源

  • Top1000用户名字典
  • 常见弱口令字典(123456、888888、手机号后6位等)
  • 5位数字工号生成规则

防御建议

针对开发人员

  1. 接口安全

    • 避免在客户端存储敏感逻辑
    • 对所有API接口实施严格权限控制
    • 定期清理测试和隐藏接口
  2. 验证机制

    • 短信验证码不应在响应中回显
    • 实施有效的验证码防爆破机制
    • 使用一次性会话密钥且确保其安全性
  3. 加密安全

    • 避免在客户端硬编码加密密钥
    • 使用标准的加密库和安全的密钥管理方案

针对系统管理员

  1. 密码策略

    • 强制使用复杂密码策略
    • 定期更换默认和弱口令
    • 实施账户锁定机制防爆破
  2. 应用安全

    • 对小程序和APP进行安全加固
    • 配置文件与敏感信息分离存储
    • 定期进行安全测试和代码审计

总结

本次实战案例展示了红队外网打点的典型技术路径,强调了对目标系统的全面信息收集、多种漏洞的组合利用以及持续性的权限提升。攻击者通过细致的代码分析、巧妙的接口发现和耐心的密码破解,在没有0day的情况下成功实现了系统突破。

这种攻击方式具有很高的实用性和可复制性,防御方需要从开发规范、系统配置和持续监控多个层面建立纵深防御体系。

外网打点实战技术教学文档 概述 本教学文档详细分析了一次成功的外网打点实战案例,攻击者在不使用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识别验证码 安装配置 : 默认监听8899端口,可通过server.py修改配置 3. 加密密码字段分析 定位password字段加密函数 分析加密逻辑,为暴力破解做准备 4. 配置文件信息提取 获取数据库连接凭据 成功访问数据库,获取数万用户数据 关键工具与资源 工具列表 目录扫描 :dirbuster、ffuf 调试工具 :浏览器开发者工具(条件断点) 加解密 :AES-transfer插件 小程序解包 :KillWxapkg(GitHub项目) 验证码识别 :muggle_ ocr APP反编译 :jadx 字典资源 Top1000用户名字典 常见弱口令字典(123456、888888、手机号后6位等) 5位数字工号生成规则 防御建议 针对开发人员 接口安全 : 避免在客户端存储敏感逻辑 对所有API接口实施严格权限控制 定期清理测试和隐藏接口 验证机制 : 短信验证码不应在响应中回显 实施有效的验证码防爆破机制 使用一次性会话密钥且确保其安全性 加密安全 : 避免在客户端硬编码加密密钥 使用标准的加密库和安全的密钥管理方案 针对系统管理员 密码策略 : 强制使用复杂密码策略 定期更换默认和弱口令 实施账户锁定机制防爆破 应用安全 : 对小程序和APP进行安全加固 配置文件与敏感信息分离存储 定期进行安全测试和代码审计 总结 本次实战案例展示了红队外网打点的典型技术路径,强调了对目标系统的全面信息收集、多种漏洞的组合利用以及持续性的权限提升。攻击者通过细致的代码分析、巧妙的接口发现和耐心的密码破解,在没有0day的情况下成功实现了系统突破。 这种攻击方式具有很高的实用性和可复制性,防御方需要从开发规范、系统配置和持续监控多个层面建立纵深防御体系。