@abtnode/router-provider 1.16.38-beta-20250116-083413-dbd33222 → 1.16.38-beta-20250118-033334-2da05ae8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/nginx/includes/security/crs4/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example +200 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-901-INITIALIZATION.conf +470 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-905-COMMON-EXCEPTIONS.conf +57 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-911-METHOD-ENFORCEMENT.conf +76 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-913-SCANNER-DETECTION.conf +86 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf +1915 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-921-PROTOCOL-ATTACK.conf +558 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-922-MULTIPART-ATTACK.conf +120 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf +203 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-931-APPLICATION-ATTACK-RFI.conf +189 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf +1875 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-933-APPLICATION-ATTACK-PHP.conf +774 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-934-APPLICATION-ATTACK-GENERIC.conf +366 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf +1071 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf +1978 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION.conf +132 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-944-APPLICATION-ATTACK-JAVA.conf +463 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-949-BLOCKING-EVALUATION.conf +270 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-950-DATA-LEAKAGES.conf +156 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-951-DATA-LEAKAGES-SQL.conf +417 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-952-DATA-LEAKAGES-JAVA.conf +108 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-953-DATA-LEAKAGES-PHP.conf +158 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-954-DATA-LEAKAGES-IIS.conf +152 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-955-WEB-SHELLS.conf +558 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-959-BLOCKING-EVALUATION.conf +280 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-980-CORRELATION.conf +138 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example +76 -0
- package/lib/nginx/includes/security/crs4/rules/iis-errors.data +59 -0
- package/lib/nginx/includes/security/crs4/rules/java-classes.data +64 -0
- package/lib/nginx/includes/security/crs4/rules/java-code-leakages.data +17 -0
- package/lib/nginx/includes/security/crs4/rules/java-errors.data +10 -0
- package/lib/nginx/includes/security/crs4/rules/lfi-os-files.data +722 -0
- package/lib/nginx/includes/security/crs4/rules/php-config-directives.data +571 -0
- package/lib/nginx/includes/security/crs4/rules/php-errors-pl2.data +7 -0
- package/lib/nginx/includes/security/crs4/rules/php-errors.data +2147 -0
- package/lib/nginx/includes/security/crs4/rules/php-function-names-933150.data +245 -0
- package/lib/nginx/includes/security/crs4/rules/php-function-names-933151.data +2201 -0
- package/lib/nginx/includes/security/crs4/rules/php-variables.data +30 -0
- package/lib/nginx/includes/security/crs4/rules/restricted-files.data +284 -0
- package/lib/nginx/includes/security/crs4/rules/restricted-upload.data +177 -0
- package/lib/nginx/includes/security/crs4/rules/scanners-user-agents.data +119 -0
- package/lib/nginx/includes/security/crs4/rules/sql-errors.data +172 -0
- package/lib/nginx/includes/security/crs4/rules/ssrf.data +177 -0
- package/lib/nginx/includes/security/crs4/rules/unix-shell.data +670 -0
- package/lib/nginx/includes/security/crs4/rules/web-shells-php.data +167 -0
- package/lib/nginx/includes/security/crs4/rules/windows-powershell-commands.data +425 -0
- package/lib/nginx/includes/security/unicode.mapping +96 -0
- package/lib/nginx/index.js +50 -3
- package/lib/nginx/templates/security/crs4/crs-setup.conf.js +857 -0
- package/lib/nginx/templates/security/modsecurity.conf.js +244 -0
- package/package.json +7 -6
|
@@ -0,0 +1,558 @@
|
|
|
1
|
+
# ------------------------------------------------------------------------
|
|
2
|
+
# OWASP CRS ver.4.9.0
|
|
3
|
+
# Copyright (c) 2006-2020 Trustwave and contributors. (not) All rights reserved.
|
|
4
|
+
# Copyright (c) 2021-2024 CRS project. All rights reserved.
|
|
5
|
+
#
|
|
6
|
+
# The OWASP CRS is distributed under
|
|
7
|
+
# Apache Software License (ASL) version 2
|
|
8
|
+
# Please see the enclosed LICENSE file for full details.
|
|
9
|
+
# ------------------------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
#
|
|
12
|
+
# -= Paranoia Level 0 (empty) =- (apply unconditionally)
|
|
13
|
+
#
|
|
14
|
+
|
|
15
|
+
# Skip all rules if RESPONSE_BODY is compressed.
|
|
16
|
+
SecRule RESPONSE_HEADERS:Content-Encoding "@pm gzip compress deflate br zstd" \
|
|
17
|
+
"id:955010,\
|
|
18
|
+
phase:4,\
|
|
19
|
+
pass,\
|
|
20
|
+
nolog,\
|
|
21
|
+
tag:'OWASP_CRS',\
|
|
22
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
23
|
+
skipAfter:END-RESPONSE-955-WEB-SHELLS"
|
|
24
|
+
|
|
25
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 1" "id:955011,phase:3,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-955-WEB-SHELLS"
|
|
26
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 1" "id:955012,phase:4,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-955-WEB-SHELLS"
|
|
27
|
+
#
|
|
28
|
+
# -= Paranoia Level 1 (default) =- (apply only when tx.detection_paranoia_level is sufficiently high: 1 or higher)
|
|
29
|
+
#
|
|
30
|
+
|
|
31
|
+
# For performance reasons, most of the shells are matched using this rule.
|
|
32
|
+
# This rule is intended for PHP web shells.
|
|
33
|
+
SecRule RESPONSE_BODY "@pmFromFile web-shells-php.data" \
|
|
34
|
+
"id:955100,\
|
|
35
|
+
phase:4,\
|
|
36
|
+
block,\
|
|
37
|
+
capture,\
|
|
38
|
+
t:none,\
|
|
39
|
+
msg:'Web shell detected',\
|
|
40
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
41
|
+
tag:'language-php',\
|
|
42
|
+
tag:'platform-multi',\
|
|
43
|
+
tag:'attack-rce',\
|
|
44
|
+
tag:'paranoia-level/1',\
|
|
45
|
+
tag:'OWASP_CRS',\
|
|
46
|
+
tag:'capec/1000/225/122/17/650',\
|
|
47
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
48
|
+
severity:'CRITICAL',\
|
|
49
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
50
|
+
|
|
51
|
+
# r57 web shell
|
|
52
|
+
SecRule RESPONSE_BODY "@rx <title>r57 Shell Version [0-9.]+</title>|<title>r57 shell</title>" \
|
|
53
|
+
"id:955110,\
|
|
54
|
+
phase:4,\
|
|
55
|
+
block,\
|
|
56
|
+
capture,\
|
|
57
|
+
t:none,\
|
|
58
|
+
msg:'r57 web shell',\
|
|
59
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
60
|
+
tag:'language-php',\
|
|
61
|
+
tag:'platform-multi',\
|
|
62
|
+
tag:'attack-rce',\
|
|
63
|
+
tag:'paranoia-level/1',\
|
|
64
|
+
tag:'OWASP_CRS',\
|
|
65
|
+
tag:'capec/1000/225/122/17/650',\
|
|
66
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
67
|
+
severity:'CRITICAL',\
|
|
68
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
69
|
+
|
|
70
|
+
# WSO web shell
|
|
71
|
+
SecRule RESPONSE_BODY "@rx ^<html><head><meta http-equiv='Content-Type' content='text/html; charset=(?:Windows-1251|UTF-8)?'><title>.*?(?: -)? W[Ss][Oo] [0-9.]+</title>" \
|
|
72
|
+
"id:955120,\
|
|
73
|
+
phase:4,\
|
|
74
|
+
block,\
|
|
75
|
+
capture,\
|
|
76
|
+
t:none,\
|
|
77
|
+
msg:'WSO web shell',\
|
|
78
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
79
|
+
tag:'language-php',\
|
|
80
|
+
tag:'platform-multi',\
|
|
81
|
+
tag:'attack-rce',\
|
|
82
|
+
tag:'paranoia-level/1',\
|
|
83
|
+
tag:'OWASP_CRS',\
|
|
84
|
+
tag:'capec/1000/225/122/17/650',\
|
|
85
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
86
|
+
severity:'CRITICAL',\
|
|
87
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
88
|
+
|
|
89
|
+
# b4tm4n web shell (https://github.com/k4mpr3t/b4tm4n)
|
|
90
|
+
SecRule RESPONSE_BODY "@rx B4TM4N SH3LL</title>.*<meta name='author' content='k4mpr3t'/>" \
|
|
91
|
+
"id:955130,\
|
|
92
|
+
phase:4,\
|
|
93
|
+
block,\
|
|
94
|
+
capture,\
|
|
95
|
+
t:none,\
|
|
96
|
+
msg:'b4tm4n web shell',\
|
|
97
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
98
|
+
tag:'language-php',\
|
|
99
|
+
tag:'platform-multi',\
|
|
100
|
+
tag:'attack-rce',\
|
|
101
|
+
tag:'paranoia-level/1',\
|
|
102
|
+
tag:'OWASP_CRS',\
|
|
103
|
+
tag:'capec/1000/225/122/17/650',\
|
|
104
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
105
|
+
severity:'CRITICAL',\
|
|
106
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
107
|
+
|
|
108
|
+
# Mini Shell web shell
|
|
109
|
+
SecRule RESPONSE_BODY "@rx <title>Mini Shell</title>.*Developed By LameHacker" \
|
|
110
|
+
"id:955140,\
|
|
111
|
+
phase:4,\
|
|
112
|
+
block,\
|
|
113
|
+
capture,\
|
|
114
|
+
t:none,\
|
|
115
|
+
msg:'Mini Shell web shell',\
|
|
116
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
117
|
+
tag:'language-php',\
|
|
118
|
+
tag:'platform-multi',\
|
|
119
|
+
tag:'attack-rce',\
|
|
120
|
+
tag:'paranoia-level/1',\
|
|
121
|
+
tag:'OWASP_CRS',\
|
|
122
|
+
tag:'capec/1000/225/122/17/650',\
|
|
123
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
124
|
+
severity:'CRITICAL',\
|
|
125
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
126
|
+
|
|
127
|
+
# Ashiyane web shell
|
|
128
|
+
SecRule RESPONSE_BODY "@rx <title>\.:: .* ~ Ashiyane V [0-9.]+ ::\.</title>" \
|
|
129
|
+
"id:955150,\
|
|
130
|
+
phase:4,\
|
|
131
|
+
block,\
|
|
132
|
+
capture,\
|
|
133
|
+
t:none,\
|
|
134
|
+
msg:'Ashiyane web shell',\
|
|
135
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
136
|
+
tag:'language-php',\
|
|
137
|
+
tag:'platform-multi',\
|
|
138
|
+
tag:'attack-rce',\
|
|
139
|
+
tag:'paranoia-level/1',\
|
|
140
|
+
tag:'OWASP_CRS',\
|
|
141
|
+
tag:'capec/1000/225/122/17/650',\
|
|
142
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
143
|
+
severity:'CRITICAL',\
|
|
144
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
145
|
+
|
|
146
|
+
# Symlink_Sa web shell
|
|
147
|
+
SecRule RESPONSE_BODY "@rx <title>Symlink_Sa [0-9.]+</title>" \
|
|
148
|
+
"id:955160,\
|
|
149
|
+
phase:4,\
|
|
150
|
+
block,\
|
|
151
|
+
capture,\
|
|
152
|
+
t:none,\
|
|
153
|
+
msg:'Symlink_Sa web shell',\
|
|
154
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
155
|
+
tag:'language-php',\
|
|
156
|
+
tag:'platform-multi',\
|
|
157
|
+
tag:'attack-rce',\
|
|
158
|
+
tag:'paranoia-level/1',\
|
|
159
|
+
tag:'OWASP_CRS',\
|
|
160
|
+
tag:'capec/1000/225/122/17/650',\
|
|
161
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
162
|
+
severity:'CRITICAL',\
|
|
163
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
164
|
+
|
|
165
|
+
# CasuS web shell
|
|
166
|
+
SecRule RESPONSE_BODY "@rx <title>CasuS [0-9.]+ by MafiABoY</title>" \
|
|
167
|
+
"id:955170,\
|
|
168
|
+
phase:4,\
|
|
169
|
+
block,\
|
|
170
|
+
capture,\
|
|
171
|
+
t:none,\
|
|
172
|
+
msg:'CasuS web shell',\
|
|
173
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
174
|
+
tag:'language-php',\
|
|
175
|
+
tag:'platform-multi',\
|
|
176
|
+
tag:'attack-rce',\
|
|
177
|
+
tag:'paranoia-level/1',\
|
|
178
|
+
tag:'OWASP_CRS',\
|
|
179
|
+
tag:'capec/1000/225/122/17/650',\
|
|
180
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
181
|
+
severity:'CRITICAL',\
|
|
182
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
183
|
+
|
|
184
|
+
# GRP WebShell
|
|
185
|
+
SecRule RESPONSE_BODY "@rx ^<html>\r\n<head>\r\n<title>GRP WebShell [0-9.]+ " \
|
|
186
|
+
"id:955180,\
|
|
187
|
+
phase:4,\
|
|
188
|
+
block,\
|
|
189
|
+
capture,\
|
|
190
|
+
t:none,\
|
|
191
|
+
msg:'GRP WebShell',\
|
|
192
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
193
|
+
tag:'language-php',\
|
|
194
|
+
tag:'platform-multi',\
|
|
195
|
+
tag:'attack-rce',\
|
|
196
|
+
tag:'paranoia-level/1',\
|
|
197
|
+
tag:'OWASP_CRS',\
|
|
198
|
+
tag:'capec/1000/225/122/17/650',\
|
|
199
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
200
|
+
severity:'CRITICAL',\
|
|
201
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
202
|
+
|
|
203
|
+
# NGHshell web shell
|
|
204
|
+
SecRule RESPONSE_BODY "@rx <small>NGHshell [0-9.]+ by Cr4sh</body></html>\n$" \
|
|
205
|
+
"id:955190,\
|
|
206
|
+
phase:4,\
|
|
207
|
+
block,\
|
|
208
|
+
capture,\
|
|
209
|
+
t:none,\
|
|
210
|
+
msg:'NGHshell web shell',\
|
|
211
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
212
|
+
tag:'language-php',\
|
|
213
|
+
tag:'platform-multi',\
|
|
214
|
+
tag:'attack-rce',\
|
|
215
|
+
tag:'paranoia-level/1',\
|
|
216
|
+
tag:'OWASP_CRS',\
|
|
217
|
+
tag:'capec/1000/225/122/17/650',\
|
|
218
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
219
|
+
severity:'CRITICAL',\
|
|
220
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
221
|
+
|
|
222
|
+
# SimAttacker web shell
|
|
223
|
+
SecRule RESPONSE_BODY "@rx <title>SimAttacker - (?:Version|Vrsion) : [0-9.]+ - " \
|
|
224
|
+
"id:955200,\
|
|
225
|
+
phase:4,\
|
|
226
|
+
block,\
|
|
227
|
+
capture,\
|
|
228
|
+
t:none,\
|
|
229
|
+
msg:'SimAttacker web shell',\
|
|
230
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
231
|
+
tag:'language-php',\
|
|
232
|
+
tag:'platform-multi',\
|
|
233
|
+
tag:'attack-rce',\
|
|
234
|
+
tag:'paranoia-level/1',\
|
|
235
|
+
tag:'OWASP_CRS',\
|
|
236
|
+
tag:'capec/1000/225/122/17/650',\
|
|
237
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
238
|
+
severity:'CRITICAL',\
|
|
239
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
240
|
+
|
|
241
|
+
# Unknown web shell
|
|
242
|
+
SecRule RESPONSE_BODY "@rx ^<!DOCTYPE html>\n<html>\n<!-- By Artyum .*<title>Web Shell</title>" \
|
|
243
|
+
"id:955210,\
|
|
244
|
+
phase:4,\
|
|
245
|
+
block,\
|
|
246
|
+
capture,\
|
|
247
|
+
t:none,\
|
|
248
|
+
msg:'Unknown web shell',\
|
|
249
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
250
|
+
tag:'language-php',\
|
|
251
|
+
tag:'platform-multi',\
|
|
252
|
+
tag:'attack-rce',\
|
|
253
|
+
tag:'paranoia-level/1',\
|
|
254
|
+
tag:'OWASP_CRS',\
|
|
255
|
+
tag:'capec/1000/225/122/17/650',\
|
|
256
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
257
|
+
severity:'CRITICAL',\
|
|
258
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
259
|
+
|
|
260
|
+
# lama's'hell web shell
|
|
261
|
+
SecRule RESPONSE_BODY "@rx <title>lama's'hell v. [0-9.]+</title>" \
|
|
262
|
+
"id:955220,\
|
|
263
|
+
phase:4,\
|
|
264
|
+
block,\
|
|
265
|
+
capture,\
|
|
266
|
+
t:none,\
|
|
267
|
+
msg:'lama\'s\'hell web shell',\
|
|
268
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
269
|
+
tag:'language-php',\
|
|
270
|
+
tag:'platform-multi',\
|
|
271
|
+
tag:'attack-rce',\
|
|
272
|
+
tag:'paranoia-level/1',\
|
|
273
|
+
tag:'OWASP_CRS',\
|
|
274
|
+
tag:'capec/1000/225/122/17/650',\
|
|
275
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
276
|
+
severity:'CRITICAL',\
|
|
277
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
278
|
+
|
|
279
|
+
# lostDC web shell
|
|
280
|
+
SecRule RESPONSE_BODY "@rx ^ *<html>\n[ ]+<head>\n[ ]+<title>lostDC - " \
|
|
281
|
+
"id:955230,\
|
|
282
|
+
phase:4,\
|
|
283
|
+
block,\
|
|
284
|
+
capture,\
|
|
285
|
+
t:none,\
|
|
286
|
+
msg:'lostDC web shell',\
|
|
287
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
288
|
+
tag:'language-php',\
|
|
289
|
+
tag:'platform-multi',\
|
|
290
|
+
tag:'attack-rce',\
|
|
291
|
+
tag:'paranoia-level/1',\
|
|
292
|
+
tag:'OWASP_CRS',\
|
|
293
|
+
tag:'capec/1000/225/122/17/650',\
|
|
294
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
295
|
+
severity:'CRITICAL',\
|
|
296
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
297
|
+
|
|
298
|
+
# Unknown web shell
|
|
299
|
+
SecRule RESPONSE_BODY "@rx ^<title>PHP Web Shell</title>\r\n<html>\r\n<body>\r\n <!-- Replaces command with Base64-encoded Data -->" \
|
|
300
|
+
"id:955240,\
|
|
301
|
+
phase:4,\
|
|
302
|
+
block,\
|
|
303
|
+
capture,\
|
|
304
|
+
t:none,\
|
|
305
|
+
msg:'Unknown web shell',\
|
|
306
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
307
|
+
tag:'language-php',\
|
|
308
|
+
tag:'platform-multi',\
|
|
309
|
+
tag:'attack-rce',\
|
|
310
|
+
tag:'paranoia-level/1',\
|
|
311
|
+
tag:'OWASP_CRS',\
|
|
312
|
+
tag:'capec/1000/225/122/17/650',\
|
|
313
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
314
|
+
severity:'CRITICAL',\
|
|
315
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
316
|
+
|
|
317
|
+
# Unknown web shell
|
|
318
|
+
SecRule RESPONSE_BODY "@rx ^<html>\n<head>\n<div align=\"left\"><font size=\"1\">Input command :</font></div>\n<form name=\"cmd\" method=\"POST\" enctype=\"multipart/form-data\">" \
|
|
319
|
+
"id:955250,\
|
|
320
|
+
phase:4,\
|
|
321
|
+
block,\
|
|
322
|
+
capture,\
|
|
323
|
+
t:none,\
|
|
324
|
+
msg:'Unknown web shell',\
|
|
325
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
326
|
+
tag:'language-php',\
|
|
327
|
+
tag:'platform-multi',\
|
|
328
|
+
tag:'attack-rce',\
|
|
329
|
+
tag:'paranoia-level/1',\
|
|
330
|
+
tag:'OWASP_CRS',\
|
|
331
|
+
tag:'capec/1000/225/122/17/650',\
|
|
332
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
333
|
+
severity:'CRITICAL',\
|
|
334
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
335
|
+
|
|
336
|
+
# Ru24PostWebShell web shell
|
|
337
|
+
# Removed '- ' from the end of the pattern so this file won't get detected as
|
|
338
|
+
# malware by Windows Defender.
|
|
339
|
+
SecRule RESPONSE_BODY "@rx ^<html>\n<head>\n<title>Ru24PostWebShell " \
|
|
340
|
+
"id:955260,\
|
|
341
|
+
phase:4,\
|
|
342
|
+
block,\
|
|
343
|
+
capture,\
|
|
344
|
+
t:none,\
|
|
345
|
+
msg:'Ru24PostWebShell web shell',\
|
|
346
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
347
|
+
tag:'language-php',\
|
|
348
|
+
tag:'platform-multi',\
|
|
349
|
+
tag:'attack-rce',\
|
|
350
|
+
tag:'paranoia-level/1',\
|
|
351
|
+
tag:'OWASP_CRS',\
|
|
352
|
+
tag:'capec/1000/225/122/17/650',\
|
|
353
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
354
|
+
severity:'CRITICAL',\
|
|
355
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
356
|
+
|
|
357
|
+
# s72 Shell web shell
|
|
358
|
+
SecRule RESPONSE_BODY "@rx <title>s72 Shell v[0-9.]+ Codinf by Cr@zy_King</title>" \
|
|
359
|
+
"id:955270,\
|
|
360
|
+
phase:4,\
|
|
361
|
+
block,\
|
|
362
|
+
capture,\
|
|
363
|
+
t:none,\
|
|
364
|
+
msg:'s72 Shell web shell',\
|
|
365
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
366
|
+
tag:'language-php',\
|
|
367
|
+
tag:'platform-multi',\
|
|
368
|
+
tag:'attack-rce',\
|
|
369
|
+
tag:'paranoia-level/1',\
|
|
370
|
+
tag:'OWASP_CRS',\
|
|
371
|
+
tag:'capec/1000/225/122/17/650',\
|
|
372
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
373
|
+
severity:'CRITICAL',\
|
|
374
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
375
|
+
|
|
376
|
+
# PhpSpy web shell
|
|
377
|
+
SecRule RESPONSE_BODY "@rx ^<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">\r\n<title>PhpSpy Ver [0-9]+</title>" \
|
|
378
|
+
"id:955280,\
|
|
379
|
+
phase:4,\
|
|
380
|
+
block,\
|
|
381
|
+
capture,\
|
|
382
|
+
t:none,\
|
|
383
|
+
msg:'PhpSpy web shell',\
|
|
384
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
385
|
+
tag:'language-php',\
|
|
386
|
+
tag:'platform-multi',\
|
|
387
|
+
tag:'attack-rce',\
|
|
388
|
+
tag:'paranoia-level/1',\
|
|
389
|
+
tag:'OWASP_CRS',\
|
|
390
|
+
tag:'capec/1000/225/122/17/650',\
|
|
391
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
392
|
+
severity:'CRITICAL',\
|
|
393
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
394
|
+
|
|
395
|
+
# g00nshell web shell
|
|
396
|
+
SecRule RESPONSE_BODY "@rx ^ <html>\n\n<head>\n\n<title>g00nshell v[0-9.]+ " \
|
|
397
|
+
"id:955290,\
|
|
398
|
+
phase:4,\
|
|
399
|
+
block,\
|
|
400
|
+
capture,\
|
|
401
|
+
t:none,\
|
|
402
|
+
msg:'g00nshell web shell',\
|
|
403
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
404
|
+
tag:'language-php',\
|
|
405
|
+
tag:'platform-multi',\
|
|
406
|
+
tag:'attack-rce',\
|
|
407
|
+
tag:'paranoia-level/1',\
|
|
408
|
+
tag:'OWASP_CRS',\
|
|
409
|
+
tag:'capec/1000/225/122/17/650',\
|
|
410
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
411
|
+
severity:'CRITICAL',\
|
|
412
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
413
|
+
|
|
414
|
+
# PuNkHoLic shell web shell
|
|
415
|
+
# Various versions has this text written little differently so we need to do
|
|
416
|
+
# t:removeWhitespace and t:lowercase.
|
|
417
|
+
SecRule RESPONSE_BODY "@contains <title>punkholicshell</title>" \
|
|
418
|
+
"id:955300,\
|
|
419
|
+
phase:4,\
|
|
420
|
+
block,\
|
|
421
|
+
capture,\
|
|
422
|
+
t:none,t:removeWhitespace,t:lowercase,\
|
|
423
|
+
msg:'PuNkHoLic shell web shell',\
|
|
424
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
425
|
+
tag:'language-php',\
|
|
426
|
+
tag:'platform-multi',\
|
|
427
|
+
tag:'attack-rce',\
|
|
428
|
+
tag:'paranoia-level/1',\
|
|
429
|
+
tag:'OWASP_CRS',\
|
|
430
|
+
tag:'capec/1000/225/122/17/650',\
|
|
431
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
432
|
+
severity:'CRITICAL',\
|
|
433
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
434
|
+
|
|
435
|
+
# azrail web shell
|
|
436
|
+
SecRule RESPONSE_BODY "@rx ^<html>\n <head>\n <title>azrail [0-9.]+ by C-W-M</title>" \
|
|
437
|
+
"id:955310,\
|
|
438
|
+
phase:4,\
|
|
439
|
+
block,\
|
|
440
|
+
capture,\
|
|
441
|
+
t:none,\
|
|
442
|
+
msg:'azrail web shell',\
|
|
443
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
444
|
+
tag:'language-php',\
|
|
445
|
+
tag:'platform-multi',\
|
|
446
|
+
tag:'attack-rce',\
|
|
447
|
+
tag:'paranoia-level/1',\
|
|
448
|
+
tag:'OWASP_CRS',\
|
|
449
|
+
tag:'capec/1000/225/122/17/650',\
|
|
450
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
451
|
+
severity:'CRITICAL',\
|
|
452
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
453
|
+
|
|
454
|
+
# SmEvK_PaThAn Shell web shell
|
|
455
|
+
SecRule RESPONSE_BODY "@rx >SmEvK_PaThAn Shell v[0-9]+ coded by <a href=" \
|
|
456
|
+
"id:955320,\
|
|
457
|
+
phase:4,\
|
|
458
|
+
block,\
|
|
459
|
+
capture,\
|
|
460
|
+
t:none,\
|
|
461
|
+
msg:'SmEvK_PaThAn Shell web shell',\
|
|
462
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
463
|
+
tag:'language-php',\
|
|
464
|
+
tag:'platform-multi',\
|
|
465
|
+
tag:'attack-rce',\
|
|
466
|
+
tag:'paranoia-level/1',\
|
|
467
|
+
tag:'OWASP_CRS',\
|
|
468
|
+
tag:'capec/1000/225/122/17/650',\
|
|
469
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
470
|
+
severity:'CRITICAL',\
|
|
471
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
472
|
+
|
|
473
|
+
# Shell I web shell
|
|
474
|
+
SecRule RESPONSE_BODY "@rx ^<html>\n<title>.*? ~ Shell I</title>\n<head>\n<style>" \
|
|
475
|
+
"id:955330,\
|
|
476
|
+
phase:4,\
|
|
477
|
+
block,\
|
|
478
|
+
capture,\
|
|
479
|
+
t:none,\
|
|
480
|
+
msg:'Shell I web shell',\
|
|
481
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
482
|
+
tag:'language-php',\
|
|
483
|
+
tag:'platform-multi',\
|
|
484
|
+
tag:'attack-rce',\
|
|
485
|
+
tag:'paranoia-level/1',\
|
|
486
|
+
tag:'OWASP_CRS',\
|
|
487
|
+
tag:'capec/1000/225/122/17/650',\
|
|
488
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
489
|
+
severity:'CRITICAL',\
|
|
490
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
491
|
+
|
|
492
|
+
# b374k m1n1 web shell
|
|
493
|
+
SecRule RESPONSE_BODY "@rx ^ <html><head><title>:: b374k m1n1 [0-9.]+ ::</title>" \
|
|
494
|
+
"id:955340,\
|
|
495
|
+
phase:4,\
|
|
496
|
+
block,\
|
|
497
|
+
capture,\
|
|
498
|
+
t:none,\
|
|
499
|
+
msg:'b374k m1n1 web shell',\
|
|
500
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
501
|
+
tag:'language-php',\
|
|
502
|
+
tag:'platform-multi',\
|
|
503
|
+
tag:'attack-rce',\
|
|
504
|
+
tag:'paranoia-level/1',\
|
|
505
|
+
tag:'OWASP_CRS',\
|
|
506
|
+
tag:'capec/1000/225/122/17/650',\
|
|
507
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
508
|
+
severity:'CRITICAL',\
|
|
509
|
+
setvar:'tx.outbound_anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
|
|
510
|
+
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 2" "id:955013,phase:3,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-955-WEB-SHELLS"
|
|
514
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 2" "id:955014,phase:4,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-955-WEB-SHELLS"
|
|
515
|
+
#
|
|
516
|
+
# -= Paranoia Level 2 =- (apply only when tx.detection_paranoia_level is sufficiently high: 2 or higher)
|
|
517
|
+
#
|
|
518
|
+
|
|
519
|
+
# webadmin.php file manager
|
|
520
|
+
# This is placed in PL2 because of too generic pattern.
|
|
521
|
+
SecRule RESPONSE_BODY "@contains <h1 style=\"margin-bottom: 0\">webadmin.php</h1>" \
|
|
522
|
+
"id:955350,\
|
|
523
|
+
phase:4,\
|
|
524
|
+
block,\
|
|
525
|
+
capture,\
|
|
526
|
+
t:none,\
|
|
527
|
+
msg:'webadmin.php file manager',\
|
|
528
|
+
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}',\
|
|
529
|
+
tag:'language-php',\
|
|
530
|
+
tag:'platform-multi',\
|
|
531
|
+
tag:'attack-rce',\
|
|
532
|
+
tag:'paranoia-level/2',\
|
|
533
|
+
tag:'OWASP_CRS',\
|
|
534
|
+
tag:'capec/1000/225/122/17/650',\
|
|
535
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
536
|
+
severity:'CRITICAL',\
|
|
537
|
+
setvar:'tx.outbound_anomaly_score_pl2=+%{tx.critical_anomaly_score}'"
|
|
538
|
+
|
|
539
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 3" "id:955015,phase:3,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-955-WEB-SHELLS"
|
|
540
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 3" "id:955016,phase:4,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-955-WEB-SHELLS"
|
|
541
|
+
#
|
|
542
|
+
# -= Paranoia Level 3 =- (apply only when tx.detection_paranoia_level is sufficiently high: 3 or higher)
|
|
543
|
+
#
|
|
544
|
+
|
|
545
|
+
|
|
546
|
+
|
|
547
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 4" "id:955017,phase:3,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-955-WEB-SHELLS"
|
|
548
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 4" "id:955018,phase:4,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-955-WEB-SHELLS"
|
|
549
|
+
#
|
|
550
|
+
# -= Paranoia Level 4 =- (apply only when tx.detection_paranoia_level is sufficiently high: 4 or higher)
|
|
551
|
+
#
|
|
552
|
+
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
#
|
|
556
|
+
# -= Paranoia Levels Finished =-
|
|
557
|
+
#
|
|
558
|
+
SecMarker "END-RESPONSE-955-WEB-SHELLS"
|