记一次应急响应
字数 1497 2025-08-09 09:46:33

应急响应实战教学:攻击流量分析与源码泄露处置

1. 事件背景与初始响应

1.1 事件发现

  • 内网生产环境服务器出现异常外连行为
  • 发生在攻防演练第五天
  • 初步响应措施:
    • 立即关停被攻击服务器的应用服务
    • 收集分析演习总防提供的流量包和异常数据包

1.2 流量分析关键发现

  • 攻击者尝试通过DNSLOG探测网络连通性
  • 发现可疑POST请求特征:
    • 包含大量a=参数(可能是填充脏数据绕过WAF)
    • 成功写入文件的响应迹象

2. 服务器现场取证

2.1 文件系统检查

  • 发现可疑JSP文件:
    • 原始攻击数据包中的文件已被删除
    • 存在其他编码加密的Webshell文件
    • 文件内容经沙箱检测显示为安全(存在绕过)

2.2 Webshell分析

  • 确认是经过魔改的冰蝎马
  • 特点:
    • 高度混淆和加密
    • 具备持久化能力
    • 可绕过常规安全检测

2.3 共享文件夹风险

  • 多台服务器共享同一文件夹
  • 攻击者控制一台即等于控制多台
  • 发现并清除10+个Webshell文件

3. 攻击路径还原

3.1 源码泄露调查

  • 在Github/Gitlab发现:
    • 建设厂商泄露的前端代码
    • 包含敏感地址信息
    • 通过Gitlab未授权RCE漏洞可能获取完整代码

3.2 漏洞定位

  • 发现关键漏洞点:saveLog方法
    • 未对写入内容进行过滤
    • 允许任意文件写入
    • 结合目录穿越实现任意位置写入

3.3 完整攻击链

  1. 通过业务域名信息收集
  2. 获取泄露的源码
  3. 审计发现可未授权调用的接口
  4. 利用saveLog方法写入恶意代码
  5. 通过目录穿越将Webshell写入目标路径

4. 应急处理措施

4.1 短期处置

  • 删除所有发现的Webshell
  • 修改业务系统代码:
    • 删除危险接口
    • 增加输入过滤
  • 服务重启(清除潜在内存马)

4.2 后门查杀

  • 使用盒马工具进行一键查杀
  • 全目录JSP文件内容检查(搜索特征字符串)
  • 发现攻击者使用技术:
    • 修改文件名和时间戳隐藏Webshell
    • 利用共享文件夹特性

4.3 Nginx流量分析

  • 发现被忽略的攻击路径:
    • 共享文件夹意外可解析JSP
    • 外网可直接访问共享文件夹中的JSP文件

5. 根本原因分析

5.1 主要漏洞

  1. 源代码泄露:
    • 在Github/Gitee等平台公开
    • 包含敏感接口信息
  2. 未授权接口:
    • saveLog方法无权限校验
    • 无输入过滤
  3. 配置不当:
    • 共享文件夹可写且可执行脚本
    • 目录穿越未防护

5.2 攻击者技术特点

  • 使用脏数据填充绕过WAF
  • 多阶段攻击:
    • 信息收集
    • 漏洞利用
    • 持久化维持
  • 隐蔽技术:
    • 文件隐藏
    • 编码混淆

6. 防护建议

6.1 代码管理

  • 禁止将源代码托管到公开平台
  • 建立内部代码管理制度
  • 定期检查代码泄露情况

6.2 权限控制

  • 共享文件夹:
    • 默认设置为只读
    • 严格限制可执行文件类型
  • 应用权限:
    • 最小权限原则
    • 关键操作需授权

6.3 安全配置

  • Web服务器:
    • 禁止解析非必要目录的脚本
    • 限制目录穿越
  • 接口安全:
    • 必须的权限校验
    • 输入输出过滤

6.4 监控与响应

  • 文件完整性监控
  • 异常外连行为检测
  • 定期应急演练
  • 建立完善的应急响应流程

7. 总结与经验

7.1 关键教训

  1. 源码泄露是重大风险源
  2. 共享文件夹配置需谨慎
  3. 攻击者会使用多重隐蔽技术
  4. 应急响应需全面彻底

7.2 防御体系建议

  • 建立纵深防御:
    • 边界防护
    • 主机防护
    • 应用防护
    • 数据防护
  • 定期红蓝对抗演练
  • 建立安全开发生命周期(SDLC)

7.3 后续改进方向

  1. 代码审计常态化
  2. 加强开发人员安全意识
  3. 完善日志审计系统
  4. 建立更严格的发布流程

本案例展示了从攻击发现到完整处置的全过程,强调了源码保护、权限控制和深度防御的重要性,为类似事件的应急响应提供了可参考的实战模板。

应急响应实战教学:攻击流量分析与源码泄露处置 1. 事件背景与初始响应 1.1 事件发现 内网生产环境服务器出现异常外连行为 发生在攻防演练第五天 初步响应措施: 立即关停被攻击服务器的应用服务 收集分析演习总防提供的流量包和异常数据包 1.2 流量分析关键发现 攻击者尝试通过DNSLOG探测网络连通性 发现可疑POST请求特征: 包含大量 a= 参数(可能是填充脏数据绕过WAF) 成功写入文件的响应迹象 2. 服务器现场取证 2.1 文件系统检查 发现可疑JSP文件: 原始攻击数据包中的文件已被删除 存在其他编码加密的Webshell文件 文件内容经沙箱检测显示为安全(存在绕过) 2.2 Webshell分析 确认是经过魔改的冰蝎马 特点: 高度混淆和加密 具备持久化能力 可绕过常规安全检测 2.3 共享文件夹风险 多台服务器共享同一文件夹 攻击者控制一台即等于控制多台 发现并清除10+个Webshell文件 3. 攻击路径还原 3.1 源码泄露调查 在Github/Gitlab发现: 建设厂商泄露的前端代码 包含敏感地址信息 通过Gitlab未授权RCE漏洞可能获取完整代码 3.2 漏洞定位 发现关键漏洞点: saveLog 方法 未对写入内容进行过滤 允许任意文件写入 结合目录穿越实现任意位置写入 3.3 完整攻击链 通过业务域名信息收集 获取泄露的源码 审计发现可未授权调用的接口 利用 saveLog 方法写入恶意代码 通过目录穿越将Webshell写入目标路径 4. 应急处理措施 4.1 短期处置 删除所有发现的Webshell 修改业务系统代码: 删除危险接口 增加输入过滤 服务重启(清除潜在内存马) 4.2 后门查杀 使用盒马工具进行一键查杀 全目录JSP文件内容检查(搜索特征字符串) 发现攻击者使用技术: 修改文件名和时间戳隐藏Webshell 利用共享文件夹特性 4.3 Nginx流量分析 发现被忽略的攻击路径: 共享文件夹意外可解析JSP 外网可直接访问共享文件夹中的JSP文件 5. 根本原因分析 5.1 主要漏洞 源代码泄露: 在Github/Gitee等平台公开 包含敏感接口信息 未授权接口: saveLog 方法无权限校验 无输入过滤 配置不当: 共享文件夹可写且可执行脚本 目录穿越未防护 5.2 攻击者技术特点 使用脏数据填充绕过WAF 多阶段攻击: 信息收集 漏洞利用 持久化维持 隐蔽技术: 文件隐藏 编码混淆 6. 防护建议 6.1 代码管理 禁止将源代码托管到公开平台 建立内部代码管理制度 定期检查代码泄露情况 6.2 权限控制 共享文件夹: 默认设置为只读 严格限制可执行文件类型 应用权限: 最小权限原则 关键操作需授权 6.3 安全配置 Web服务器: 禁止解析非必要目录的脚本 限制目录穿越 接口安全: 必须的权限校验 输入输出过滤 6.4 监控与响应 文件完整性监控 异常外连行为检测 定期应急演练 建立完善的应急响应流程 7. 总结与经验 7.1 关键教训 源码泄露是重大风险源 共享文件夹配置需谨慎 攻击者会使用多重隐蔽技术 应急响应需全面彻底 7.2 防御体系建议 建立纵深防御: 边界防护 主机防护 应用防护 数据防护 定期红蓝对抗演练 建立安全开发生命周期(SDLC) 7.3 后续改进方向 代码审计常态化 加强开发人员安全意识 完善日志审计系统 建立更严格的发布流程 本案例展示了从攻击发现到完整处置的全过程,强调了源码保护、权限控制和深度防御的重要性,为类似事件的应急响应提供了可参考的实战模板。