
🔍 Um script Bash simples para detectar webshells JSP maliciosos, incluindo os usados em explorações do SAP NetWeaver CVE-2025-31324.
Um script leve para verificar arquivos .jsp e .jspx em busca de padrões suspeitos normalmente associados a webshells baseados em JSP, incluindo os observados em ataques que exploram o SAP NetWeaver CVE-2025-31324.
Este scanner também foi ampliado com verificações de triagem para indicadores de Oracle PeopleSoft / ShinyHunters / UNC6240 associados ao CVE-2026-35273, incluindo caminhos, nomes de arquivos, hashes e strings de C2 suspeitos do PeopleSoft.
Esta é uma ferramenta de triagem. Ela foi criada para ajudar defensores a identificar rapidamente arquivos, caminhos e strings suspeitos que merecem uma revisão de acompanhamento.
O scanner procura por arquivos JSP/JSPX e artefatos relacionados da camada web que contenham padrões como:
Runtime.getRuntime()request.getParameter()exec(, , e cmd=command=ProcessBuildernew File(), FileWriter, PrintWriter e FileOutputStreamresponse.getWriter() e out.println()cmd.exe, powershell, /bin/sh e /bin/bashEle inspeciona o conteúdo dos arquivos, não apenas os nomes de arquivos, tornando-o adequado para detectar webshells renomeados ou furtivos.
O scanner também inclui verificações de triagem para indicadores do Oracle PeopleSoft associados à campanha ShinyHunters / UNC6240 de junho de 2026, envolvendo o CVE-2026-35273.
Essas verificações incluem:
/PSEMHUB/hub/PSIGW/HttpListeningConnector/PSEMHUB/.jsp ou .jspx inesperados sob PSEMHUB.warPSEMHUB.war/envmetadata/transactionslogs, persistantstorage, persistentstorage ou scratchpad em caminhos do PSEMHUBenvmetadata/data/environmentREADME-IF-YOU-SEE-THIS-YOUVE-BEEN-HACKED.TXT*_fanout.shpsappsrv.cfg, ps_config e config.xml142.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
2ab684d93c1553fad87041b4dea97188a97e78589deee2a7bacff905564f3a35
f02a924c9ff92a8780ce812511341182c6b509d45bc59f3f7b522e37225d24fc
d83fdb9e53c5ff03c4cb0451ea1bebd79b53f29eadc1e2fa394c7af13a86ce2f
c7e9332731b06644fc73e0046a2a89eaa59b09f54250e9bd622467187351711f
68257a6f9ff196179ec03624e849927f26599eb180a7c82e14ef5bc4e93bc309
Clone o repositório ou baixe o script Bash:
chmod +x detect_webshells.sh
./detect_webshells.sh /path/to/scan
Exemplo:
./detect_webshells.sh .
Exemplo de caminho SAP:
./detect_webshells.sh /usr/sap
Exemplos de caminhos PeopleSoft:
./detect_webshells.sh /u01/app/psoft
./detect_webshells.sh /u01/app/psoft/ps_config_homes
./detect_webshells.sh /opt/oracle/psft
Clone o repositório ou baixe o script PowerShell:
.\detect_webshells.ps1 -Path .
Exemplo:
.\detect_webshells.ps1 -Path C:\inetpub\wwwroot
Exemplos de caminhos PeopleSoft:
.\detect_webshells.ps1 -Path D:\PeopleSoft
.\detect_webshells.ps1 -Path D:\Oracle\PeopleSoft
.\detect_webshells.ps1 -Path C:\Oracle\Middleware
Se o PowerShell bloquear a execução de scripts, execute:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\detect_webshells.ps1 -Path .
Isso altera a política de execução apenas para a sessão atual do PowerShell.
==== 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");
==== 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
==== 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
Um resultado positivo do scanner deve ser tratado como uma pista para investigação, não como prova definitiva de comprometimento.
Para ambientes SAP NetWeaver, revise:
Para ambientes PeopleSoft, revise:
/PSEMHUB/hub/PSIGW/HttpListeningConnectorPSEMHUB.warEste script é fornecido como está, sem garantias ou responsabilidade de qualquer tipo.
Ele é destinado a ser uma ferramenta de triagem rápida para auxiliar na identificação inicial de arquivos .jsp e .jspx suspeitos, especialmente aqueles que possam se assemelhar a webshells relacionados a vulnerabilidades como o SAP NetWeaver CVE-2025-31324.
Ele também inclui verificações de triagem para indicadores selecionados de Oracle PeopleSoft / ShinyHunters / UNC6240, mas não é um scanner forense abrangente do PeopleSoft.
Esta ferramenta não substitui uma resposta a incidentes completa, revisão forense, validação de patches do fornecedor, telemetria de EDR ou análise de logs.
Você é o único responsável pela forma como interpreta e age com base nos resultados. Este projeto é compartilhado de boa-fé e para o benefício da comunidade, mas o uso é inteiramente por sua conta e risco.
Contribuições são bem-vindas e apreciadas.
Se você quiser melhorar esta ferramenta — seja adicionando novos padrões de detecção, otimizando a lógica de varredura, melhorando a cobertura de IOCs ou reduzindo falsos positivos — sinta-se à vontade para abrir uma issue ou enviar um pull request.
Antes de enviar um pull request:
Obrigado por apoiar ferramentas de segurança de código aberto.