
🔍 Ein einfaches Bash-Skript zur Erkennung bösartiger JSP-Webshells, einschließlich solcher, die in Exploits von SAP NetWeaver CVE-2025-31324 verwendet werden.
Ein leichtgewichtiges Skript zum Scannen von .jsp- und .jspx-Dateien auf verdächtige Muster, die typischerweise mit JSP-basierten Webshells in Verbindung gebracht werden, einschließlich solcher, die bei Angriffen beobachtet wurden, die SAP NetWeaver CVE-2025-31324 ausnutzen.
Dieser Scanner wurde außerdem um Triage-Prüfungen für Oracle PeopleSoft / ShinyHunters / UNC6240-Indikatoren erweitert, die mit CVE-2026-35273 in Verbindung stehen, einschließlich verdächtiger PeopleSoft-Pfade, Dateinamen, Hashes und C2-Strings.
Dies ist ein Triage-Tool. Es soll Verteidigern helfen, schnell verdächtige Dateien, Pfade und Zeichenfolgen zu identifizieren, die eine weitere Überprüfung erfordern.
Der Scanner sucht nach JSP/JSPX-Dateien und zugehörigen Web-Tier-Artefakten, die folgende Muster enthalten:
Runtime.getRuntime()request.getParameter()exec(, cmd=, command= und ProcessBuildernew File(), FileWriter, PrintWriter und FileOutputStreamresponse.getWriter() und out.println()cmd.exe, powershell, /bin/sh und /bin/bashEs prüft den Dateiinhalt, nicht nur Dateinamen, und eignet sich daher zur Erkennung umbenannter oder versteckter Webshells.
Der Scanner enthält auch Triage-Prüfungen für Oracle PeopleSoft-Indikatoren, die mit der ShinyHunters/UNC6240-Kampagne vom Juni 2026 im Zusammenhang mit CVE-2026-35273 verbunden sind.
Diese Prüfungen umfassen:
/PSEMHUB/hub/PSIGW/HttpListeningConnector/PSEMHUB/.jsp- oder .jspx-Dateien unter PSEMHUB.warPSEMHUB.war/envmetadata/transactionslogs-, persistantstorage-, persistentstorage- oder scratchpad-Verzeichnisse unter PSEMHUB-Pfadenenvmetadata/data/environment142.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
Klonen Sie das Repository oder laden Sie das Bash-Skript herunter:
chmod +x detect_webshells.sh
./detect_webshells.sh /path/to/scan
Beispiel:
./detect_webshells.sh .
Beispiel SAP-Pfad:
./detect_webshells.sh /usr/sap
Beispiel PeopleSoft-Pfade:
./detect_webshells.sh /u01/app/psoft
./detect_webshells.sh /u01/app/psoft/ps_config_homes
./detect_webshells.sh /opt/oracle/psft
Klonen Sie das Repository oder laden Sie das PowerShell-Skript herunter:
.\detect_webshells.ps1 -Path .
Beispiel:
.\detect_webshells.ps1 -Path C:\inetpub\wwwroot
Beispiel PeopleSoft-Pfade:
.\detect_webshells.ps1 -Path D:\PeopleSoft
.\detect_webshells.ps1 -Path D:\Oracle\PeopleSoft
.\detect_webshells.ps1 -Path C:\Oracle\Middleware
Wenn PowerShell die Skriptausführung blockiert, führen Sie aus:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\detect_webshells.ps1 -Path .
Dies ändert die Ausführungsrichtlinie nur für die aktuelle PowerShell-Sitzung.
==== 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
Ein Treffer des Scanners sollte als Hinweis für eine Untersuchung betrachtet werden, nicht als endgültiger Nachweis einer Kompromittierung.
Für SAP NetWeaver-Umgebungen prüfen Sie:
Für PeopleSoft-Umgebungen prüfen Sie:
/PSEMHUB/hub/PSIGW/HttpListeningConnectorPSEMHUB.warDieses Skript wird wie besehen ohne Gewährleistungen, Garantien oder Haftung jeglicher Art bereitgestellt.
Es ist als schnelles Triage-Tool gedacht, um bei der ersten Identifizierung verdächtiger .jsp- und .jspx-Dateien zu helfen, insbesondere solcher, die Webshells im Zusammenhang mit Schwachstellen wie SAP NetWeaver CVE-2025-31324 ähneln könnten.
Es enthält auch Triage-Prüfungen für ausgewählte Oracle PeopleSoft / ShinyHunters / UNC6240-Indikatoren, ist aber kein umfassender PeopleSoft-Forensik-Scanner.
Dieses Tool ist kein Ersatz für eine vollständige Incident Response, forensische Untersuchung, Hersteller-Patch-Validierung, EDR-Telemetrie oder Protokollanalyse.
Sie sind allein dafür verantwortlich, wie Sie die Ergebnisse interpretieren und darauf reagieren. Dieses Projekt wird in gutem Glauben und zum Nutzen der Gemeinschaft geteilt, die Nutzung erfolgt jedoch vollständig auf eigenes Risiko.
Beiträge sind willkommen und werden geschätzt.
Wenn Sie dieses Tool verbessern möchten – sei es durch Hinzufügen neuer Erkennungsmuster, Optimierung der Scanlogik, Verbesserung der IOC-Abdeckung oder Reduzierung von Falschpositiven – können Sie gerne ein Issue eröffnen oder einen Pull-Request einreichen.
Bevor Sie einen Pull-Request einreichen:
Vielen Dank, dass Sie Open-Source-Sicherheitswerkzeuge unterstützen.
README-IF-YOU-SEE-THIS-YOUVE-BEEN-HACKED.TXT*_fanout.sh übereinstimmenpsappsrv.cfg, ps_config und config.xml