
🔍 SAP NetWeaver CVE-2025-31324 악용에 사용되는 것을 포함하여 악성 JSP 웹셸을 탐지하는 간단한 Bash 스크립트입니다.
.jsp 및 .jspx 파일에서 JSP 기반 웹셸과 일반적으로 연관된 의심스러운 패턴을 스캔하는 경량 스크립트입니다. 여기에는 SAP NetWeaver CVE-2025-31324를 악용한 공격에서 관찰된 패턴도 포함됩니다.
이 스캐너는 또한 CVE-2026-35273과 연관된 Oracle PeopleSoft / ShinyHunters / UNC6240 지표에 대한 분류(triage) 검사로 확장되었으며, 의심스러운 PeopleSoft 경로, 파일명, 해시 및 C2 문자열을 포함합니다.
이 도구는 분류(triage) 도구입니다. 방어자가 후속 검토가 필요한 의심스러운 파일, 경로 및 문자열을 신속하게 식별하도록 돕기 위한 것입니다.
이 스캐너는 다음과 같은 패턴을 포함하는 JSP/JSPX 파일 및 관련 웹 계층 산출물을 탐색합니다:
Runtime.getRuntime()request.getParameter()exec(, cmd=, command=, ProcessBuilder)new File(), FileWriter, PrintWriter, FileOutputStream)response.getWriter(), out.println())cmd.exe, powershell, /bin/sh, /bin/bash)파일 이름뿐만 아니라 파일 내용을 검사하므로 이름이 바뀌거나 은닉된 웹셸을 탐지하는 데 적합합니다.
이 스캐너에는 CVE-2026-35273과 관련된 2026년 6월 ShinyHunters / UNC6240 캠페인과 연관된 Oracle PeopleSoft 지표에 대한 분류 검사도 포함되어 있습니다.
이 검사에는 다음이 포함됩니다:
/PSEMHUB/hub에 대한 의심스러운 요청/PSIGW/HttpListeningConnector에 대한 의심스러운 요청/PSEMHUB/ 참조PSEMHUB.war 아래의 예상치 못한 .jsp 또는 .jspx 파일PSEMHUB.war/envmetadata/transactions 아래의 파일 또는 디렉터리logs, persistantstorage, persistentstorage 또는 scratchpad 디렉터리envmetadata/data/environment 아래의 최근 XML 파일README-IF-YOU-SEE-THIS-YOUVE-BEEN-HACKED.TXT*_fanout.sh 패턴과 일치하는 가능한 팬아웃 스크립트psappsrv.cfg, ps_config, config.xml과 같은 PeopleSoft 정찰 문자열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
2ab684d93c1553fad87041b4dea97188a97e78589deee2a7bacff905564f3a35
f02a924c9ff92a8780ce812511341182c6b509d45bc59f3f7b522e37225d24fc
d83fdb9e53c5ff03c4cb0451ea1bebd79b53f29eadc1e2fa394c7af13a86ce2f
c7e9332731b06644fc73e0046a2a89eaa59b09f54250e9bd622467187351711f
68257a6f9ff196179ec03624e849927f26599eb180a7c82e14ef5bc4e93bc309
리포지토리를 클론하거나 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
리포지토리를 클론하거나 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 세션에서만 실행 정책을 변경합니다.
==== 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
스캐너 탐지 결과는 확정적인 침해 증거가 아니라 조사 단서로 취급해야 합니다.
SAP NetWeaver 환경에서는 다음을 검토하세요:
PeopleSoft 환경에서는 다음을 검토하세요:
/PSEMHUB/hub에 대한 요청/PSIGW/HttpListeningConnector에 대한 요청PSEMHUB.war 아래의 예상치 못한 JSP/JSPX 파일이 스크립트는 어떠한 종류의 보증, 보장 또는 책임 없이 있는 그대로(as-is) 제공됩니다.
이 도구는 SAP NetWeaver CVE-2025-31324와 같은 취약점과 관련된 웹셸과 유사할 수 있는 의심스러운 .jsp 및 .jspx 파일의 초기 식별을 지원하기 위한 신속 분류(quick triage) 도구입니다.
또한 선별된 Oracle PeopleSoft / ShinyHunters / UNC6240 지표에 대한 분류 검사를 포함하지만, 포괄적인 PeopleSoft 포렌식 스캐너는 아닙니다.
이 도구는 완전한 침해 대응, 포렌식 검토, 공급업체 패치 검증, EDR 텔레메트리 또는 로그 분석을 대체하지 않습니다.
발견 사항을 해석하고 조치하는 방법에 대한 전적인 책임은 사용자에게 있습니다. 이 프로젝트는 선의와 커뮤니티 이익을 위해 공유되지만, 사용에 따른 모든 위험은 전적으로 사용자 본인에게 있습니다.
기여는 언제나 환영하며 감사히 여깁니다.
새로운 탐지 패턴 추가, 스캔 로직 최적화, IOC 적용 범위 개선 또는 오탐 감소 등 이 도구를 개선하고 싶다면 주저하지 말고 이슈를 열거나 풀 리퀘스트를 제출하세요.
풀 리퀘스트를 제출하기 전에:
오픈소스 보안 도구를 지원해 주셔서 감사합니다.