
🔍 Un semplice script Bash per rilevare webshell JSP dannose, incluse quelle utilizzate negli exploit di SAP NetWeaver CVE-2025-31324.
Uno script leggero per analizzare file .jsp e .jspx alla ricerca di pattern sospetti tipicamente associati a webshell basate su JSP, inclusi quelli osservati negli attacchi che sfruttano SAP NetWeaver CVE-2025-31324.
Questo scanner è stato inoltre ampliato con controlli di triage per gli indicatori Oracle PeopleSoft / ShinyHunters / UNC6240 associati a CVE-2026-35273, inclusi percorsi PeopleSoft sospetti, nomi file, hash e stringhe C2.
Questo è uno strumento di triage. Ha lo scopo di aiutare i difensori a identificare rapidamente file, percorsi e stringhe sospetti che richiedono un approfondimento.
Lo scanner ricerca file JSP/JSPX e artefatti correlati del livello web che contengono pattern come:
Runtime.getRuntime()request.getParameter()exec(, cmd=, command= e ProcessBuildernew File(), FileWriter, PrintWriter e FileOutputStreamresponse.getWriter() e out.println()cmd.exe, powershell, /bin/sh e /bin/bashEsamina il contenuto dei file, non solo i nomi, rendendolo adatto a rilevare webshell rinominati o stealth.
Lo scanner include anche controlli di triage per gli indicatori Oracle PeopleSoft associati alla campagna ShinyHunters / UNC6240 del giugno 2026 relativa a CVE-2026-35273.
Questi controlli includono:
/PSEMHUB/hub/PSIGW/HttpListeningConnector/PSEMHUB/.jsp o .jspx inattesi sotto PSEMHUB.warPSEMHUB.war/envmetadata/transactionslogs, persistantstorage, persistentstorage o scratchpad sotto i percorsi PSEMHUBenvmetadata/data/environmentREADME-IF-YOU-SEE-THIS-YOUVE-BEEN-HACKED.TXT142.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
Clona il repository o scarica lo script Bash:
chmod +x detect_webshells.sh
./detect_webshells.sh /path/to/scan
Esempio:
./detect_webshells.sh .
Esempio di percorso SAP:
./detect_webshells.sh /usr/sap
Esempi di percorsi PeopleSoft:
./detect_webshells.sh /u01/app/psoft
./detect_webshells.sh /u01/app/psoft/ps_config_homes
./detect_webshells.sh /opt/oracle/psft
Clona il repository o scarica lo script PowerShell:
.\detect_webshells.ps1 -Path .
Esempio:
.\detect_webshells.ps1 -Path C:\inetpub\wwwroot
Esempi di percorsi PeopleSoft:
.\detect_webshells.ps1 -Path D:\PeopleSoft
.\detect_webshells.ps1 -Path D:\Oracle\PeopleSoft
.\detect_webshells.ps1 -Path C:\Oracle\Middleware
Se PowerShell blocca l'esecuzione dello script, esegui:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\detect_webshells.ps1 -Path .
Questa modifica si applica solo alla sessione PowerShell corrente.
==== 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
Un riscontro dello scanner deve essere trattato come un indizio per l'indagine, non come una prova definitiva di compromissione.
Per gli ambienti SAP NetWeaver, verificare:
Per gli ambienti PeopleSoft, verificare:
/PSEMHUB/hub/PSIGW/HttpListeningConnectorPSEMHUB.warQuesto script è fornito così com'è, senza garanzie, assicurazioni o responsabilità di alcun tipo.
È pensato come strumento di triage rapido per assistere nell'identificazione iniziale di file .jsp e .jspx sospetti, in particolare quelli che potrebbero assomigliare a webshell correlati a vulnerabilità come SAP NetWeaver CVE-2025-31324.
Include anche controlli di triage per indicatori selezionati Oracle PeopleSoft / ShinyHunters / UNC6240, ma non è uno scanner forense PeopleSoft completo.
Questo strumento non sostituisce una completa risposta agli incidenti, analisi forense, validazione delle patch del vendor, telemetria EDR o analisi dei log.
Sei l'unico responsabile di come interpreti e agisci sui risultati. Questo progetto è condiviso in buona fede e a beneficio della comunità, ma l'uso è interamente a tuo rischio.
I contributi sono benvenuti e apprezzati.
Se desideri migliorare questo strumento — aggiungendo nuovi pattern di rilevamento, ottimizzando la logica di scansione, migliorando la copertura IOC o riducendo i falsi positivi — sentiti libero di aprire una issue o inviare una pull request.
Prima di inviare una pull request:
Grazie per il supporto agli strumenti di sicurezza open-source.
*_fanout.shpsappsrv.cfg, ps_config e config.xml