respondiq/jsp-webshell-scanner
GitHub: respondiq/jsp-webshell-scanner
一款用于检测 JSP 恶意 Webshell 及特定 SAP、PeopleSoft 攻击活动 IOC 指标的轻量级安全分类扫描脚本。
Stars: 1 | Forks: 1
# SAP CVE-2025-31324 与 PeopleSoft IOC 分类的 JSP Webshell 扫描器
这是一个轻量级脚本,用于扫描 `.jsp` 和 `.jspx` 文件中通常与基于 JSP 的 webshell 相关的可疑模式,包括在利用 **SAP NetWeaver CVE-2025-31324** 的攻击中观察到的那些模式。
此扫描器还扩展了针对与 **CVE-2026-35273** 相关的 **Oracle PeopleSoft / ShinyHunters / UNC6240** 指标的分类检查,包括可疑的 PeopleSoft 路径、文件名、哈希值和 C2 字符串。
## 🚨 它能检测什么
该扫描器会搜索包含以下模式的 JSP/JSPX 文件及相关 Web 层构件:
- `Runtime.getRuntime()`
- `request.getParameter()`
- 命令执行指标,例如 `exec(`、`cmd=`、`command=` 和 `ProcessBuilder`
- 文件操作指标,例如 `new File()`、`FileWriter`、`PrintWriter` 和 `FileOutputStream`
- Base64 编码/解码
- Java 反射和动态类加载
- 常见 Webshell 标记,例如 `response.getWriter()` 和 `out.println()`
- 可疑 shell 引用,例如 `cmd.exe`、`powershell`、`/bin/sh` 和 `/bin/bash`
## 🧭 PeopleSoft / ShinyHunters / UNC6240 IOC 检查
该扫描器还包含针对与 2026 年 6 月涉及 **CVE-2026-35273** 的 ShinyHunters / UNC6240 活动相关的 Oracle PeopleSoft 指标的分类检查。
这些检查包括:
- 对 `/PSEMHUB/hub` 的可疑请求
- 对 `/PSIGW/HttpListeningConnector` 的可疑请求
- 对 `/PSEMHUB/` 的引用
- `PSEMHUB.war` 下意外的 `.jsp` 或 `.jspx` 文件
- `PSEMHUB.war/envmetadata/transactions` 下的文件或目录
- PSEMHUB 路径下可疑的 `logs`、`persistantstorage`、`persistentstorage` 或 `scratchpad` 目录
- `envmetadata/data/environment` 下近期的 XML 文件
- MeshCentral 代理文件名
- 已知的暂存/C2 指标
- 已知的 SHA256 哈希值
- 勒索标记文件 `README-IF-YOU-SEE-THIS-YOUVE-BEEN-HACKED.TXT`
- 匹配 `*_fanout.sh` 的可能横向扩散(fanout)脚本
- PeopleSoft 侦察字符串,例如 `psappsrv.cfg`、`ps_config` 和 `config.xml`
## 🧩 包含的网络 / C2 指标
```
142.11.200.186
142.11.200.187
142.11.200.188
142.11.200.189
142.11.200.190
108.174.202.99
176.120.22.24
azurenetfiles.net
wss://azurenetfiles.net:443/agent.ashx
```
## 📁 包含的文件名指标
```
README-IF-YOU-SEE-THIS-YOUVE-BEEN-HACKED.TXT
*_fanout.sh
meshagent
meshagent.exe
meshagent32-azure-ops.exe
meshagent64-azure-ops.exe
meshagent64-v2.exe
meshctrl.js
.bash_history
```
## 🔐 包含的 SHA256 指标
```
2ab684d93c1553fad87041b4dea97188a97e78589deee2a7bacff905564f3a35
f02a924c9ff92a8780ce812511341182c6b509d45bc59f3f7b522e37225d24fc
d83fdb9e53c5ff03c4cb0451ea1bebd79b53f29eadc1e2fa394c7af13a86ce2f
c7e9332731b06644fc73e0046a2a89eaa59b09f54250e9bd622467187351711f
68257a6f9ff196179ec03624e849927f26599eb180a7c82e14ef5bc4e93bc309
```
## 🔧 如何使用
### Linux / macOS / Git Bash
克隆仓库或下载 Bash 脚本:
```
chmod +x detect_webshells.sh
./detect_webshells.sh /path/to/scan
```
示例:
```
./detect_webshells.sh .
```
SAP 路径示例:
```
./detect_webshells.sh /usr/sap
```
PeopleSoft 路径示例:
```
./detect_webshells.sh /u01/app/psoft
./detect_webshells.sh /u01/app/psoft/ps_config_homes
./detect_webshells.sh /opt/oracle/psft
```
### Windows PowerShell
克隆仓库或下载 PowerShell 脚本:
```
.\detect_webshells.ps1 -Path .
```
示例:
```
.\detect_webshells.ps1 -Path C:\inetpub\wwwroot
```
PeopleSoft 路径示例:
```
.\detect_webshells.ps1 -Path D:\PeopleSoft
.\detect_webshells.ps1 -Path D:\Oracle\PeopleSoft
.\detect_webshells.ps1 -Path C:\Oracle\Middleware
```
如果 PowerShell 阻止了脚本执行,请运行:
```
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\detect_webshells.ps1 -Path .
```
这仅会更改当前 PowerShell 会话的执行策略。
## 📌 示例输出
### Linux / Bash
```
==== 1. Suspicious JSP code patterns ====
[HIT] Suspicious JSP pattern: Runtime\.getRuntime\(
/usr/sap/OP1/J31/work/suspicious.jsp:13: out.println(Runtime.getRuntime().exec(cmd));
[HIT] Suspicious JSP pattern: request\.getParameter\(
/usr/sap/OP1/J31/work/shell.jsp:9: String cmd = request.getParameter("cmd");
```
### PeopleSoft IOC 示例
```
==== 2. PeopleSoft / ShinyHunters HTTP path indicators ====
[HIT] HTTP/path indicator: POST /PSEMHUB/hub
/u01/app/psoft/logs/access.log:1042: 142.11.200.186 - - "POST /PSEMHUB/hub HTTP/1.1" 200
==== 4. Filename indicators ====
[HIT] Suspicious filename: /u01/app/psoft/README-IF-YOU-SEE-THIS-YOUVE-BEEN-HACKED.TXT
```
### Windows / PowerShell
```
==== 1. Suspicious JSP code patterns ====
[HIT] Suspicious JSP pattern in C:\PeopleSoft\webserv\shell.jsp:9: String cmd = request.getParameter("cmd");
==== 5. Network/C2 indicators in files and logs ====
[HIT] Network/C2 IOC 'azurenetfiles.net' in C:\PeopleSoft\logs\access.log:522: connection to azurenetfiles.net
```
## 🔎 建议的后续步骤
扫描器的命中应被视为调查的线索,而不是妥协的确定证据。
对于 SAP NetWeaver 环境,请检查:
- 面向互联网的 SAP NetWeaver Java 组件
- 上传目录
- 最近创建或修改的 JSP/JSPX 文件
- Web 服务器日志
- SAP 应用程序日志
- EDR 遥测数据
- 由 Java 衍生出的异常子进程
- 可疑的出站连接
对于 PeopleSoft 环境,请检查:
- PIA WebLogic 访问日志
- 反向代理日志
- WAF 日志
- 对 `/PSEMHUB/hub` 的请求
- 对 `/PSIGW/HttpListeningConnector` 的请求
- `PSEMHUB.war` 下意外的 JSP/JSPX 文件
- 环境元数据路径下新增或修改的 XML 文件
- 来自 PeopleSoft 服务器的出站 SMB/445 活动
- 来自 PeopleSoft 服务器的意外 SSH 活动
- MeshCentral 代理或服务
- 归档/压缩活动
- 大型数据库导出
- 意外的 PeopleSoft 管理更改
## ⚠️ 免责声明
本脚本“按原样”提供,不提供任何形式的保证、担保或责任。
它旨在作为一个**快速分类工具**,协助初步识别可疑的 `.jsp` 和 `.jspx` 文件,特别是那些可能类似于与 **SAP NetWeaver CVE-2025-31324** 等漏洞相关的 webshell。
它还包括针对精选的 **Oracle PeopleSoft / ShinyHunters / UNC6240** 指标的分类检查,但它**不是**一个全面的 PeopleSoft 取证扫描器。
此工具**不能**替代完整的事件响应、取证审查、供应商补丁验证、EDR 遥测或日志分析。
- **可能会出现误报**,特别是在使用类似编程结构的合法应用程序中。
- **可能会出现漏报**,因为攻击者可能会使用混淆、替代工具或修改后的基础设施。
- 基于指标的检测本质上具有局限性,因为攻击者的基础设施和文件名可能会发生变化。
- 将此工具作为调查过程的**第一步**,并根据需要进行完整的手动审查、日志分析和端点取证。
**您需自行负责**如何解释和处理这些发现。本项目出于善意和社区利益分享,但**使用风险完全由您自行承担**。
### 您可以做些什么来贡献
- 🧠 根据观察到的威胁添加新的可疑代码模式
- 🛠️ 提高搜索性能或覆盖率
- 🧪 分享有助于验证检测逻辑的边缘情况或测试样本
- 🐛 报告误报或 Bug
- 📚 改进文档或使用示例
- 🔎 添加新的特定活动 IOC 模块
- 🧩 改善对 SAP、PeopleSoft、WebLogic、Tomcat 及其他 Java Web 环境的支持
在提交 Pull Request 之前:
- 确保您的代码清晰且有文档注释
- 包含对更改的描述以及为什么它是有帮助的
- 明确区分已确认的指标与实验性或社区报告的指标
感谢您对开源安全工具的支持。
标签:AI合规, Libemu, Webshell检测, 威胁情报, 库, 应急响应, 应用安全, 开发者工具