红队攻防 | 外网打点不靠0day组合拳拿下目标系统
字数 3846 2025-10-01 14:05:45
红队外网打点实战技巧与案例详解
一、前期准备与防溯源
1.1 基础设施准备
- 使用临时VPS(推荐AWS)进行攻击操作
- 关键设置:勾选"掉线禁用网卡"选项,防止网络切换过程中泄露真实出口IP
1.2 演习规则解读要点
- 目标范围确认:提前确认目标分子公司是否在攻击范围内
- 多倍积分目标:重点关注可获多倍积分的目标,提高攻击效率
- 团队协作:合理分工(如A负责外网打点,B负责内网横向)
- 成果同步:使用语雀或雨墨等平台同步成果,避免重复工作
- 现场洞察:关注大屏攻击动态,预判即将下线单位,优先集火攻击
二、实战攻击手法详解
2.1 JS隐藏注册页面攻击链
2.1.1 攻击流程
JS隐藏注册页面 → 短信验证回显 → 断点调试获取动态密钥 → 越权获取用户手机号 → 登入管理员后台
2.1.2 具体实施步骤
1. 发现隐藏接口
- 全局检索JS代码中的
register字段 - 尝试常见注册接口路径:
/api/register、/user/signup、/auth/create - 使用dirbuster、ffuf等工具进行字典爆破
2. 利用短信验证码回显
- 发现
/xxx/sendsmscode/接口泄露验证码内容 - 可伪造任意手机号进行系统登录
3. 获取管理员手机号
- 社工手段(通过搜索引擎查找,成功率低)
- 手机号爆破(尝试数万次未成功)
- 后台越权漏洞利用
4. 加密数据分析
- 数据包使用加密字段,全局搜索
encrypt字段 - 发现使用AES-GCM加密方式
- 设置条件断点动态调试获取session key(一次性,刷新即变)
- 使用AES-transfer插件自动替换字段
5. 越权获取信息
- 搜索含id参数的接口
- 使用hae插件快速挖掘越权点
- 通过
/xxx/xxx/Getinfo?pageIndex=1&pageSize=15&key=1&id=72获取管理员手机号
6. 登录后台
- 利用管理员手机号+短信验证回显成功登录后台
2.2 小程序弱口令攻击链
2.2.1 攻击流程
小程序弱口令爆破 → Fuzz相似api接口越权 → hash碰撞获取管理员密码 → 接管高权限账户
2.2.2 具体实施步骤
1. 目标发现
- 通过微信小程序搜索目标单位,发现后勤管控平台
2. 弱口令爆破
- 使用Google语法搜出工号位数为5位数字(10001、10002格式)
- 固定密码123456,使用Top1000用户名进行爆破
- 成功爆破出三个弱口令账户
3. 接口Fuzz
- 从history中发现
StaffListV2接口返回权限不足 - Fuzz相似接口:
StaffListV1、StaffListV3、StaffList StaffList接口无鉴权,可获取所有员工邮箱和工号
4. 后台地址发现
- 通过小程序解包找到web后台管理地址:
https://api.xxxx-admin.com
5. 密码hash分析
- 修改密码功能api接口返回用户名
pwd_hash - 通过传入userid可越权查看他人
pwd_hash - 分析hash生成算法:
pwd_hash = sha256(md5(password) + salt)
6. 密码碰撞
- 编写碰撞脚本,使用密码字典进行匹配
- 成功碰撞出高权限账户密码:
1qaz@WSX
2.3 APP反编译攻击链
2.3.1 攻击流程
反编译APP找到系统 → 暴力破解bypass → 配置文件获取数据库账密 → 获取数万用户数据
2.3.2 具体实施步骤
1. 系统发现
- 使用jadx反编译APP,找到管理系统域名地址
2. 验证码绕过
- 安装muggle_ocr:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple muggle_ocr - 默认监听本地8899端口,可通过server.py修改
- 定位验证码功能URL,抓包发送到验证码识别模块
3. 密码加密分析
- 搜索
encrypt字段找到密码加密函数 - 编写脚本对密码字段进行RSA批量加密
4. 暴力破解
- 配置payload模块,实现验证码自动识别+密码加密爆破
- 成功爆破出有效账户密码
5. 权限提升
- 通过许可证功能点文件上传getshell
- 发现IIS权限较低,只能浏览部分文件
- 通过
web.config文件找到数据库账密
6. 数据获取
- 根据表名定位用户数据表
- 获取数万用户数据:
select count(*) from xxx
2.4 被动指纹识别攻击链
2.4.1 攻击流程
被动指纹识别 → swagger信息泄露获取token → 命令执行
2.4.2 具体实施步骤
1. 框架识别
- 使用sweetpotato插件识别目标系统为jeecg框架
2. 漏洞利用
- JeecgBoot积木报表接口未授权漏洞:
/jeecg-boot/jmreport/queryFieldBySql - 使用Freemarker处理sql参数,存在SSTI漏洞
3. Token获取
- 直接请求返回缺少token错误
- 扫描目录发现swagger信息泄露
- 通过
httptrace接口获取有效的x-access-token
4. 命令执行
- 携带获取的token发送恶意请求
- 成功实现命令执行
2.5 旁站备份文件泄露攻击链
2.5.1 攻击流程
旁站备份文件泄露 → go代码审计绕鉴权 → yaegi第三方库命令注入
2.5.2 具体实施步骤
1. 信息收集
- 使用Oneforall、Amass、SubdomainBrute搜集三、四级域名
- 扫描目录发现测试平台存在源码泄露
2. 代码审计
- Gin框架中路由映射关系可通过GET、POST等关键字查找
- SQL注入多存在于
fmt.printf使用%s拼接处 - 全局搜索
%s查找潜在注入点
3. Yaegi库漏洞
i.Eval方法支持动态执行用户提供的Go代码- 未对用户输入做安全控制,存在命令注入
4. 鉴权绕过
- 直接访问功能点会重定向到首页
- 使用URL编码绕过鉴权(利用
request.url.path特性) - 发送payload成功执行命令回显dnslog
2.6 ASP调试信息泄漏攻击链
2.6.1 攻击流程
ASP调试信息泄漏 → 后台FTP下载源码 → 模板插件压缩包上传 → 替换hash登录系统
2.6.2 具体实施步骤
1. 信息泄漏利用
- 扫描目录发现ASP.NET调试信息泄漏:
/Trace.axd?id=0 - 泄漏Cookie信息,使用Burp替换Cookie进入后台
2. FTP信息获取
- 在配置文件位置抓包找到FTP账户密码
- 由于设置限制,只能文件读取和下载
3. 源码获取
- 将根目录下的www.zip打包到本地进行代码审计
4. 压缩包上传利用
- 上传功能仅做zip后缀过滤
- 默认上传路径为
/App_Data/BaseManage/Applications/(前台不可访问) - 通过
copyfile方法,构造app.json文件指定解压路径
5. 权限获取
- 选择压缩包上传并安装,getshell成功
- 翻找数据库配置文件:
./xxx/xxx/product/application.ini - 找到加密密码:
root/ENC(2RllAsMDeSP--MsRbM0CdSS7xxxxxx7XeyVHQNGUBE0XU=)
6. 密码解密
- 定位加密逻辑代码,使用AES-128-CBC加密
- key使用sha256循环hash 100次生成
- 编写脚本解密数据库密码
7. 系统登录
- 发现密码使用BCrypt算法生成(不可逆)
- 格式:
$2a$10$QkBrYzvFkxslEu.NR4K6jOScKpiEqeptALHRoVkj5hoMFm9TqCm8u - 重新生成hash替换原值,成功登录系统
2.7 旁站端口扫描攻击链
2.7.1 攻击流程
旁站端口扫描 → 文件下载getshell → docker未授权访问K8s集群 → 环境变量获取密码 → 接管云主机平台
2.7.2 具体实施步骤
1. 目标发现
- 网页导航站点聚合外链,源代码、注释、配置文件中可能暴露测试入口
- 扫描旁站端口发现6666端口存在目录遍历
2. 文件下载getshell
- 利用
UploadSource→UploadDestination模拟远程下载webshell - 通过静态资源目录前台可访问特性:
chunk-000a3681.70cde055.css - 使用命令:
find /|grep chunk-000a3681.70cde055.css|while read f;do sh -c 'echo xxx | base64 -d' >$(dirname $f)/test.jsp
3. 内网探测
- 使用fscan扫描内网,发现docker未授权访问
4. 云管平台利用
- 在节点中发现h3cloud云管平台
- 密码存放位置:
- 应用配置文件:
application.properties、appsettings.json、web.config、config.yaml - Docker Compose/Kubernetes配置:
docker-compose.yml、k8s deployment.yaml - 环境变量存储数据库连接字符串
- 应用配置文件:
- 成功从环境变量获取密码
5. 平台接管
- 连接数据库,定位web系统对应表
- 新增管理员用户
adminx - 成功登录h3c云管平台,可管控1000+云主机
三、防御建议
3.1 通用防护措施
- 定期进行安全审计和渗透测试
- 加强访问控制,实施最小权限原则
- 对敏感操作实施多因素认证
- 定期更新和修补系统及组件漏洞
3.2 具体防护建议
- 避免在前端代码中暴露隐藏接口和敏感信息
- 对短信验证码接口实施频率限制和有效期控制
- 使用安全的加密算法并妥善保管密钥
- 对用户输入进行严格过滤和验证
- 避免使用硬编码的凭证和配置信息
- 实施适当的日志记录和监控措施
通过以上实战案例的分析和总结,可以全面了解外网打点的各种攻击手法和防御措施,为企业安全防护提供参考依据。