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检测, 威胁情报, 库, 应急响应, 应用安全, 开发者工具