From b5d6984db7f57f36b185db189d1ea03aafb347c1 Mon Sep 17 00:00:00 2001 From: "Mariusz B. / mgeeky" Date: Fri, 29 Oct 2021 14:39:28 +0200 Subject: [PATCH] first --- README.md | 462 ++++ correlate-rules.py | 70 + decode-spam-headers.py | 4763 ++++++++++++++++++++++++++++++++++++++++ img/1.png | Bin 0 -> 141538 bytes img/2.png | Bin 0 -> 160987 bytes img/3.png | Bin 0 -> 135030 bytes img/4.png | Bin 0 -> 8547 bytes 7 files changed, 5295 insertions(+) create mode 100644 README.md create mode 100644 correlate-rules.py create mode 100644 decode-spam-headers.py create mode 100644 img/1.png create mode 100644 img/2.png create mode 100644 img/3.png create mode 100644 img/4.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..02d283a --- /dev/null +++ b/README.md @@ -0,0 +1,462 @@ +## `decode-spam-headers.py` + +This tool accepts on input an `*.EML` or `*.txt` file with all the SMTP headers. It will then extract a subset of interesting headers and using **79+** tests will attempt to decode them as much as possible. + +This script also extracts all IPv4 addresses and domain names and performs full DNS resolution of them. + +Resulting output will contain useful information on why this e-mail might have been blocked. + + +### Example screenshots + +- Chain of MTA servers (nicely parsed `Received` headers): + +![1.png](img/1.png) + +- Various headers decoded as much as possible, according to publicly available documentation (here _Office365 ForeFront Spam Report_): + +![2.png](img/2.png) + +- Different custom heuristics implement to actively validate and seek for clues of spam categorization, here logic detecting _Domain Impersonation_: + +![3.png](img/3.png) + +- Script attempts to reverse-engineer and document some of the Office365 Anti-Spam rules, as well as collect public knowledge about other opaque Anti-Spam headers: + +![4.png](img/4.png) + + + +### Processed headers + +Processed headers (more than **67+** headers are parsed): + +- `X-forefront-antispam-report` +- `X-exchange-antispam` +- `X-exchange-antispam-mailbox-delivery` +- `X-exchange-antispam-message-info` +- `X-microsoft-antispam-report-cfa-test` +- `Received` +- `From` +- `To` +- `Subject` +- `Thread-topic` +- `Received-spf` +- `X-mailer` +- `X-originating-ip` +- `User-agent` +- `X-forefront-antispam-report` +- `X-microsoft-antispam-mailbox-delivery` +- `X-microsoft-antispam` +- `X-exchange-antispam-report-cfa-test` +- `X-spam-status` +- `X-spam-level` +- `X-spam-flag` +- `X-spam-report` +- `X-vr-spamcause` +- `X-ovh-spam-reason` +- `X-vr-spamscore` +- `X-virus-scanned` +- `X-spam-checker-version` +- `X-ironport-av` +- `X-ironport-anti-spam-filtered` +- `X-ironport-anti-spam-result` +- `X-mimecast-spam-score` +- `Spamdiagnosticmetadata` +- `X-ms-exchange-atpmessageproperties` +- `X-msfbl` +- `X-ms-exchange-transport-endtoendlatency` +- `X-ms-oob-tlc-oobclassifiers` +- `X-ip-spam-verdict` +- `X-amp-result` +- `X-ironport-remoteip` +- `X-ironport-reputation` +- `X-sbrs` +- `X-ironport-sendergroup` +- `X-policy` +- `X-ironport-mailflowpolicy` +- `X-remote-ip` +- `X-sea-spam` +- `X-fireeye` +- `X-antiabuse` +- `X-tmase-version` +- `X-tm-as-product-ver` +- `X-tm-as-result` +- `X-imss-scan-details` +- `X-tm-as-user-approved-sender` +- `X-tm-as-user-blocked-sender` +- `X-tmase-result` +- `X-tmase-snap-result` +- `X-imss-dkim-white-list` +- `X-tm-as-result-xfilter` +- `X-tm-as-smtp` +- `X-scanned-by` +- `X-mimecast-spam-signature` +- `X-mimecast-bulk-signature` +- `X-sender-ip` +- `X-forefront-antispam-report-untrusted` +- `X-microsoft-antispam-untrusted` +- `X-sophos-senderhistory` +- `X-sophos-rescan` + + +Most of these headers are not fully documented, therefore the script is unable to pinpoint all the details, but at least it collects all I could find on them. + +### Usage + +Help: + +``` +PS> py .\decode-spam-headers.py --help +usage: decode-spam-headers.py [options] + +optional arguments: + -h, --help show this help message and exit + +Required arguments: + infile Input file to be analysed or --list tests to show available tests. + +Options: + -o OUTFILE, --outfile OUTFILE + Output file with report + -f {json,text}, --format {json,text} + Analysis report format. JSON, text. Default: text + -N, --nocolor Dont use colors in text output. + -v, --verbose Verbose mode. + -d, --debug Debug mode. + -l, --list List available tests and quit. Use it like so: --list tests + +Tests: + -i tests, --include-tests tests + Comma-separated list of test IDs to run. Ex. --include-tests 1,3,7 + -e tests, --exclude-tests tests + Comma-separated list of test IDs to skip. Ex. --exclude-tests 1,3,7 + -r, --resolve Resolve IPv4 addresses / Domain names. + -a, --decode-all Decode all =?us-ascii?Q? mail encoded messages and print their contents. +``` + +If you want to run only a subset of tests, you'll first need to learn Test IDs of which to pick. +Run the script with `-l tests` to grab that list. + +List available test and their corresponding IDs: + +``` +C:\> py decode-spam-headers.py -l tests + +[.] Available tests: + + TEST_ID - TEST_NAME + -------------------------------------- + 1 - Received - Mail Servers Flow + 2 - Extracted IP addresses + 3 - Extracted Domains + 4 - Bad Keywords In Headers + 5 - From Address Analysis + 6 - Subject and Thread Topic Difference + 7 - Authentication-Results + 8 - ARC-Authentication-Results + 9 - Received-SPF + 10 - Mail Client Version + 11 - User-Agent Version + 12 - X-Forefront-Antispam-Report + 13 - X-MS-Exchange-Organization-SCL + 14 - X-Microsoft-Antispam-Mailbox-Delivery + 15 - X-Microsoft-Antispam Bulk Mail + 16 - X-Exchange-Antispam-Report-CFA-Test + 17 - Domain Impersonation + 18 - SpamAssassin Spam Status + 19 - SpamAssassin Spam Level + 20 - SpamAssassin Spam Flag + 21 - SpamAssassin Spam Report + 22 - OVH's X-VR-SPAMCAUSE + 23 - OVH's X-Ovh-Spam-Reason + 24 - OVH's X-Ovh-Spam-Score + 25 - X-Virus-Scan + 26 - X-Spam-Checker-Version + 27 - X-IronPort-AV + 28 - X-IronPort-Anti-Spam-Filtered + 29 - X-IronPort-Anti-Spam-Result + 30 - X-Mimecast-Spam-Score + 31 - Spam Diagnostics Metadata + 32 - MS Defender ATP Message Properties + 33 - Message Feedback Loop + 34 - End-to-End Latency - Message Delivery Time + 35 - X-MS-Oob-TLC-OOBClassifiers + 36 - X-IP-Spam-Verdict + 37 - X-Amp-Result + 38 - X-IronPort-RemoteIP + 39 - X-IronPort-Reputation + 40 - X-SBRS + 41 - X-IronPort-SenderGroup + 42 - X-Policy + 43 - X-IronPort-MailFlowPolicy + 44 - X-SEA-Spam + 45 - X-FireEye + 46 - X-AntiAbuse + 47 - X-TMASE-Version + 48 - X-TM-AS-Product-Ver + 49 - X-TM-AS-Result + 50 - X-IMSS-Scan-Details + 51 - X-TM-AS-User-Approved-Sender + 52 - X-TM-AS-User-Blocked-Sender + 53 - X-TMASE-Result + 54 - X-TMASE-SNAP-Result + 55 - X-IMSS-DKIM-White-List + 56 - X-TM-AS-Result-Xfilter + 57 - X-TM-AS-SMTP + 58 - X-TMASE-SNAP-Result + 59 - X-TM-Authentication-Results + 60 - X-Scanned-By + 61 - X-Mimecast-Spam-Signature + 62 - X-Mimecast-Bulk-Signature + 63 - X-Forefront-Antispam-Report-Untrusted + 64 - X-Microsoft-Antispam-Untrusted + 65 - X-Mimecast-Impersonation-Protect + 66 - X-Proofpoint-Spam-Details + 67 - X-Proofpoint-Virus-Version + 68 - SPFCheck + 69 - X-Barracuda-Spam-Score + 70 - X-Barracuda-Spam-Status + 71 - X-Barracuda-Spam-Report + 72 - X-Barracuda-Bayes + 73 - X-Barracuda-Start-Time + 74 - Similar to SpamAssassin Spam Level headers + 75 - SMTP Header Contained IP address + 76 - Other unrecognized Spam Related Headers + 77 - Other interesting headers + 78 - Security Appliances Spotted + 79 - Email Providers Infrastructure Clues + 80 - X-Microsoft-Antispam-Message-Info + 81 - Decoded Mail-encoded header values + 82 - Header Containing Client IP +``` + + +### Sample run + +Sample run: + +``` + PS> py decode-spam-headers.py headers.txt + +------------------------------------------ +(1) Test: Received - Mail Servers Flow + +HEADER: + Received + +VALUE: + ... + +ANALYSIS: + - List of server hops used to deliver message: + + --> (1) "attacker" + + |_> (2) SMTP-SERVICE (44.55.66.77) + time: 01 Jan 2021 12:34:20 + + |_> (3) mail-wr1-f51.google.com (209.85.221.51) + time: 01 Jan 2021 12:34:20 + version: fuzzy match: Exchange Server 2019 CU11; October 12, 2021; 15.2.986.9 + + |_> (4) SN1NAM02FT0061.eop-nam02.prod.protection.outlook.com (2603:10b6:806:131:cafe::e5) + time: 01 Jan 2021 12:34:20 + version: fuzzy match: Exchange Server 2019 CU11; October 12, 2021; 15.2.986.9 + + |_> (5) SA0PR11CA0138.namprd11.prod.outlook.com (2603:10b6:806:131::23) + time: 01 Jan 2021 12:34:20 + version: fuzzy match: Exchange Server 2019 CU11; October 12, 2021; 15.2.986.9 + + |_> (6) CP2PR80MB4114.lamprd80.prod.outlook.com (2603:10d6:102:3c::15) + time: 01 Jan 2021 12:34:23 + + |_> (7) "Victim Surname" + + + +------------------------------------------ + +[...] + +------------------------------------------ +(4) Test: Mail Client Version + +HEADER: + X-Mailer + +VALUE: + OEM + +ANALYSIS: + - X-Mailer header was present and contained value: "OEM". + + +------------------------------------------ +(5) Test: X-Forefront-Antispam-Report + +HEADER: + X-Forefront-Antispam-Report + +VALUE: + CIP:209.85.167.100;CTRY:US;LANG:de;SCL:5;SRV:;IPV:NLI;SFV:SPM;H:mail-lf1-f100.google.com;PTR:mail-l + f1-f100.google.com;CAT:DIMP;SFTY:9.19;SFS:(4636009)(956004)(166002)(6916009)(356005)(336012)(19 + 625305002)(22186003)(5660300002)(4744005)(6666004)(35100500006)(82960400001)(26005)(7596003)(7636003)(554460 + 02)(224303003)(1096003)(58800400005)(86362001)(9686003)(43540500002);DIR:INB;SFTY:9.19; + +ANALYSIS: + - Microsoft Office365/Exchange ForeFront Anti-Spam report + + - CIP: Connecting IP address: 209.85.167.100 + + - CTRY: The source country as determined by the connecting IP address + - US + + - LANG: The language in which the message was written + - de + + - IPV: Ingress Peer Verification status + - NLI: The IP address was not found on any IP reputation list. + + - SFV: Message Filtering + - SPM: The message was marked as spam by spam filtering. + + - H: The HELO or EHLO string of the connecting email server. + - mail-lf1-f100.google.com + + - PTR: Reverse DNS of the Connecting IP peer's address + - mail-lf1-f100.google.com + + - CAT: The category of protection policy + - DIMP: Domain Impersonation + + - SFTY: The message was identified as phishing + - 9.19: Domain impersonation. The sending domain is attempting to impersonate a protected domain + + - DIR: Direction of email verification + - INB: Inbound email verification + + - Message matched 24 Anti-Spam rules (SFS): + - (1096003) + - (166002) + - (19625305002) + - (22186003) + - (224303003) + - (26005) + - (336012) + - (356005) + - (35100500006) - (SPAM) Message contained embedded image. + - (43540500002) + - (4636009) + - (4744005) + - (55446002) + - (5660300002) + - (58800400005) + - (6666004) + - (6916009) + - (7596003) + - (7636003) + - (82960400001) + - (86362001) + - (956004) + - (9686003) + + - SCL: Spam Confidence Level: 5 + - SPAM: Spam filtering marked the message as Spam + + +More information: + - https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/anti-spam-message-headers + - https://docs.microsoft.com/en-us/exchange/antispam-and-antimalware/antispam-protection/antispam-stamps + - https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/spam-confidence-levels + - https://docs.microsoft.com/en-us/exchange/monitoring/trace-an-email-message/run-a-message-trace-and-view-results + + +------------------------------------------ +(6) Test: X-Microsoft-Antispam-Mailbox-Delivery + +HEADER: + X-Microsoft-Antispam-Mailbox-Delivery + +VALUE: + ucf:0;jmr:1;auth:0;dest:J;ENG:(910001)(944506458)(944626604)(750132)(520011016); + +ANALYSIS: + - This header denotes what to do with received message, where to put it. + + - auth: Message originating from Authenticated sender + - 0: Not Authenticated + + - dest: Destination where message should be placed + - J: JUNK directory + + - Message matched 6 Anti-Spam Delivery rules: + - (520011016) + - (750132) + - (910001) + - (944506458) + - (944626604) + + +------------------------------------------ +(7) Test: X-Microsoft-Antispam Bulk Mail + +HEADER: + X-Microsoft-Antispam +VALUE: + BCL:0; + +ANALYSIS: + - BCL: BULK Confidence Level: 0 + The message isn't from a bulk sender. + + More information: + - https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/bulk-complaint-level-values + +------------------------------------------ + +[...] + +------------------------------------------ +(10) Test: MS Defender ATP Message Properties + +HEADER: + X-MS-Exchange-AtpMessageProperties + +VALUE: + SA|SL + +ANALYSIS: + - MS Defender Advanced Threat Protection enabled following protections on this message: + - Safe Attachments Protection + - Safe Links Protection + + +------------------------------------------ +(11) Test: Domain Impersonation + +HEADER: + From + +VALUE: + "attacker" + +ANALYSIS: + - Mail From: + + - Mail Domain: attacker.com + --> resolves to: 11.22.33.44 + --> reverse-DNS resolves to: ec2-11-22-33-44.eu-west-3.compute.amazonaws.com + (sender's domain: amazonaws.com) + + - First Hop: SMTP-SERVICE (44.55.66.77) + --> resolves to: + --> reverse-DNS resolves to: host44-55-66-77.static.arubacloud.pl + (first hop's domain: arubacloud.pl) + + - Domain SPF: "v=spf1 include:_spf.google.com ~all" + + - WARNING! Potential Domain Impersonation! + - Mail's domain should resolve to: amazonaws.com + - But instead first hop resolved to: arubacloud.pl +``` diff --git a/correlate-rules.py b/correlate-rules.py new file mode 100644 index 0000000..ceb5b58 --- /dev/null +++ b/correlate-rules.py @@ -0,0 +1,70 @@ +#!/usr/bin/python3 + +import os, sys, re +import string +import argparse +import json +import textwrap +import socket +import time +import glob +import base64 + +rules = {} +scanned = set() + +def walk(path): + global rules + global scanned + + print(f'Walking {path}...') + + for file in glob.glob(os.path.join(path, '**'), recursive=True): + if not file.lower().endswith('.txt'): + continue + + if file in scanned: continue + scanned.add(file) + + data = '' + with open(file) as f: + data = f.read() + + for m in re.finditer(r'(\(\d{4,}\))', data, re.I): + rule = m.group(1) + + if rule in rules.keys(): + if file not in rules[rule]['files']: + rules[rule]['count'] += 1 + rules[rule]['files'].add(file) + else: + rules[rule] = {} + rules[rule]['count'] = 1 + rules[rule]['files'] = set([file, ]) + +def main(argv): + + paths = [] + for i in range(len(argv)): + arg = argv[i] + if i == 0: continue + + if not os.path.isdir(arg): + print('[!] input path does not exist or is not a dir! ' + arg) + sys.exit(1) + + walk(os.path.abspath(arg)) + + print(f'[.] Found {len(rules)} unique rules.:') + + candidates = [] + for k, v in rules.items(): + if v['count'] > 1: + print(f'\n\t- {k: <15}: occurences: {v["count"]} - files: {len(v["files"])}') + + if len(v['files']) < 6: + for f in v['files']: + print('\t\t- ' + str(f)) + +if __name__ == '__main__': + main(sys.argv) \ No newline at end of file diff --git a/decode-spam-headers.py b/decode-spam-headers.py new file mode 100644 index 0000000..faefa4e --- /dev/null +++ b/decode-spam-headers.py @@ -0,0 +1,4763 @@ +#!/usr/bin/python3 + +# +# This script attempts to decode SMTP headers that may contain Anti-Spam related information, clues, +# scores and other characteristics. Intention is to extract reason why the message was considered a spam, +# by combining flags and values for different headers from all around the Internet and documentation. +# +# The script might be used by System Administrators to help them understand mail deliverability obstacles, +# but also by the Offensive security consultants performing Phishing Awareness Trainings, before sending +# a campaign to analyse negative constructs in their e-mails. +# +# The script can decode 67+ different SPAM related headers (and others bringing valuable information): +# - X-forefront-antispam-report +# - X-exchange-antispam +# - X-exchange-antispam-mailbox-delivery +# - X-exchange-antispam-message-info +# - X-microsoft-antispam-report-cfa-test +# - Received +# - From +# - To +# - Subject +# - Thread-topic +# - Received-spf +# - X-mailer +# - X-originating-ip +# - User-agent +# - X-forefront-antispam-report +# - X-microsoft-antispam-mailbox-delivery +# - X-microsoft-antispam +# - X-exchange-antispam-report-cfa-test +# - X-spam-status +# - X-spam-level +# - X-spam-flag +# - X-spam-report +# - X-vr-spamcause +# - X-ovh-spam-reason +# - X-vr-spamscore +# - X-virus-scanned +# - X-spam-checker-version +# - X-ironport-av +# - X-ironport-anti-spam-filtered +# - X-ironport-anti-spam-result +# - X-mimecast-spam-score +# - Spamdiagnosticmetadata +# - X-ms-exchange-atpmessageproperties +# - X-msfbl +# - X-ms-exchange-transport-endtoendlatency +# - X-ms-oob-tlc-oobclassifiers +# - X-ip-spam-verdict +# - X-amp-result +# - X-ironport-remoteip +# - X-ironport-reputation +# - X-sbrs +# - X-ironport-sendergroup +# - X-policy +# - X-ironport-mailflowpolicy +# - X-remote-ip +# - X-sea-spam +# - X-fireeye +# - X-antiabuse +# - X-tmase-version +# - X-tm-as-product-ver +# - X-tm-as-result +# - X-imss-scan-details +# - X-tm-as-user-approved-sender +# - X-tm-as-user-blocked-sender +# - X-tmase-result +# - X-tmase-snap-result +# - X-imss-dkim-white-list +# - X-tm-as-result-xfilter +# - X-tm-as-smtp +# - X-scanned-by +# - X-mimecast-spam-signature +# - X-mimecast-bulk-signature +# - X-sender-ip +# - X-forefront-antispam-report-untrusted +# - X-microsoft-antispam-untrusted +# - X-sophos-senderhistory +# - X-sophos-rescan +# +# Usage: +# ./decode-spam-headers [options] +# +# NOTICE: +# Parts of this code contain fragments copied from the following places: +# +# 1) testEmailIntelligence(): +# source: https://github.com/nquinlan/Email-Intelligence +# authored by: Nick Quinlan (nick@nicholasquinlan.com) +# +# Requirements: +# - packaging +# - dnspython +# +# Mariusz Banach / mgeeky, '21 +# +# + +import os, sys, re +import string +import argparse +import json +import textwrap +import socket +import time +import base64 +from html import escape + +from dateutil import parser +from email import header as emailheader +from datetime import * +from dateutil.tz import * + +try: + import packaging.version + +except ImportError: + print(''' +[!] You need to install packaging: + # pip3 install packaging +''') + sys.exit(1) + +try: + import dns.resolver + +except ImportError: + print(''' +[!] You need to install dnspython: + # pip3 install dnspython + + If problem remains, re-install dnspython: + # pip3 uninstall dnspython + # pip3 install dnspython +''') + sys.exit(1) + +options = { + 'debug': False, + 'verbose': False, + 'nocolor' : False, + 'log' : sys.stderr, + 'format' : 'text', +} + +class Logger: + colors_map = { + 'red': 31, + 'green': 32, + 'yellow': 33, + 'blue': 34, + 'magenta': 35, + 'cyan': 36, + 'white': 37, + 'grey': 38, + } + + colors_dict = { + 'error': colors_map['red'], + 'trace': colors_map['magenta'], + 'info ': colors_map['green'], + 'debug': colors_map['grey'], + 'other': colors_map['grey'], + } + + options = {} + + def __init__(self, opts = None): + self.options.update(Logger.options) + if opts != None and len(opts) > 0: + self.options.update(opts) + + @staticmethod + def with_color(c, s): + return "\x1b[%dm%s\x1b[0m" % (c, s) + + @staticmethod + def replaceColorToHtml(s): + out = '' + i = 0 + + while i < len(s): + if s[i] == '\x1b' and s[i+1] == '[' and s[i+2] != '0': + c = int(s[i+2:i+4]) + pos = 0 + while pos < len(s): + if s[pos] == '\x1b' and s[pos+1] == '[' and s[pos+2] == '0' and s[pos+3] == 'm': + break + pos += 1 + + txt = s[i+5:pos] + i = i + 5 + pos + 4 + + for k, v in Logger.colors_map.items(): + if v == c: + out += f'

{escape(txt)}

' + break + + continue + + out += s[i] + i += 1 + + return out + + def colored(self, txt, col): + if self.options['nocolor']: + return txt + + return Logger.with_color(Logger.colors_map[col], txt) + + # Invocation: + # def out(txt, mode='info ', fd=None, color=None, noprefix=False, newline=True): + @staticmethod + def out(txt, fd, mode='info ', **kwargs): + if txt == None or fd == 'none': + return + elif fd == None: + raise Exception('[ERROR] Logging descriptor has not been specified!') + + args = { + 'color': None, + 'noprefix': False, + 'newline': True, + 'nocolor' : False + } + args.update(kwargs) + + if type(txt) != str: + txt = str(txt) + + txt = txt.replace('\t', ' ' * 4) + + if args['nocolor']: + col = '' + elif args['color']: + col = args['color'] + if type(col) == str and col in Logger.colors_map.keys(): + col = Logger.colors_map[col] + else: + col = Logger.colors_dict.setdefault(mode, Logger.colors_map['grey']) + + prefix = '' + if mode: + mode = '[%s] ' % mode + + if not args['noprefix']: + if args['nocolor']: + prefix = mode.upper() + else: + prefix = Logger.with_color(Logger.colors_dict['other'], '%s' + % (mode.upper())) + + nl = '' + if 'newline' in args: + if args['newline']: + nl = '\n' + + if 'force_stdout' in args: + fd = sys.stdout + + if type(fd) == str: + with open(fd, 'a') as f: + prefix2 = '' + if mode: + prefix2 = '%s' % (mode.upper()) + f.write(prefix2 + txt + nl) + f.flush() + + else: + if args['nocolor']: + fd.write(prefix + txt + nl) + else: + fd.write(prefix + Logger.with_color(col, txt) + nl) + + # Info shall be used as an ordinary logging facility, for every desired output. + def info(self, txt, forced = False, **kwargs): + kwargs['nocolor'] = self.options['nocolor'] + if forced or (self.options['verbose'] or \ + self.options['debug'] ) \ + or (type(self.options['log']) == str and self.options['log'] != 'none'): + Logger.out(txt, self.options['log'], 'info', **kwargs) + + def text(self, txt, **kwargs): + kwargs['noPrefix'] = True + kwargs['nocolor'] = self.options['nocolor'] + Logger.out(txt, self.options['log'], '', **kwargs) + + def dbg(self, txt, **kwargs): + if self.options['debug']: + if self.options['format'] == 'html': + txt = f'' + + kwargs['nocolor'] = self.options['nocolor'] + Logger.out(txt, self.options['log'], 'debug', **kwargs) + + def err(self, txt, **kwargs): + kwargs['nocolor'] = self.options['nocolor'] + Logger.out(txt, self.options['log'], 'error', **kwargs) + + def fatal(self, txt, **kwargs): + kwargs['nocolor'] = self.options['nocolor'] + Logger.out(txt, self.options['log'], 'error', **kwargs) + os._exit(1) + +logger = Logger(options) + +class Verstring(object): + def __init__(self, name, date, *versions): + self.name = name + self.date = date + self.version = versions[0].split(' ')[0] + + def __eq__(self, other): + if isinstance(other, Verstring): + return packaging.version.parse(self.version) == packaging.version.parse(other.version) \ + and self.name == other.name + elif isinstance(other, str): + return packaging.version.parse(self.version) == packaging.version.parse(other) + + def __lt__(self, other): + return packaging.version.parse(self.version) < packaging.version.parse(other.version) + + def __str__(self): + return f'{self.name}; {self.date}; {self.version}' + + +class SMTPHeadersAnalysis: + bad_keywords = ( + 'gophish', 'phishingfrenzy', 'frenzy', 'king-phisher', 'phisher', + 'speedphishing', + ) + + Dodgy_User_Names = ( + 'action', 'postmaster', 'root', 'admin', 'administrator', 'offer', + 'test', 'it', 'account', 'hr', 'job', 'relay', 'robot', 'help', 'catchall', + 'guest', 'spam', 'abuse', 'all', 'contact', 'nobody', 'auto', 'db', 'web', + ) + + Header_Keywords_That_May_Contain_Spam_Info = ( + 'spam', 'phishing', 'bulk', 'attack', 'defend', 'assassin', 'virus', 'scan', 'mimecast', + 'ironport', 'forefront', '360totalsecurity', 'acronis', 'adaware', 'adsbot-google', + 'aegislab', 'ahnlab', 'altavista', 'anti-virus', 'antivirus', 'antiy', 'apexone', + 'appengine-google', 'arcabit', 'avast', 'avg', 'avira', 'baidu', 'baiduspider', + 'barracuda', 'bingbot', 'bitdefender', 'bitdefender', 'bluvector', 'carbon', + 'carbonblack', 'check point', 'checkpoint', 'clamav', 'code42', 'comodo', 'countercept', + 'countertack', 'crowdstrike', 'crowdstrike', 'curl', 'cybereason', 'cybereason', + 'cylance', 'cylance', 'cynet360', 'cyren', 'defender', 'druva', 'drweb', 'duckduckbot', + 'egambit', 'emsisoft', 'emsisoft', 'encase', 'endgame', 'endgame', 'ensilo', 'escan', + 'eset', 'exabot', 'f-secure', 'facebookexternalhit', 'falcon', 'fidelis', 'fireeye', + 'forcepoint', 'fortigate', 'fortil', 'fortinet', 'gdata', 'gdata', 'googlebot', + 'gravityzone', 'huntress', 'ia_archiver', 'ikarussecurity', 'ivanti', 'juniper', + 'k7antivirus', 'k7computing', 'kaspersky', 'kingsoft', 'lightcyber', 'lynx', + 'malwarebytes', 'mcafee', 'mj12bot', 'msnbot', 'nanoav', 'netwitness', 'paloalto', + 'paloaltonetworks', 'panda', 'proofpoint', 'python-urllib', 'scanner', 'scanning', + 'secureage', 'secureworks', 'security', 'sentinelone', 'sentinelone', 'simplepie', + 'slackbot-linkexpanding', 'slurp', 'sogou', 'sonicwall', 'sophos', 'superantispyware', + 'symantec', 'tachyon', 'tencent', 'totaldefense', 'trapmine', 'trend micro', 'trendmicro', + 'trusteer', 'trustlook', 'virusblokada', 'virustotal', 'virustotalcloud', 'webroot', + 'yandex', 'yandexbot', 'zillya', 'zonealarm', 'zscaler', '-sea-', 'perlmx', 'trustwave', + 'mailmarshal', 'tmase', 'startscan', 'fe-etp', 'jemd', 'suspicious', 'grey', 'infected', 'unscannable', + 'dlp-', 'sanitize', 'mailscan', 'barracuda', 'clearswift', 'messagelabs', 'msw-jemd', 'fe-etp', 'symc-ess', + 'starscan', 'mailcontrol', + ) + + Interesting_Headers = ( + 'mailgun', 'sendgrid', 'mailchimp', 'x-ses', 'x-avas', 'X-Gmail-Labels', 'X-vrfbldomain', + 'mandrill', 'bulk', 'sendinblue', 'amazonses', 'mailjet', 'postmark', 'postfix', 'dovecot', 'roundcube', + 'seg', '-IP', 'crosspremises', 'brightmail', 'check', 'exim', 'postfix', 'exchange', 'microsoft', 'office365', + 'dovecot', 'sendmail', 'score', 'report', 'status', 'benchmarkemail', 'bronto', 'X-Complaints-To', + 'X-Roving-ID', 'X-DynectEmail-Msg', 'X-elqPod', 'X-EMV-MemberId', 'e2ma', 'fishbowl', 'eloop', 'X-Google-Appengine-App-Id', + 'X-ICPINFO', 'x-locaweb-id', 'X-MC-User', 'mailersend', 'MailiGen', 'Mandrill', 'MarketoID', 'X-Messagebus-Info', + 'Mixmax', 'X-PM-Message-Id', 'postmark', 'X-rext', 'responsys', 'X-SFDC-User', 'salesforce', 'x-sg-', 'x-sendgrid-', + 'silverpop', '.mkt', 'X-SMTPCOM-Tracking-Number', 'X-vrfbldomain', 'verticalresponse', + 'yesmail', + ) + + Headers_Known_For_Breaking_Line = ( + 'Received', + 'Authentication-Results', + 'Received-SPF', + 'DKIM-Signature', + 'X-Google-DKIM-Signature', + 'X-GM-Message-State', + 'Subject', + 'X-MS-Exchange-Organization-ExpirationStartTime', + 'X-MS-Exchange-Organization-Network-Message-Id', + 'X-Forefront-Antispam-Report', + 'X-MS-Exchange-CrossTenant-OriginalArrivalTime', + 'X-Microsoft-Antispam-Mailbox-Delivery', + 'X-Microsoft-Antispam-Message-Info' + ) + + # + # This array will be (partially) dynamically adjusted by the script by SMTPHeadersAnalysis.getHeader method. + # + # Add here header names that are processed by the script, but not passed to `getHeader` method + # in order to skip them from "Other Interesting Headers" sweep scan. + # + Handled_Spam_Headers = [ + 'X-Forefront-Antispam-Report', + 'X-Exchange-Antispam', + 'X-Exchange-Antispam-Mailbox-Delivery', + 'X-Exchange-Antispam-Message-Info', + 'X-Microsoft-Antispam-Report-CFA-Test', + ] + + auth_result = { + 'none': 'The message was not signed.', + 'pass': logger.colored('The message was signed, the signature or signatures were acceptable to the ADMD, and the signature(s) passed verification tests.', 'green'), + 'fail': logger.colored('The message was signed and the signature or signatures were acceptable to the ADMD, but they failed the verification test(s).', 'red'), + 'policy': 'The message was signed, but some aspect of the signature or signatures was not acceptable to the ADMD.', + 'neutral': logger.colored('The message was signed, but the signature or signatures contained syntax errors or were not otherwise able to be processed.', 'magenta'), + 'temperror': logger.colored('The message could not be verified due to some error that is likely transient in nature, such as a temporary inability to retrieve a public key.', 'red'), + 'permerror': logger.colored('The message could not be verified due to some error that is unrecoverable, such as a required header field being absent.', 'red'), + } + + IronPort_AV = { + 'i' : ( + 'Version Information', + ( + 'Product Version', + 'Number of IDEs', + 'IDE Serial ' + ) + ), + + 'E' : ( + 'AV scanning engine', + '' + ), + + 'e' : ( + 'Errors', + { + "i" : 'ignored', + "u" : logger.colored('unscannable', 'red'), + "e" : 'encrypted', + "t" : 'timeout', + "f" : 'fatal', + "j" : 'savi-bug (ignored)', + "s" : 'savi-bug (unscannable)', + "z" : 'unknown', + } + ), + + 'v' : ( + 'Virus List', + ( + 'extension', + 'type code list' + ) + ), + + 'd' : ( + 'File details', + ( + 'extension', + 'type code list' + ) + ), + + 'a' : ( + 'Message actions', + { + '_map' : { + 'N' : 'notification', + 'H' : 'headers', + 'T' : 'time', + ':' : 'action' + }, + + 'action' : { + "a" : 'archived ?', + "s" : logger.colored('sent', 'green'), + "d" : logger.colored('dropped', 'red'), + "f" : 'forwarded', + "x" : 'certain errors (timed-out, rpc conn fails, etc)', + }, + + 'notification' : { + "s" : 'sender', + "r" : 'recipient', + "o" : 'other', + }, + + 'headers' : { + "s" : 'subject modified', + "h" : 'custom header modified', + }, + + 'time' : { + }, + } + ) + } + + Aterisk_Risk_Score = { + '*' : logger.colored('lowest risk associated', 'green'), + '**' : logger.colored('low risk associated', 'green'), + '***' : logger.colored('moderately low risk associated', 'yellow'), + '****' : logger.colored('moderately high risk associated', 'yellow'), + '*****' : logger.colored('high risk associated', 'red'), + '******' : logger.colored('highest risk associated', 'red'), + } + + AMP_Results = { + 'CLEAN' : logger.colored('No malware detected.', "green"), + 'MALICIOUS' : logger.colored('Malware detected.', "red"), + 'UNKNOWN' : logger.colored('Could not categorize the message.', "magenta"), + 'UNSCANNABLE' : logger.colored('Could not scan the message.', "yellow"), + } + + Forefront_Antispam_Report = { + 'ARC' : ( + 'ARC Protocol', + { + 'AAR': 'Records the content of the Authentication-results header from DMARC.', + 'AMS': 'Includes cryptographic signatures of the message.', + 'AS': 'Includes cryptographic signatures of the message headers' + } + ), + + 'CAT' : ( + 'The category of protection policy', + { + 'BULK': logger.colored('Bulk', 'red'), + 'DIMP': logger.colored('Domain Impersonation', 'red'), + 'GIMP': logger.colored('Mailbox intelligence based impersonation', 'red'), + 'HPHSH': logger.colored('High confidence phishing', 'red'), + 'HPHISH': logger.colored('High confidence phishing', 'red'), + 'HSPM': logger.colored('High confidence spam', 'red'), + 'MALW': logger.colored('Malware', 'red'), + 'PHSH': logger.colored('Phishing', 'red'), + 'SPM': logger.colored('Spam', 'red'), + 'SPOOF': logger.colored('Spoofing', 'red'), + 'UIMP': logger.colored('User Impersonation', 'red'), + 'AMP': logger.colored('Anti-malware', 'red'), + 'SAP': logger.colored('Safe attachments', 'green'), + 'OSPM': logger.colored('Outbound spam', 'red'), + 'NONE': logger.colored('Clean message', 'green'), + } + ), + + 'CTRY' : ( + 'The source country as determined by the connecting IP address', + '' + ), + + 'H' : ( + 'The HELO or EHLO string of the connecting email server.', + '' + ), + + 'IPV' : ( + 'Ingress Peer Verification status', + { + 'CAL' : logger.colored('Source IP address was Configured in Allowed List (CAL)', 'green'), + 'NLI' : 'The IP address was not found on any IP reputation list.', + } + ), + + 'EFV' : ( + 'Egress F(?) Verification status', + { + 'CAL' : logger.colored('Source IP address was Configured in Allowed List (CAL)', 'green'), + 'NLI' : 'The IP address was not found on any IP reputation list.', + } + ), + + 'DIR' : ( + 'Direction of email verification', + { + 'INB' : 'Inbound email verification', + 'OUT' : 'Outbound email verification', + 'OUB' : 'Outbound email verification', + 'OTB' : 'Outbound email verification', + } + ), + + 'LANG' : ( + 'The language in which the message was written', + '' + ), + + 'PTR' : ( + 'Reverse DNS of the Connecting IP peer\'s address', + '' + ), + + 'SFTY' : ( + 'The message was identified as phishing', + { + '9.19': logger.colored('Domain impersonation. The sending domain is attempting to impersonate a protected domain', 'red'), + + '9.20' : logger.colored('User impersonation. The sending user is attempting to impersonate a user in the recipient\'s organization', 'red'), + } + ), + + 'SRV' : ( + 'Bulk Email analysis results', + { + 'BULK' : logger.colored('The message was identified as bulk email by spam filtering and the bulk complaint level (BCL) threshold', 'red'), + } + ), + + 'SFV' : ( + 'Message Filtering', + { + 'BLK' : logger.colored('Filtering was skipped and the message was blocked because it was sent from an address in a user\'s Blocked Senders list.', 'red'), + 'NSPM' : logger.colored('Spam filtering marked the message as non-spam and the message was sent to the intended recipients.', 'green'), + 'SFE' : logger.colored('Filtering was skipped and the message was allowed because it was sent from an address in a user\'s Safe Senders list.', 'green'), + 'SKA' : logger.colored('The message skipped spam filtering and was delivered to the Inbox because the sender was in the allowed senders list or allowed domains list in an anti-spam policy.', 'green'), + 'SKB' : logger.colored('The message was marked as spam because it matched a sender in the blocked senders list or blocked domains list in an anti-spam policy.', 'red'), + 'SKI' : 'Similar to SFV:SKN, the message skipped spam filtering for another reason (for example, an intra-organizational email within a tenant).', + 'SKN' : logger.colored('The message was marked as non-spam prior to being processed by spam filtering. For example, the message was marked as SCL -1 or Bypass spam filtering by a mail flow rule.', 'green'), + 'SKQ' : logger.colored('The message was released from the quarantine and was sent to the intended recipients.', 'cyan'), + 'SKS' : logger.colored('The message was marked as spam prior to being processed by spam filtering. For example, the message was marked as SCL 5 to 9 by a mail flow rule.', 'red'), + 'SPM' : logger.colored('The message was marked as spam by spam filtering.', 'red'), + } + ), + } + + Barracuda_Score_Thresholds = [ + [0.0, 2.99, logger.colored('Delivered to Inbox', 'green')], + [3.0, 4.99, logger.colored('Delivered to Inbox. Subject line tagged with [Suspected SPAM]', 'yellow')], + [5.0, 6.99, logger.colored('Delivered to Barracuda Quarantine Inbox', 'red')], + [7.0, 10.0, logger.colored('Blocked from delivery', 'red')], + ] + + Barracuda_Aggressive_Score_Thresholds = [ + [0.0, 1.99, logger.colored('Delivered to Inbox', 'green')], + [2.0, 3.49, logger.colored('Delivered to Inbox. Subject line tagged with [SPAM?]', 'yellow')], + [3.5, 5.00, logger.colored('Delivered to Barracuda Quarantine Inbox', 'red')], + [5.1, 10.0, logger.colored('Blocked from delivery', 'red')], + ] + + Trend_Type_AntiSpam = { + 1 : logger.colored('Spam', 'red'), + 2 : logger.colored('Phishing', 'red'), + } + + Spam_Diagnostics_Metadata = { + 'NSPM' : logger.colored('Not Spam', 'green'), + 'SPAM' : logger.colored('SPAM', 'red'), + } + + + # + # Below rules were collected solely in a trial-and-error manner or by scraping any + # pieces of information from all around the Internet. + # + # They do not represent the actual Anti-Spam rule name or context and surely represent + # something close to what is understood (or they may have totally different meaning). + # + # Until we'll be able to review anti-spam rules documention, there is no viable mean to map + # rule ID to its meaning. + # + + Anti_Spam_Rules_ReverseEngineered = \ + { + '35100500006' : logger.colored('(SPAM) Message contained embedded image.', 'red'), + + # https://docs.microsoft.com/en-us/answers/questions/416100/what-is-meanings-of-39x-microsoft-antispam-mailbox.html + '520007050' : logger.colored('(SPAM) Moved message to Spam and created Email Rule to move messages from this particular sender to Junk.', 'red'), + + # triggered on an empty mail with subject being: "test123 - viagra" + '162623004' : 'Subject line contained suspicious words (like Viagra).', + + # triggered on mail with subject "test123" and body being single word "viagra" + '19618925003' : 'Mail body contained suspicious words (like Viagra).', + + # triggered on mail with empty body and subject "Click here" + '28233001' : 'Subject line contained suspicious words luring action (ex. "Click here"). ', + + # triggered on a mail with test subject and 1500 words of http://nietzsche-ipsum.com/ + '30864003' : 'Mail body contained a lot of text (more than 10.000 characters).', + + # mails that had simple message such as "Hello world" triggered this rule, whereas mails with + # more than 150 words did not. + '564344004' : 'HTML mail body with less than 150 words of text (not sure how much less though)', + + # message was sent with a basic html and only one tag in body. + '67856001' : 'HTML mail body contained underline tag.', + + # message with html,head,body and body containing simple text with no b/i/u formatting. + '579124003' : 'HTML mail body contained text, but no text formatting (, , ) was present', + + # This is a strong signal. Mails without doesnt have this rule. + '166002' : 'HTML mail body contained URL link.', + + # Message contained tag with URL containing GET parameter: ex. href="https://foo.bar/file?aaa=bbb"', + + # Message contained tag with URL containing GET parameter with value of another URL: ex. href="https://foo.bar/file?aaa=https://baz.xyz/"', + + # Message contained with href pointing to a file with dangerous extension, such as file.exe + '460985005' : 'Mail body contained HTML tag with href URL pointing to a file with dangerous extension (such as .exe)', + + # + # Message1: GoPhish -> VPS 587/tcp redirector -> smtp.gmail.com:587 -> target + # Message2: GoPhish -> VPS 587/tcp redirector -> smtp-relay.gmail.com:587 -> target + # + # These were the only differences I spotted: + # Message1 - FirstHop Gmail SMTP Received with ESMTPS. + # Message2 - FirstHop Gmail SMTP-Relay Received with ESMTPSA. + # + '121216002' : 'First Hop MTA SMTP Server used as a SMTP Relay. It\'s known to originate e-mails, but here it acted as a Relay. Or maybe due to use of "with ESMTPSA" instead of ESMTPS?', + + } + + ForeFront_Spam_Confidence_Levels = { + -1 : (False, logger.colored('The message skipped spam filtering. WHITELISTED.', 'green')), + 0 : (False, logger.colored('Spam filtering determined the message was not spam.', 'green')), + 1 : (False, 'The message skipped spam filtering'), + 5 : (True, logger.colored('Spam filtering marked the message as Spam', 'red')), + 6 : (True, logger.colored('Spam filtering marked the message as Spam', 'red')), + 9 : (True, logger.colored('Spam filtering marked the message as High confidence spam', 'red')), + } + + ForeFront_Phishing_Confidence_Levels = { + 1 : (False, 'The message content isn\'t likely to be phishing'), + 2 : (False, 'The message content isn\'t likely to be phishing'), + 3 : (False, 'The message content isn\'t likely to be phishing'), + 4 : (True, logger.colored('The message content is likely to be phishing.', 'red')), + 5 : (True, logger.colored('The message content is likely to be phishing.', 'red')), + 6 : (True, logger.colored('The message content is likely to be phishing.', 'red')), + 7 : (True, logger.colored('The message content is likely to be phishing.', 'red')), + 8 : (True, logger.colored('The message content is likely to be phishing.', 'red')), + } + + ForeFront_Bulk_Confidence_Levels = { + 0 : logger.colored('The message isn\'t from a bulk sender.', 'green'), + 1 : logger.colored('The message is from a bulk sender that generates few complaints.', 'magenta'), + 2 : logger.colored('The message is from a bulk sender that generates few complaints.', 'magenta'), + 3 : logger.colored('The message is from a bulk sender that generates few complaints.', 'magenta'), + 4 : logger.colored('The message is from a bulk sender that generates a mixed number of complaints.', 'red'), + 5 : logger.colored('The message is from a bulk sender that generates a mixed number of complaints.', 'red'), + 6 : logger.colored('The message is from a bulk sender that generates a mixed number of complaints.', 'red'), + 7 : logger.colored('The message is from a bulk sender that generates a mixed number of complaints.', 'red'), + 8 : logger.colored('The message is from a bulk sender that generates a high number of complaints.', 'red'), + 9 : logger.colored('The message is from a bulk sender that generates a high number of complaints.', 'red'), + } + + ATP_Message_Properties = { + 'SA' : 'Safe Attachments Protection', + 'SL' : 'Safe Links Protection', + } + + TLCOOBClassifiers = { + 'OLM' : ( + '', + { + + } + ) + } + + SEA_Spam_Fields = { + 'gauge' : 'Spam Message Gauge result', + 'probability' : 'Spam Probability (100% - certain spam)', + 'report' : 'Anti-Spam rules that matched the message along with their probability', + } + + SpamAssassin_Spam_Status = ( + 'SpamAssassin spam evaluation status report', + { + '_result' : 'Whether the message is Spam', + 'score' : 'Total score for the message (negative if whitelisted)', + 'required' : 'The score that would be required to be classed as spam', + 'tests' : 'List of tests that returned non-zero value', + 'autolearn' : 'Whether autolearn learned the message as spam or ham', + 'version' : 'Version of SpamAssassin used', + 'hits' : 'Number of characteristics considering this message as Spam', + 'tagged_above' : 'Tag message with SpamAssassin report if above threshold', + } + ) + + Cisco_Predefined_MailFlow_Policies = { + '$TRUSTED' : logger.colored('Mails from this sender are TRUSTED and will not be scanned by Anti-Spam or Anti-Virus.', 'green'), + '$BLOCKED' : logger.colored('Mails from this sender are BLOCKED', 'red'), + '$THROTTLED' : logger.colored('Mails from this sender are slowed down because they were considered suspicious. Messages will be scanned.', 'magenta'), + '$ACCEPTED' : logger.colored('Mail flow policies were undecided about the sender so they accepted the message. Message will be scanned and reputation evaluated.', 'green'), + } + + Forefront_Antispam_Delivery = { + 'dest' : ( + 'Destination where message should be placed', + { + 'I' : logger.colored('Inbox directory', 'green'), + 'J' : logger.colored('JUNK directory', 'red'), + } + ), + + 'auth' : ( + 'Message originating from Authenticated sender', + { + '0' : 'Not Authenticated', + '1' : 'Authenticated', + } + ), + + 'ucf' : ( + 'User Custom Flow (?) - custom mail flow rule applied on message?', + { + '0' : 'No user custom mail rule applied.', + '1' : 'User custom mail rule applied.', + } + ), + + 'jmr' : ( + 'Junk Mail Rule (?) - mail considered as Spam by previous, existing mail rules?', + { + '0' : logger.colored('Mail is not a Junk', 'green'), + '1' : logger.colored('Mail is a Junk', 'red'), + } + ), + + 'OFR' : ( + 'Folder Rules applied to this Message', + { + 'ExclusiveSettings' : '', + 'CustomRules' : 'An existing folder move rule was applied on this message.', + } + ), + + 'RF' : ( + 'Email Rules', + { + 'JunkEmail' : logger.colored('Mail marked as Junk and moved to Junk folder', 'red'), + } + ), + } + + + # https://docs.microsoft.com/en-us/exchange/new-features/build-numbers-and-release-dates?view=exchserver-2019 + Exchange_Versions = ( + Verstring('Exchange Server 4.0 SP5 ', 'May 5, 1998', '4.0.996'), + Verstring('Exchange Server 4.0 SP4 ', 'March 28, 1997', '4.0.995'), + Verstring('Exchange Server 4.0 SP3 ', 'October 29, 1996', '4.0.994'), + Verstring('Exchange Server 4.0 SP2 ', 'July 19, 1996', '4.0.993'), + Verstring('Exchange Server 4.0 SP1 ', 'May 1, 1996', '4.0.838'), + Verstring('Exchange Server 4.0 Standard Edition', 'June 11, 1996', '4.0.837'), + Verstring('Exchange Server 5.0 SP2 ', 'February 19, 1998', '5.0.1460'), + Verstring('Exchange Server 5.0 SP1 ', 'June 18, 1997', '5.0.1458'), + Verstring('Exchange Server 5.0 ', 'May 23, 1997', '5.0.1457'), + Verstring('Exchange Server version 5.5 SP4 ', 'November 1, 2000', '5.5.2653'), + Verstring('Exchange Server version 5.5 SP3 ', 'September 9, 1999', '5.5.2650'), + Verstring('Exchange Server version 5.5 SP2 ', 'December 23, 1998', '5.5.2448'), + Verstring('Exchange Server version 5.5 SP1 ', 'August 5, 1998', '5.5.2232'), + Verstring('Exchange Server version 5.5 ', 'February 3, 1998', '5.5.1960'), + Verstring('Exchange 2000 Server post-SP3', 'August 2008', '6.0.6620.7'), + Verstring('Exchange 2000 Server post-SP3', 'March 2008', '6.0.6620.5'), + Verstring('Exchange 2000 Server post-SP3', 'August 2004', '6.0.6603'), + Verstring('Exchange 2000 Server post-SP3', 'April 2004', '6.0.6556'), + Verstring('Exchange 2000 Server post-SP3', 'September 2003', '6.0.6487'), + Verstring('Exchange 2000 Server SP3', 'July 18, 2002', '6.0.6249'), + Verstring('Exchange 2000 Server SP2', 'November 29, 2001', '6.0.5762'), + Verstring('Exchange 2000 Server SP1', 'June 21, 2001', '6.0.4712'), + Verstring('Exchange 2000 Server', 'November 29, 2000', '6.0.4417'), + Verstring('Exchange Server 2003 post-SP2', 'August 2008', '6.5.7654.4'), + Verstring('Exchange Server 2003 post-SP2', 'March 2008', '6.5.7653.33'), + Verstring('Exchange Server 2003 SP2', 'October 19, 2005', '6.5.7683'), + Verstring('Exchange Server 2003 SP1', 'May25, 2004', '6.5.7226'), + Verstring('Exchange Server 2003', 'September 28, 2003', '6.5.6944'), + Verstring('Update Rollup 5 for Exchange Server 2007 SP2', 'December 7, 2010', '8.2.305.3', '8.02.0305.003'), + Verstring('Update Rollup 4 for Exchange Server 2007 SP2', 'April 9, 2010', '8.2.254.0', '8.02.0254.000'), + Verstring('Update Rollup 3 for Exchange Server 2007 SP2', 'March 17, 2010', '8.2.247.2', '8.02.0247.002'), + Verstring('Update Rollup 2 for Exchange Server 2007 SP2', 'January 22, 2010', '8.2.234.1', '8.02.0234.001'), + Verstring('Update Rollup 1 for Exchange Server 2007 SP2', 'November 19, 2009', '8.2.217.3', '8.02.0217.003'), + Verstring('Exchange Server 2007 SP2', 'August 24, 2009', '8.2.176.2', '8.02.0176.002'), + Verstring('Update Rollup 10 for Exchange Server 2007 SP1', 'April 13, 2010', '8.1.436.0', '8.01.0436.000'), + Verstring('Update Rollup 9 for Exchange Server 2007 SP1', 'July 16, 2009', '8.1.393.1', '8.01.0393.001'), + Verstring('Update Rollup 8 for Exchange Server 2007 SP1', 'May 19, 2009', '8.1.375.2', '8.01.0375.002'), + Verstring('Update Rollup 7 for Exchange Server 2007 SP1', 'March 18, 2009', '8.1.359.2', '8.01.0359.002'), + Verstring('Update Rollup 6 for Exchange Server 2007 SP1', 'February 10, 2009', '8.1.340.1', '8.01.0340.001'), + Verstring('Update Rollup 5 for Exchange Server 2007 SP1', 'November 20, 2008', '8.1.336.1', '8.01.0336.01'), + Verstring('Update Rollup 4 for Exchange Server 2007 SP1', 'October 7, 2008', '8.1.311.3', '8.01.0311.003'), + Verstring('Update Rollup 3 for Exchange Server 2007 SP1', 'July 8, 2008', '8.1.291.2', '8.01.0291.002'), + Verstring('Update Rollup 2 for Exchange Server 2007 SP1', 'May 9, 2008', '8.1.278.2', '8.01.0278.002'), + Verstring('Update Rollup 1 for Exchange Server 2007 SP1', 'February 28, 2008', '8.1.263.1', '8.01.0263.001'), + Verstring('Exchange Server 2007 SP1', 'November 29, 2007', '8.1.240.6', '8.01.0240.006'), + Verstring('Update Rollup 7 for Exchange Server 2007', 'July 8, 2008', '8.0.813.0', '8.00.0813.000'), + Verstring('Update Rollup 6 for Exchange Server 2007', 'February 21, 2008', '8.0.783.2', '8.00.0783.002'), + Verstring('Update Rollup 5 for Exchange Server 2007', 'October 25, 2007', '8.0.754.0', '8.00.0754.000'), + Verstring('Update Rollup 4 for Exchange Server 2007', 'August 23, 2007', '8.0.744.0', '8.00.0744.000'), + Verstring('Update Rollup 3 for Exchange Server 2007', 'June 28, 2007', '8.0.730.1', '8.00.0730.001'), + Verstring('Update Rollup 2 for Exchange Server 2007', 'May 8, 2007', '8.0.711.2', '8.00.0711.002'), + Verstring('Update Rollup 1 for Exchange Server 2007', 'April 17, 2007', '8.0.708.3', '8.00.0708.003'), + Verstring('Exchange Server 2007 RTM', 'March 8, 2007', '8.0.685.25 8.00.0685.025'), + Verstring('Update Rollup 23 for Exchange Server 2007 SP3', 'March 21, 2017', '8.3.517.0', '8.03.0517.000'), + Verstring('Update Rollup 22 for Exchange Server 2007 SP3', 'December 13, 2016', '8.3.502.0', '8.03.0502.000'), + Verstring('Update Rollup 21 for Exchange Server 2007 SP3', 'September 20, 2016', '8.3.485.1', '8.03.0485.001'), + Verstring('Update Rollup 20 for Exchange Server 2007 SP3', 'June 21, 2016', '8.3.468.0', '8.03.0468.000'), + Verstring('Update Rollup 19 forExchange Server 2007 SP3', 'March 15, 2016', '8.3.459.0', '8.03.0459.000'), + Verstring('Update Rollup 18 forExchange Server 2007 SP3', 'December, 2015', '8.3.445.0', '8.03.0445.000'), + Verstring('Update Rollup 17 forExchange Server 2007 SP3', 'June 17, 2015', '8.3.417.1', '8.03.0417.001'), + Verstring('Update Rollup 16 for Exchange Server 2007 SP3', 'March 17, 2015', '8.3.406.0', '8.03.0406.000'), + Verstring('Update Rollup 15 for Exchange Server 2007 SP3', 'December 9, 2014', '8.3.389.2', '8.03.0389.002'), + Verstring('Update Rollup 14 for Exchange Server 2007 SP3', 'August 26, 2014', '8.3.379.2', '8.03.0379.002'), + Verstring('Update Rollup 13 for Exchange Server 2007 SP3', 'February 24, 2014', '8.3.348.2', '8.03.0348.002'), + Verstring('Update Rollup 12 for Exchange Server 2007 SP3', 'December 9, 2013', '8.3.342.4', '8.03.0342.004'), + Verstring('Update Rollup 11 for Exchange Server 2007 SP3', 'August 13, 2013', '8.3.327.1', '8.03.0327.001'), + Verstring('Update Rollup 10 for Exchange Server 2007 SP3', 'February 11, 2013', '8.3.298.3', '8.03.0298.003'), + Verstring('Update Rollup 9 for Exchange Server 2007 SP3', 'December 10, 2012', '8.3.297.2', '8.03.0297.002'), + Verstring('Update Rollup 8-v3 for Exchange Server 2007 SP3 ', 'November 13, 2012', '8.3.279.6', '8.03.0279.006'), + Verstring('Update Rollup 8-v2 for Exchange Server 2007 SP3 ', 'October 9, 2012', '8.3.279.5', '8.03.0279.005'), + Verstring('Update Rollup 8 for Exchange Server 2007 SP3', 'August 13, 2012', '8.3.279.3', '8.03.0279.003'), + Verstring('Update Rollup 7 for Exchange Server 2007 SP3', 'April 16, 2012', '8.3.264.0', '8.03.0264.000'), + Verstring('Update Rollup 6 for Exchange Server 2007 SP3', 'January 26, 2012', '8.3.245.2', '8.03.0245.002'), + Verstring('Update Rollup 5 for Exchange Server 2007 SP3', 'September 21, 2011', '8.3.213.1', '8.03.0213.001'), + Verstring('Update Rollup 4 for Exchange Server 2007 SP3', 'May 28, 2011', '8.3.192.1', '8.03.0192.001'), + Verstring('Update Rollup 3-v2 for Exchange Server 2007 SP3 ', 'March 30, 2011', '8.3.159.2', '8.03.0159.002'), + Verstring('Update Rollup 2 for Exchange Server 2007 SP3', 'December 10, 2010', '8.3.137.3', '8.03.0137.003'), + Verstring('Update Rollup 1 for Exchange Server 2007 SP3', 'September 9, 2010', '8.3.106.2', '8.03.0106.002'), + Verstring('Exchange Server 2007 SP3', 'June 7, 2010', '8.3.83.6', '8.03.0083.006'), + Verstring('Update Rollup 8 for Exchange Server 2010 SP2', 'December 9, 2013', '14.2.390.3 14.02.0390.003'), + Verstring('Update Rollup 7 for Exchange Server 2010 SP2', 'August 3, 2013', '14.2.375.0 14.02.0375.000'), + Verstring('Update Rollup 6 Exchange Server 2010 SP2', 'February 12, 2013', '14.2.342.3 14.02.0342.003'), + Verstring('Update Rollup 5 v2 for Exchange Server 2010 SP2 ', 'December 10, 2012', '14.2.328.10 14.02.0328.010'), + Verstring('Update Rollup 5 for Exchange Server 2010 SP2', 'November 13, 2012', '14.3.328.5 14.03.0328.005'), + Verstring('Update Rollup 4 v2 for Exchange Server 2010 SP2 ', 'October 9, 2012', '14.2.318.4 14.02.0318.004'), + Verstring('Update Rollup 4 for Exchange Server 2010 SP2', 'August 13, 2012', '14.2.318.2 14.02.0318.002'), + Verstring('Update Rollup 3 for Exchange Server 2010 SP2', 'May 29, 2012', '14.2.309.2 14.02.0309.002'), + Verstring('Update Rollup 2 for Exchange Server 2010 SP2', 'April 16, 2012', '14.2.298.4 14.02.0298.004'), + Verstring('Update Rollup 1 for Exchange Server 2010 SP2', 'February 13, 2012', '14.2.283.3 14.02.0283.003'), + Verstring('Exchange Server 2010 SP2', 'December 4, 2011', '14.2.247.5 14.02.0247.005'), + Verstring('Update Rollup 8 for Exchange Server 2010 SP1', 'December 10, 2012', '14.1.438.0 14.01.0438.000'), + Verstring('Update Rollup 7 v3 for Exchange Server 2010 SP1 ', 'November 13, 2012', '14.1.421.3 14.01.0421.003'), + Verstring('Update Rollup 7 v2 for Exchange Server 2010 SP1 ', 'October 10, 2012', '14.1.421.2 14.01.0421.002'), + Verstring('Update Rollup 7 for Exchange Server 2010 SP1', 'August 8, 2012', '14.1.421.0 14.01.0421.000'), + Verstring('Update Rollup 6 for Exchange Server 2010 SP1', 'October 27, 2011', '14.1.355.2 14.01.0355.002'), + Verstring('Update Rollup 5 for Exchange Server 2010 SP1', 'August 23, 2011', '14.1.339.1 14.01.0339.001'), + Verstring('Update Rollup 4 for Exchange Server 2010 SP1', 'July 27, 2011', '14.1.323.6 14.01.0323.006'), + Verstring('Update Rollup 3 for Exchange Server 2010 SP1', 'April 6, 2011', '14.1.289.7 14.01.0289.007'), + Verstring('Update Rollup 2 for Exchange Server 2010 SP1', 'December 9, 2010', '14.1.270.1 14.01.0270.001'), + Verstring('Update Rollup 1 for Exchange Server 2010 SP1', 'October 4, 2010', '14.1.255.2 14.01.0255.002'), + Verstring('Exchange Server 2010 SP1', 'August 23, 2010', '14.1.218.15 14.01.0218.015'), + Verstring('Update Rollup 5 for Exchange Server 2010', 'December 13, 2010', '14.0.726.0 14.00.0726.000'), + Verstring('Update Rollup 4 for Exchange Server 2010', 'June 10, 2010', '14.0.702.1 14.00.0702.001'), + Verstring('Update Rollup 3 for Exchange Server 2010', 'April 13, 2010', '14.0.694.0 14.00.0694.000'), + Verstring('Update Rollup 2 for Exchange Server 2010', 'March 4, 2010', '14.0.689.0 14.00.0689.000'), + Verstring('Update Rollup 1 for Exchange Server 2010', 'December 9, 2009', '14.0.682.1 14.00.0682.001'), + Verstring('Exchange Server 2010 RTM', 'November 9, 2009', '14.0.639.21 14.00.0639.021'), + Verstring('Update Rollup 29 for Exchange Server 2010 SP3', 'July 9, 2019', '14.3.468.0 14.03.0468.000'), + Verstring('Update Rollup 28 for Exchange Server 2010 SP3', 'June 7, 2019', '14.3.461.1 14.03.0461.001'), + Verstring('Update Rollup 27 for Exchange Server 2010 SP3', 'April 9, 2019', '14.3.452.0 14.03.0452.000'), + Verstring('Update Rollup 26 for Exchange Server 2010 SP3', 'February 12, 2019', '14.3.442.0 14.03.0442.000'), + Verstring('Update Rollup 25 for Exchange Server 2010 SP3', 'January 8, 2019', '14.3.435.0 14.03.0435.000'), + Verstring('Update Rollup 24 for Exchange Server 2010 SP3', 'September 5, 2018', '14.3.419.0 14.03.0419.000'), + Verstring('Update Rollup 23 for Exchange Server 2010 SP3', 'August 13, 2018', '14.3.417.1 14.03.0417.001'), + Verstring('Update Rollup 22 for Exchange Server 2010 SP3', 'June 19, 2018', '14.3.411.0 14.03.0411.000'), + Verstring('Update Rollup 21 for Exchange Server 2010 SP3', 'May 7, 2018', '14.3.399.2 14.03.0399.002'), + Verstring('Update Rollup 20 for Exchange Server 2010 SP3', 'March 5, 2018', '14.3.389.1 14.03.0389.001'), + Verstring('Update Rollup 19 for Exchange Server 2010 SP3', 'December 19, 2017', '14.3.382.0 14.03.0382.000'), + Verstring('Update Rollup 18 for Exchange Server 2010 SP3', 'July 11, 2017', '14.3.361.1 14.03.0361.001'), + Verstring('Update Rollup 17 for Exchange Server 2010 SP3', 'March 21, 2017', '14.3.352.0 14.03.0352.000'), + Verstring('Update Rollup 16 for Exchange Server 2010 SP3', 'December 13, 2016', '14.3.336.0 14.03.0336.000'), + Verstring('Update Rollup 15 for Exchange Server 2010 SP3', 'September 20, 2016', '14.3.319.2 14.03.0319.002'), + Verstring('Update Rollup 14 for Exchange Server 2010 SP3', 'June 21, 2016', '14.3.301.0 14.03.0301.000'), + Verstring('Update Rollup 13 for Exchange Server 2010 SP3', 'March 15, 2016', '14.3.294.0 14.03.0294.000'), + Verstring('Update Rollup 12 for Exchange Server 2010 SP3', 'December 15, 2015', '14.3.279.2 14.03.0279.002'), + Verstring('Update Rollup 11 for Exchange Server 2010 SP3', 'September 15, 2015', '14.3.266.2 14.03.0266.002'), + Verstring('Update Rollup 10 for Exchange Server 2010 SP3', 'June 17, 2015', '14.3.248.2 14.03.0248.002'), + Verstring('Update Rollup 9 for Exchange Server 2010 SP3', 'March 17, 2015', '14.3.235.1 14.03.0235.001'), + Verstring('Update Rollup 8 v2 for Exchange Server 2010 SP3 ', 'December 12, 2014', '14.3.224.2 14.03.0224.002'), + Verstring('Update Rollup 8 v1 for Exchange Server 2010 SP3 (recalled) ', 'December 9, 2014', '14.3.224.1 14.03.0224.001'), + Verstring('Update Rollup 7 for Exchange Server 2010 SP3', 'August 26, 2014', '14.3.210.2 14.03.0210.002'), + Verstring('Update Rollup 6 for Exchange Server 2010 SP3', 'May 27, 2014', '14.3.195.1 14.03.0195.001'), + Verstring('Update Rollup 5 for Exchange Server 2010 SP3', 'February 24, 2014', '14.3.181.6 14.03.0181.006'), + Verstring('Update Rollup 4 for Exchange Server 2010 SP3', 'December 9, 2013', '14.3.174.1 14.03.0174.001'), + Verstring('Update Rollup 3 for Exchange Server 2010 SP3', 'November 25, 2013', '14.3.169.1 14.03.0169.001'), + Verstring('Update Rollup 2 for Exchange Server 2010 SP3', 'August 8, 2013', '14.3.158.1 14.03.0158.001'), + Verstring('Update Rollup 1 for Exchange Server 2010 SP3', 'May 29, 2013', '14.3.146.0 14.03.0146.000'), + Verstring('Exchange Server 2010 SP3', 'February 12, 2013', '14.3.123.4 14.03.0123.004'), + Verstring('Exchange Server 2013 CU23', 'June 18, 2019', '15.0.1497.2 15.00.1497.002'), + Verstring('Exchange Server 2013 CU22', 'February 12, 2019', '15.0.1473.3 15.00.1473.003'), + Verstring('Exchange Server 2013 CU21', 'June 19, 2018', '15.0.1395.4 15.00.1395.004'), + Verstring('Exchange Server 2013 CU20', 'March 20, 2018', '15.0.1367.3 15.00.1367.003'), + Verstring('Exchange Server 2013 CU19', 'December 19, 2017', '15.0.1365.1 15.00.1365.001'), + Verstring('Exchange Server 2013 CU18', 'September 19, 2017', '15.0.1347.2 15.00.1347.002'), + Verstring('Exchange Server 2013 CU17', 'June 27, 2017', '15.0.1320.4 15.00.1320.004'), + Verstring('Exchange Server 2013 CU16', 'March 21, 2017', '15.0.1293.2 15.00.1293.002'), + Verstring('Exchange Server 2013 CU15', 'December 13, 2016', '15.0.1263.5 15.00.1263.005'), + Verstring('Exchange Server 2013 CU14', 'September 20, 2016', '15.0.1236.3 15.00.1236.003'), + Verstring('Exchange Server 2013 CU13', 'June 21, 2016', '15.0.1210.3 15.00.1210.003'), + Verstring('Exchange Server 2013 CU12', 'March 15, 2016', '15.0.1178.4 15.00.1178.004'), + Verstring('Exchange Server 2013 CU11', 'December 15, 2015', '15.0.1156.6 15.00.1156.006'), + Verstring('Exchange Server 2013 CU10', 'September 15, 2015', '15.0.1130.7 15.00.1130.007'), + Verstring('Exchange Server 2013 CU9', 'June 17, 2015', '15.0.1104.5 15.00.1104.005'), + Verstring('Exchange Server 2013 CU8', 'March 17, 2015', '15.0.1076.9 15.00.1076.009'), + Verstring('Exchange Server 2013 CU7', 'December 9, 2014', '15.0.1044.25', '15.00.1044.025'), + Verstring('Exchange Server 2013 CU6', 'August 26, 2014', '15.0.995.29 15.00.0995.029'), + Verstring('Exchange Server 2013 CU5', 'May 27, 2014', '15.0.913.22 15.00.0913.022'), + Verstring('Exchange Server 2013 SP1', 'February 25, 2014', '15.0.847.32 15.00.0847.032'), + Verstring('Exchange Server 2013 CU3', 'November 25, 2013', '15.0.775.38 15.00.0775.038'), + Verstring('Exchange Server 2013 CU2', 'July 9, 2013', '15.0.712.24 15.00.0712.024'), + Verstring('Exchange Server 2013 CU1', 'April 2, 2013', '15.0.620.29 15.00.0620.029'), + Verstring('Exchange Server 2013 RTM', 'December 3, 2012', '15.0.516.32 15.00.0516.03'), + Verstring('Exchange Server 2016 CU14', 'September 17, 2019', '15.1.1847.3 15.01.1847.003'), + Verstring('Exchange Server 2016 CU13', 'June 18, 2019', '15.1.1779.2 15.01.1779.002'), + Verstring('Exchange Server 2016 CU12', 'February 12, 2019', '15.1.1713.5 15.01.1713.005'), + Verstring('Exchange Server 2016 CU11', 'October 16, 2018', '15.1.1591.10', '15.01.1591.010'), + Verstring('Exchange Server 2016 CU10', 'June 19, 2018', '15.1.1531.3 15.01.1531.003'), + Verstring('Exchange Server 2016 CU9', 'March 20, 2018', '15.1.1466.3 15.01.1466.003'), + Verstring('Exchange Server 2016 CU8', 'December 19, 2017', '15.1.1415.2 15.01.1415.002'), + Verstring('Exchange Server 2016 CU7', 'September 19, 2017', '15.1.1261.35', '15.01.1261.035'), + Verstring('Exchange Server 2016 CU6', 'June 27, 2017', '15.1.1034.26', '15.01.1034.026'), + Verstring('Exchange Server 2016 CU5', 'March 21, 2017', '15.1.845.34 15.01.0845.034'), + Verstring('Exchange Server 2016 CU4', 'December 13, 2016', '15.1.669.32 15.01.0669.032'), + Verstring('Exchange Server 2016 CU3', 'September 20, 2016', '15.1.544.27 15.01.0544.027'), + Verstring('Exchange Server 2016 CU2', 'June 21, 2016', '15.1.466.34 15.01.0466.034'), + Verstring('Exchange Server 2016 CU1', 'March 15, 2016', '15.1.396.30 15.01.0396.030'), + Verstring('Exchange Server 2016 RTM', 'October 1, 2015', '15.1.225.42 15.01.0225.042'), + Verstring('Exchange Server 2016 Preview', 'July 22, 2015', '15.1.225.16 15.01.0225.016'), + Verstring('Exchange Server 2019 CU3', 'September 17, 2019', '15.2.464.5 15.02.0464.005'), + Verstring('Exchange Server 2019 CU2', 'June 18, 2019', '15.2.397.3 15.02.0397.003'), + Verstring('Exchange Server 2019 CU1', 'February 12, 2019', '15.2.330.5 15.02.0330.005'), + Verstring('Exchange Server 2019 RTM', 'October 22, 2018', '15.2.221.12 15.02.0221.012'), + Verstring('Exchange Server 2019 Preview', 'July 24, 2018', '15.2.196.0 15.02.0196.000'), + Verstring('Exchange Server 2019 CU11', 'October 12, 2021', '15.2.986.9'), + Verstring('Exchange Server 2019 CU11', 'September 28, 2021', '15.2.986.5'), + Verstring('Exchange Server 2019 CU10', 'October 12, 2021', '15.2.922.14'), + Verstring('Exchange Server 2019 CU10', 'July 13, 2021', '15.2.922.13'), + Verstring('Exchange Server 2019 CU10', 'June 29, 2021', '15.2.922.7'), + Verstring('Exchange Server 2019 CU9', 'July 13, 2021', '15.2.858.15'), + Verstring('Exchange Server 2019 CU9', 'May 11, 2021', '15.2.858.12'), + Verstring('Exchange Server 2019 CU9', 'April 13, 2021', '15.2.858.10'), + Verstring('Exchange Server 2019 CU9', 'March 16, 2021', '15.2.858.5'), + Verstring('Exchange Server 2019 CU8', 'May 11, 2021', '15.2.792.15'), + Verstring('Exchange Server 2019 CU8', 'April 13, 2021', '15.2.792.13'), + Verstring('Exchange Server 2019 CU8', 'March 2, 2021', '15.2.792.10'), + Verstring('Exchange Server 2019 CU8', 'December 15, 2020', '15.2.792.3'), + Verstring('Exchange Server 2019 CU7', 'March 2, 2021', '15.2.721.13'), + Verstring('Exchange Server 2019 CU7', 'September 15, 2020', '15.2.721.2'), + Verstring('Exchange Server 2019 CU6', 'March 2, 2021', '15.2.659.12'), + Verstring('Exchange Server 2019 CU6', 'June 16, 2020', '15.2.659.4'), + Verstring('Exchange Server 2019 CU5', 'March 2, 2021', '15.2.595.8'), + Verstring('Exchange Server 2019 CU5', 'March 17, 2020', '15.2.595.3'), + Verstring('Exchange Server 2019 CU4', 'March 2, 2021', '15.2.529.13'), + Verstring('Exchange Server 2019 CU4', 'December 17, 2019', '15.2.529.5'), + Verstring('Exchange Server 2019 CU3', 'March 2, 2021', '15.2.464.15'), + ) + + def __init__(self, logger, resolve = False, decode_all = False, testsToRun = []): + self.text = '' + self.results = {} + self.resolve = resolve + self.decode_all = decode_all + self.logger = logger + self.received_path = [] + self.testsToRun = testsToRun + self.securityAppliances = set() + + # (number, header, value) + self.headers = [] + + def getAllTests(self): + + tests = ( + ( '1', 'Received - Mail Servers Flow', self.testReceived), + ( '2', 'Extracted IP addresses', self.testExtractIP), + ( '3', 'Extracted Domains', self.testResolveIntoIP), + ( '4', 'Bad Keywords In Headers', self.testBadKeywords), + ( '5', 'From Address Analysis', self.testFrom), + ( '6', 'Subject and Thread Topic Difference', self.testSubjecThreadTopic), + ( '7', 'Authentication-Results', self.testAuthenticationResults), + ( '8', 'ARC-Authentication-Results', self.testARCAuthenticationResults), + ( '9', 'Received-SPF', self.testReceivedSPF), + ('10', 'Mail Client Version', self.testXMailer), + ('11', 'User-Agent Version', self.testUserAgent), + ('12', 'X-Forefront-Antispam-Report', self.testForefrontAntiSpamReport), + ('13', 'X-MS-Exchange-Organization-SCL', self.testForefrontAntiSCL), + ('14', 'X-Microsoft-Antispam-Mailbox-Delivery', self.testAntispamMailboxDelivery), + ('15', 'X-Microsoft-Antispam Bulk Mail', self.testMicrosoftAntiSpam), + ('16', 'X-Exchange-Antispam-Report-CFA-Test', self.testAntispamReportCFA), + ('17', 'Domain Impersonation', self.testDomainImpersonation), + ('18', 'SpamAssassin Spam Status', self.testSpamAssassinSpamStatus), + ('19', 'SpamAssassin Spam Level', self.testSpamAssassinSpamLevel), + ('20', 'SpamAssassin Spam Flag', self.testSpamAssassinSpamFlag), + ('21', 'SpamAssassin Spam Report', self.testSpamAssassinSpamReport), + ('22', 'OVH\'s X-VR-SPAMCAUSE', self.testSpamCause), + ('23', 'OVH\'s X-Ovh-Spam-Reason', self.testOvhSpamReason), + ('24', 'OVH\'s X-Ovh-Spam-Score', self.testOvhSpamScore), + ('25', 'X-Virus-Scan', self.testXVirusScan), + ('26', 'X-Spam-Checker-Version', self.testXSpamCheckerVersion), + ('27', 'X-IronPort-AV', self.testXIronPortAV), + ('28', 'X-IronPort-Anti-Spam-Filtered', self.testXIronPortSpamFiltered), + ('29', 'X-IronPort-Anti-Spam-Result', self.testXIronPortSpamResult), + ('30', 'X-Mimecast-Spam-Score', self.testXMimecastSpamScore), + ('31', 'Spam Diagnostics Metadata', self.testSpamDiagnosticMetadata), + ('32', 'MS Defender ATP Message Properties', self.testATPMessageProperties), + ('33', 'Message Feedback Loop', self.testMSFBL), + ('34', 'End-to-End Latency - Message Delivery Time', self.testTransportEndToEndLatency), + ('35', 'X-MS-Oob-TLC-OOBClassifiers', self.testTLCOObClasifiers), + ('36', 'X-IP-Spam-Verdict', self.testXIPSpamVerdict), + ('37', 'X-Amp-Result', self.testXAmpResult), + ('38', 'X-IronPort-RemoteIP', self.testXIronPortRemoteIP), + ('39', 'X-IronPort-Reputation', self.testXIronPortReputation), + ('40', 'X-SBRS', self.testXSBRS), + ('41', 'X-IronPort-SenderGroup', self.testXIronPortSenderGroup), + ('42', 'X-Policy', self.testXPolicy), + ('43', 'X-IronPort-MailFlowPolicy', self.testXIronPortMailFlowPolicy), + ('44', 'X-SEA-Spam', self.testXSeaSpam), + ('45', 'X-FireEye', self.testXFireEye), + ('46', 'X-AntiAbuse', self.testXAntiAbuse), + ('47', 'X-TMASE-Version', self.testXTMVersion), + ('48', 'X-TM-AS-Product-Ver', self.testXTMProductVer), + ('49', 'X-TM-AS-Result', self.testXTMResult), + ('50', 'X-IMSS-Scan-Details', self.testXTMScanDetails), + ('51', 'X-TM-AS-User-Approved-Sender', self.testXTMApprSender), + ('52', 'X-TM-AS-User-Blocked-Sender', self.testXTMBlockSender), + ('53', 'X-TMASE-Result', self.testXTMASEResult), + ('54', 'X-TMASE-SNAP-Result', self.testXTMSnapResult), + ('55', 'X-IMSS-DKIM-White-List', self.testXTMDKIM), + ('56', 'X-TM-AS-Result-Xfilter', self.testXTMXFilter), + ('57', 'X-TM-AS-SMTP', self.testXTMASSMTP), + ('58', 'X-TMASE-SNAP-Result', self.testXTMASESNAP), + ('59', 'X-TM-Authentication-Results', self.testXTMAuthenticationResults), + ('60', 'X-Scanned-By', self.testXScannedBy), + ('61', 'X-Mimecast-Spam-Signature', self.testXMimecastSpamSignature), + ('62', 'X-Mimecast-Bulk-Signature', self.testXMimecastBulkSignature), + ('63', 'X-Forefront-Antispam-Report-Untrusted', self.testForefrontAntiSpamReportUntrusted), + ('64', 'X-Microsoft-Antispam-Untrusted', self.testForefrontAntiSpamUntrusted), + ('65', 'X-Mimecast-Impersonation-Protect', self.testMimecastImpersonationProtect), + ('66', 'X-Proofpoint-Spam-Details', self.testXProofpointSpamDetails), + ('67', 'X-Proofpoint-Virus-Version', self.testXProofpointVirusVersion), + ('68', 'SPFCheck', self.testSPFCheck), + + ('69', 'X-Barracuda-Spam-Score', self.testXBarracudaSpamScore), + ('70', 'X-Barracuda-Spam-Status', self.testXBarracudaSpamStatus), + ('71', 'X-Barracuda-Spam-Report', self.testXBarracudaSpamReport), + ('72', 'X-Barracuda-Bayes', self.testXBarracudaBayes), + ('73', 'X-Barracuda-Start-Time', self.testXBarracudaStartTime), + + # + # These tests shall be the last ones. + # + ('74', 'Similar to SpamAssassin Spam Level headers', self.testSpamAssassinSpamAlikeLevels), + ('75', 'SMTP Header Contained IP address', self.testMessageHeaderContainedIP), + ('76', 'Other unrecognized Spam Related Headers', self.testSpamRelatedHeaders), + ('77', 'Other interesting headers', self.testInterestingHeaders), + ('78', 'Security Appliances Spotted', self.testSecurityAppliances), + ('79', 'Email Providers Infrastructure Clues', self.testEmailIntelligence), + ) + + testsDecodeAll = ( + ('80', 'X-Microsoft-Antispam-Message-Info', self.testMicrosoftAntiSpamMessageInfo), + ('81', 'Decoded Mail-encoded header values', self.testDecodeEncodedHeaders), + ) + + testsReturningArray = ( + ('82', 'Header Containing Client IP', self.testAnyOtherIP), + ) + + return (tests, testsDecodeAll, testsReturningArray) + + @staticmethod + def safeBase64Decode(value): + enc = False + if type(value) == str: + enc = True + value = value.encode() + + try: + out = base64.b64decode(value) + except: + out = base64.b64decode(value + b'=' * (-len(value) % 4)) + + if enc: + out = out.decode() + + return out + + @staticmethod + def resolveAddress(addr): + try: + res = socket.gethostbyaddr(addr) + return ', '.join([x for x in res if len(x) > 0]) + + except: + return '' + + @staticmethod + def parseExchangeVersion(lookup): + + # Try strict matching + for ver in SMTPHeadersAnalysis.Exchange_Versions: + if ver.version == lookup: + return ver + + lookupparsed = packaging.version.parse(lookup) + + # Go with version-wise comparison to fuzzily find proper version name + sortedversions = sorted(SMTPHeadersAnalysis.Exchange_Versions) + + match = re.search(r'\d{1,}\.\d{1,}\.\d{1,}', lookup, re.I) + if not match: + return None + + for i in range(len(sortedversions)): + if sortedversions[i].version.startswith(lookup): + sortedversions[i].name = 'fuzzy match: ' + sortedversions[i].name + return sortedversions[i] + + for i in range(len(sortedversions)): + prevver = packaging.version.parse('0.0') + nextver = packaging.version.parse('99999.0') + if i > 0: + prevver = packaging.version.parse(sortedversions[i-1].version) + thisver = packaging.version.parse(sortedversions[i].version) + if i + 1 < len(sortedversions): + nextver = packaging.version.parse(sortedversions[i+1].version) + + if lookupparsed >= thisver and lookupparsed < nextver: + sortedversions[i].name = 'fuzzy match: ' + sortedversions[i].name + return sortedversions[i] + + return None + + + def getHeader(self, _header): + if _header not in SMTPHeadersAnalysis.Handled_Spam_Headers: + SMTPHeadersAnalysis.Handled_Spam_Headers.append(_header) + + for (num, header, value) in self.headers: + if header.lower() == _header.lower(): + return (num, header, value) + + similar_headers = ( + ('-Microsoft-', '-Exchange-'), + ('-Microsoft-', '-Office365-'), + ) + + for sim in similar_headers: + if sim[0].lower() in _header.lower(): + _header = re.sub(sim[0], sim[1], _header, re.I) + + for (num, header, value) in self.headers: + if header.lower() == _header.lower(): + return (num, header, value) + + return (-1, '', '') + + def collect(self, text): + num = 0 + errorOnce = False + lines = text.split('\n') + boundary = '' + inBoundary = False + headers = [] + + i = 0 + while i < len(lines): + line = lines[i] + + if len(boundary) > 0 and f'--{boundary}' == line.strip(): + inBoundary = True + i += 1 + continue + + elif inBoundary and f'--{boundary}--' == line.strip(): + inBoundary = False + i += 1 + continue + + elif inBoundary: + i += 1 + continue + + elif line.startswith(' ') or line.startswith('\t'): + if len(headers) > 0: + headers[-1][2] += '\n' + line + i += 1 + continue + else: + logger.dbg(f'Skipping invalid line:\n\t( {line} )') + i += 1 + continue + else: + line = line.strip() + match = re.match(r'^([^:]+)\s*:\s+(.+)\s*', line, re.S) + + if match: + headers.append([num, match.group(1), match.group(2)]) + logger.dbg(f'Extracted {num}. {match.group(1)}') + num += 1 + else: + match = re.match(r'^([^:]+)\s*:\s*', line, re.S) + + if match: + val = '' + + considerNextLineIndented = match.group(1) in SMTPHeadersAnalysis.Headers_Known_For_Breaking_Line + + if match and i + 1 < len(lines) and (lines[i + 1].startswith(' ') \ + or lines[i + 1].startswith('\t')) or considerNextLineIndented: + j = 1 + + if considerNextLineIndented and not errorOnce and \ + (not lines[i + 1].startswith(' ') and not lines[i+1].startswith('\t')): + errorOnce = True + self.logger.err(''' +----------------------------------------- +WARNING! +----------------------------------------- + +Your SMTP headers are not properly indented! +Results will be unsound. Make sure you have pasted your headers with correct spaces/tabs indentation. + +''') + + + while i + j < len(lines): + l = lines[i + j] + + if l.startswith(' ') or l.startswith('\t') or considerNextLineIndented: + val += l + '\n' + j += 1 + considerNextLineIndented = False + else: + break + + headers.append([num, match.group(1), val.strip()]) + logger.dbg(f'Extracted {num}. {match.group(1)}') + num += 1 + + i += j - 1 + + if len(headers) > 0 and len(headers[-1]) > 1 and headers[-1][1].lower() == 'content-type': + m = re.search(r'boundary="([^"]+)"', headers[-1][2], re.I) + if m: + boundary = m.group(1) + + i += 1 + + self.logger.info(f'Analysing {num} headers...') + return headers + + def parse(self, text): + self.text = text + + self.headers = self.collect(text) + + (tests, testsDecodeAll, testsReturningArray) = self.getAllTests() + + testsConducted = 0 + + for testId, testName, testFunc in tests: + try: + if len(self.testsToRun) > 0 and int(testId) not in self.testsToRun: + self.logger.dbg(f'Skipping test {testId} {testName}') + continue + + testsConducted += 1 + self.logger.dbg(f'Running test {testId}: "{testName}"...') + self.results[testName] = testFunc() + + except Exception as e: + self.logger.err(f'Test {testId}: "{testName}" failed: {e} . Use --debug to show entire stack trace.') + + self.results[testName] = { + 'header' : '', + 'value' : '', + 'analysis' : 'Internal script error. Use --debug to find out more what happened.', + } + + if options['debug']: + raise + + idsOfDecodeAll = [int(x[0]) for x in testsDecodeAll] + + for a in self.testsToRun: + if a in idsOfDecodeAll: + self.decode_all = True + break + + if self.decode_all: + for testId, testName, testFunc in testsDecodeAll: + try: + if len(self.testsToRun) > 0 and int(testId) not in self.testsToRun: + self.logger.dbg(f'Skipping test {testId} {testName}') + continue + + testsConducted += 1 + self.logger.dbg(f'Running test {testId}: "{testName}"...') + self.results[testName] = testFunc() + + except Exception as e: + self.logger.err(f'Test {testId}: "{testName}" failed: {e} . Use --debug to show entire stack trace.') + + self.results[testName] = { + 'header' : '', + 'value' : '', + 'analysis' : 'Internal script error. Use --debug to find out more what happened.', + } + + if options['debug']: + raise + + for testId, testName, testFunc in testsReturningArray: + try: + if len(self.testsToRun) > 0 and int(testId) not in self.testsToRun: + self.logger.dbg(f'Skipping test {testId} {testName}') + continue + + testsConducted += 1 + self.logger.dbg(f'Running test {testId}: "{testName}"...') + outs = testFunc() + + num = 0 + for o in outs: + num += 1 + self.results[testName + ' ' + str(num)] = o + + except Exception as e: + self.logger.err(f'Test {testId}: "{testName}" failed: {e} . Use --debug to show entire stack trace.') + + self.results[testName] = { + 'header' : '', + 'value' : '', + 'analysis' : 'Internal script error. Use --debug to find out more what happened.', + } + + if options['debug']: + raise + + for k in self.results.keys(): + if not self.results[k] or len(self.results[k]) == 0: + continue + + for kk in ['description', 'header', 'value']: + if kk not in list(self.results[k].keys()): + self.results[k][kk] = '' + + self.logger.dbg(f'\n------------------------------------------\nAttempted to process following SMTP headers ({len(SMTPHeadersAnalysis.Handled_Spam_Headers)}):') + + for header in SMTPHeadersAnalysis.Handled_Spam_Headers: + self.logger.dbg(f'\t- {header.capitalize()}') + + self.logger.dbg('\n------------------------------------------\n\n') + + self.logger.dbg(f'Conducted {testsConducted} tests on provided SMTP headers.') + + return {k: v for k, v in self.results.items() if v} + + @staticmethod + def flattenLine(value): + return ' '.join([x.strip() for x in value.split('\n')]) + + @staticmethod + def printable(input_str): + istr = str(input_str) + return all(ord(c) < 127 and c in string.printable for c in istr) + + @staticmethod + def extractDomain(fqdn): + if not fqdn: + return '' + + parts = fqdn.split('.') + return '.'.join(parts[-2:]) + + @staticmethod + def decodeSpamcause(msg): + text = [] + for i in range(0, len(msg), 2): + text.append(SMTPHeadersAnalysis.unrotSpamcause(msg[i: i + 2])) + return str.join('', text) + + @staticmethod + def unrotSpamcause(pair, key=ord('x')): + offset = 0 + for c in 'cdefgh': + if c in pair: + offset = (ord('g') - ord(c)) * 16 + break + return chr(sum(ord(c) for c in pair) - key - offset) + + @staticmethod + def hexdump(data, addr = 0, num = 0): + s = '' + n = 0 + lines = [] + if num == 0: num = len(data) + + if len(data) == 0: + return '' + + for i in range(0, num, 16): + line = '' + line += '%04x | ' % (addr + i) + n += 16 + + for j in range(n-16, n): + if j >= len(data): break + line += '%02x ' % (data[j] & 0xff) + + line += ' ' * (3 * 16 + 7 - len(line)) + ' | ' + + for j in range(n-16, n): + if j >= len(data): break + c = data[j] if not (data[j] < 0x20 or data[j] > 0x7e) else '.' + line += '%c' % c + + lines.append(line) + return '\n'.join(lines) + + def testEmailIntelligence(self): + service = [] + value = self.text + + # + # NOTICE: + # This code below was copied from the following repository: + # https://github.com/nquinlan/Email-Intelligence + # + # and is authored solely by Nick Quinlan (nick@nicholasquinlan.com). + # + + # Amazon SES + if re.search(r'^X-SES-Outgoing:', value, re.I|re.S) or "Amazon SES" in value or "Amazon SES".lower() in value.lower() or "AmazonSES".lower() in value.lower(): + service.append(("Amazon SES", "http://aws.amazon.com/ses/")) + + # BenchmarkEmail.com + if re.search(r'www.benchmarkemail.com', value, re.I|re.S) or "BenchmarkEmail".lower() in value.lower(): + service.append(("BenchmarkEmail", "http://benchmarkemail.com/")) + + # Bronto + if re.search(r'd=bronto.com;', value, re.I|re.S) or "Bronto".lower() in value.lower(): + service.append(("Bronto", "http://bronto.com/")) + + # Campaign Monitor + if re.search(r'^X-Complaints-To: abuse@cmail\d{1,2}\.com', value, re.I|re.S) or "Campaign Monitor".lower() in value.lower() or "CampaignMonitor".lower() in value.lower(): + service.append(("Campaign Monitor", "https://www.campaignmonitor.com")) + + # Constant Contact + if re.search(r'^X-Roving-ID:', value, re.I|re.S) or "Constant Contact".lower() in value.lower() or "ConstantContact".lower() in value.lower(): + service.append(("Constant Contact", "https://www.constantcontact.com")) + + # Dyn + if re.search(r'^X-DynectEmail-Msg-(Key|Hash):', value, re.I|re.S) or "Dyn".lower() in value.lower(): + service.append(("Dyn", "https://dyn.com/")) + + # Eloqua + if re.search(r'^X-elqPod:', value, re.I|re.S) or "Eloqua".lower() in value.lower(): + service.append(("Eloqua", "http://www.eloqua.com/")) + + # Email Vision + if re.search(r'^X-EMV-MemberId:', value, re.I|re.S) or "Emailvision".lower() in value.lower(): + service.append(("Emailvision", "https://www.emailvision.com/")) + + # Emma + if re.search(r'd=e2ma\.net;', value, re.I|re.S) or "Emma".lower() in value.lower(): + service.append(("Emma", "https://myemma.com/")) + + # ExactTarget + if re.search(r'^x-job: \d{3,}_\d{3,}$', value, re.I|re.S) and re.search(r'mta[\d]*\.[\w-\.]+\.[a-z]{2,}', value, re.I|re.S) or "ExactTarget".lower() in value.lower(): + service.append(("ExactTarget", "http://www.exacttarget.com/")) + + # Fishbowl + if re.search(r'^X-Mailer: Fishbowl', value, re.I|re.S) or "Fishbowl".lower() in value.lower(): + service.append(("Fishbowl", "https://www.fishbowl.com/")) + + # Gold Lasso + if re.search(r'^X-Mailer: Eloop Mailer', value, re.I|re.S) or "Gold Lasso".lower() in value.lower() or "GoldLasso".lower() in value.lower(): + service.append(("Gold Lasso", "https://www.goldlasso.com/")) + + # Google App Engine + if re.search(r'^X-Google-Appengine-App-Id:', value, re.I|re.S) or "Google App Engine".lower() in value.lower() or "GoogleApp".lower() in value.lower() or "AppEngine".lower() in value.lower(): + service.append(("Google App Engine", "https://developers.google.com/appengine/docs/python/mail/sendingmail")) + + # iContact + if re.search(r'^X-ICPINFO:', value, re.I|re.S) or "iContact".lower() in value.lower(): + service.append(("iContact", "https://www.icontact.com/")) + + # Listrak + if re.search(r'^Received: from [\w-]+\.listrak\.com', value, re.I|re.S) or "Listrak".lower() in value.lower(): + service.append(("Listrak", "https://www.listrak.com/")) + + # Locaweb + if re.search(r'^x-locaweb-id:', value, re.I|re.S) or "Locaweb".lower() in value.lower(): + service.append(("Locaweb", "https://www.locaweb.com.br/")) + + # Mailchimp + if re.search(r'^X-MC-User:', value, re.I|re.S) or "MailChimp".lower() in value.lower(): + service.append(("MailChimp", "https://mailchimp.com/")) + + # MailerLite + if re.search(r'd=ml.mailersend.com;', value, re.I|re.S) or "MailerLite".lower() in value.lower(): + service.append(("MailerLite", "https://www.mailerlite.com/")) + + # Mailgun + if re.search(r'^X-Mailgun-Sid:', value, re.I|re.S) or re.search(r'X-Mailgun-Variables:', value, re.I|re.S) or "Mailgun".lower() in value.lower(): + service.append(("Mailgun", "https://www.mailgun.com/")) + + # Mailigen + if re.search(r'^X-Mailer: MailiGen', value, re.I|re.S) or "Mailigen".lower() in value.lower(): + service.append(("Mailigen", "http://www.mailigen.com/")) + + # Mailjet + if re.search(r's=mailjet;', value, re.I|re.S) or "Mailjet".lower() in value.lower(): + service.append(("Mailjet", "https://www.mailjet.com/")) + + # Mandrill + if re.search(r'^X-Mandrill-User:', value, re.I|re.S) or "Mandrill".lower() in value.lower(): + service.append(("Mandrill", "https://mandrillapp.com/")) + + # Marketo + if re.search(r'^X-MarketoID:', value, re.I|re.S) or "Marketo".lower() in value.lower(): + service.append(("Marketo", "https://www.marketo.com/")) + + # Message Bus + if re.search(r'^X-Messagebus-Info:', value, re.I|re.S) or "Message Bus".lower() in value.lower() or "MessageBus".lower() in value.lower(): + service.append(("Message Bus", "https://messagebus.com/")) + + # Mixmax + if re.search(r'^X-Mailer: Mixmax', value, re.I|re.S) or "Mixmax".lower() in value.lower(): + service.append(("Mixmax", "https://mixmax.com/")) + + # Postmark + if re.search(r'^X-PM-Message-Id:', value, re.I|re.S) or "Postmark".lower() in value.lower(): + service.append(("Postmark", "https://postmarkapp.com/")) + + # Responsys + if re.search(r'^X-rext:', value, re.I|re.S) or "Responsys".lower() in value.lower(): + service.append(("Responsys", "https://www.responsys.com/")) + + # Sailthru + if re.search(r'^X-Mailer: sailthru.com$', value, re.I|re.S) or "Sailthru".lower() in value.lower(): + service.append(("Sailthru", "https://www.sailthru.com/")) + + # Salesforce + if re.search(r'^X-SFDC-User:', value, re.I|re.S) or "Salesforce".lower() in value.lower(): + service.append(("Salesforce", "https://www.salesforce.com/")) + + # SendGrid + if re.search(r'^X-(SG|SENDGRID)-EID:', value, re.I|re.S) or "SendGrid".lower() in value.lower(): + service.append(("SendGrid", "https://sendgrid.com/")) + + # Silverpop + if re.search(r'^Received: from [\w\.]+\.mkt\d{3,}\.com', value, re.I|re.S): # Not proprietary, but likely only Silverpo or "Silverpop".lower() in value.lower()p + service.append(("Silverpop", "https://www.silverpop.com/")) + + # SMTP.com + if re.search(r'^X-SMTPCOM-Tracking-Number:', value, re.I|re.S) or "SMTP.com".lower() in value.lower(): + service.append(("SMTP.com", "https://smtp.com/")) + + # VerticalResponse + if re.search(r'^X-vrfbldomain:', value, re.I|re.S) and re.search(r'^X-vrpod:', value, re.I|re.S) and re.search(r'^X-vrrpmm:', value, re.I|re.S) or "VerticalResponse".lower() in value.lower(): + service.append(("VerticalResponse", "http://www.verticalresponse.com/")) + + # Yesmail + if re.search(r's=yesmail.?;', value, re.I|re.S) or re.search(r'^Received: from [\w\.\-]+postdirect.com', value, re.I|re.S) or "Yesmail".lower() in value.lower(): + service.append(("Yesmail", "https://www.yesmail.com/")) + + if len(service) == 0: + return [] + + result = f'- Mail contents analysis shown that this e-mail passed through the following third-party Mail providers:\n\n' + + for svc in service: + svcname = self.logger.colored(svc[0], 'green') + result += f'\t- {svcname} - url: {svc[1]}\n' + + return { + 'header': '', + 'value' : '', + 'analysis' : result, + 'description' : '', + } + + + def testSecurityAppliances(self): + result = '' + vals = [x.lower() for x in SMTPHeadersAnalysis.Header_Keywords_That_May_Contain_Spam_Info] + + self.logger.dbg('Spotted clues about security appliances:') + + for a in self.securityAppliances: + parts = a.split(' ') + skip = True + + self.logger.dbg(f'\t- {a}') + + for p in parts: + if p.lower() in vals: + skip = False + break + + if skip: continue + result += f'\t- {a}\n' + + if len(result) == 0: + return [] + + return { + 'header': '', + 'value' : '', + 'analysis' : '- During headers analysis, spotted following clues about Security Appliances:\n\n' + result, + 'description' : '', + } + + def testXProofpointSpamDetails(self): + (num, header, value) = self.getHeader('X-Proofpoint-Spam-Details') + if num == -1: return [] + + result = '- Proofpoint Email Protection Spam details report\n' + self.securityAppliances.add('Proofpoint Email Protection') + return self._parseProofpoint(result, '', num, header, value) + + def _parseProofpoint(self, topic, description, num, header, value): + value = SMTPHeadersAnalysis.flattenLine(value) + parts = value.split(' ') + + result = topic + + for part in parts: + if '=' not in part: + result += f'\t- {part}\n' + else: + (k, v) = part.split('=') + + col = 'yellow' + if k.lower() == 'rule': + if v.lower() == 'notspam': col = 'green' + elif v.lower() == 'spam': col = 'red' + elif 'definitive' in v.lower(): col = 'red' + elif 'malware' in v.lower(): col = 'red' + elif 'phish' in v.lower(): col = 'red' + elif 'quarantine' in v.lower(): col = 'red' + + v = self.logger.colored(v.upper(), col) + + elif k.lower() == 'vendor': + v = self.logger.colored(v, 'green') + + else: + try: + num = float(v) + if num > 0: + v = self.logger.colored(v, 'yellow') + else: + v = self.logger.colored(v, 'green') + + except: + pass + + result += f'\t- {k: <20}: {v}\n' + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : description, + } + + def testXProofpointVirusVersion(self): + (num, header, value) = self.getHeader('X-Proofpoint-Virus-Version') + if num == -1: return [] + + result = '- Proofpoint Email Protection Anti-Virus version\n' + self.securityAppliances.add('Proofpoint Email Protection') + return self._parseProofpoint(result, '', num, header, value) + + def testXTMVersion(self): + (num, header, value) = self.getHeader('X-TMASE-Version') + if num == -1: return [] + + result = '- Trend Micro Anti-Spam Engine (TMASE) Version\n' + self.securityAppliances.add('Trend Micro Anti-Spam') + parts = value.split('-') + + if len(parts) > 0: result += f'\t\t- Vendor Product Name: {parts[0]}\n' + if len(parts) > 1: result += f'\t\t- Product Version: {parts[1]}\n' + if len(parts) > 2: result += f'\t\t- Anti-Spam Enginge Version: {parts[2]}\n' + if len(parts) > 3: result += f'\t\t- Spam Pattern Version: {parts[3]}\n' + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def _parseThresholdsBasedScore(self, value, thresholds): + score = 0 + try: + score = float(value.strip()) + except: + return '' + + for step in thresholds: + if score >= step[0] and score <= step[1]: + return step[2] + + return '' + + def testXBarracudaSpamScore(self): + (num, header, value) = self.getHeader('X-Barracuda-Spam-Score') + if num == -1: return [] + + result = '- Barracuda Email Security Spam Score\n' + self.securityAppliances.add('Barracuda Email Security') + + thresholds = SMTPHeadersAnalysis.Barracuda_Score_Thresholds + aggressive = False + + if aggressive: + thresholds = SMTPHeadersAnalysis.Barracuda_Aggressive_Score_Thresholds + + score = self._parseThresholdsBasedScore(value, thresholds) + result += f'\t- Score: {value.strip()}' + + if score != '': + result += f' - {score}' + + return { + 'header': header, + 'value' : value, + 'analysis' : result + '\n', + 'description' : '', + } + + def testXBarracudaSpamStatus(self): + (num, header, value) = self.getHeader('X-Barracuda-Spam-Status') + if num == -1: return [] + + result = '- Barracuda Email Security Spam Status (based on SpamAssassin)\n\n' + self.securityAppliances.add('Barracuda Email Security') + + thresholds = SMTPHeadersAnalysis.Barracuda_Score_Thresholds + aggressive = False + + if aggressive: + thresholds = SMTPHeadersAnalysis.Barracuda_Aggressive_Score_Thresholds + + return self._parseSpamAssassinStatus(result, '', num, header, value, thresholds) + + def testXBarracudaSpamReport(self): + (num, header, value) = self.getHeader('X-Barracuda-Spam-Report') + if num == -1: return [] + + result = f'- Barracuda Email Security Spam Report:\n\t- {value.strip()}\n' + self.securityAppliances.add('Barracuda Email Security') + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def testXBarracudaBayes(self): + (num, header, value) = self.getHeader('X-Barracuda-Bayes') + if num == -1: return [] + + result = f'- Barracuda Email Security Spam Bayesian analysis:\n\t- {value.strip()}\n' + self.securityAppliances.add('Barracuda Email Security') + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def testXBarracudaStartTime(self): + (num, header, value) = self.getHeader('X-Barracuda-Start-Time') + if num == -1: return [] + + ts = int(value.strip()) + val = datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S') + + result = f'- Barracuda Email Security Start Time: {self.logger.colored(val, "green")} ({ts})\n' + self.securityAppliances.add('Barracuda Email Security') + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def testXTMProductVer(self): + (num, header, value) = self.getHeader('X-TM-AS-Product-Ver') + if num == -1: return [] + + result = '- Trend Micro Anti-Spam Engine (TMASE) Version\n' + self.securityAppliances.add('Trend Micro Anti-Spam') + parts = value.split('-') + + if len(parts) > 0: result += f'\t\t- Vendor Product Name: {parts[0]}\n' + if len(parts) > 1: result += f'\t\t- Product Version: {parts[1]}\n' + if len(parts) > 2: result += f'\t\t- Anti-Spam Enginge Version: {parts[2]}\n' + if len(parts) > 3: result += f'\t\t- Spam Pattern Version: {parts[3]}\n' + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def testAnyOtherIP(self): + outputs = [] + + for (num, header, value) in self.headers: + if header.lower().endswith('-ip'): + + result = f'- Connecting Client IP detected in header {header}:' + outputs.append(self._originatingIPTest(result, '', num, header, value)) + + return outputs + + + def testXTMApprSender(self): + (num, header, value) = self.getHeader('X-TM-AS-User-Approved-Sender') + if num == -1: return [] + + result = '- Trend Micro Anti-Spam\n' + self.securityAppliances.add('Trend Micro Anti-Spam') + + if value.strip().lower() == 'yes': + result += self.logger.colored('\t- system Approved this Sender\n', 'green') + + if value.strip().lower() == 'no': + result += self.logger.colored('\t- system did not Approve this Sender\n', 'red') + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def testMimecastImpersonationProtect(self): + (num, header, value) = self.getHeader('X-Mimecast-Impersonation-Protect') + if num == -1: return [] + + result = '- Mimecast mail impersonation report:\n\n' + self.securityAppliances.add('Mimecast') + + value = SMTPHeadersAnalysis.flattenLine(value) + + for line in value.split(';'): + if '=' in line: + (a, b) = line.split('=') + a = a.strip() + b = b.strip() + + if b.lower() == 'false': + b = self.logger.colored(b, 'green') + + elif b.lower() == 'true': + b = self.logger.colored(b, 'red') + a = self.logger.colored(a, 'red') + + if a.lower() == 'policy': + b = self.logger.colored(b, 'magenta') + + result += f'\t- {a}: {b}\n' + else: + result += f'\t- {line}\n' + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def testXTMBlockSender(self): + (num, header, value) = self.getHeader('X-TM-AS-User-Blocked-Sender') + if num == -1: return [] + + result = '- Trend Micro Anti-Spam\n' + self.securityAppliances.add('Trend Micro Anti-Spam') + + if value.strip().lower() == 'yes': + result += self.logger.colored('\t- system Blocked this Sender\n', 'red') + + if value.strip().lower() == 'no': + result += '\t- system did not Block this Sender\n' + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def testXTMASESNAP(self): + (num, header, value) = self.getHeader('X-TMASE-SNAP-Result') + if num == -1: return [] + + result = '- Trend Micro Anti Spam Engine (TMASE) Social Engineering Attack Protection (SNAP) scan result\n\n' + self.securityAppliances.add('Trend Micro Anti-Spam') + + parts = value.strip().split('-') + + if len(parts) > 0: result += f'\t- System Version: {parts[0]}\n' + if len(parts) > 1: result += f'\t- Scan Result: {parts[1]}\n' + if len(parts) > 2: result += f'\t- Scan Aggressive Level: {parts[2]}\n' + if len(parts) > 3: + result += f'\t- Traverse List:' + + if ',' in parts[3]: + num = 0 + for s in parts[3].split(','): + num += 1 + rule, matched = s.split(':') + + if matched == '0': + m = 'not matched' + else: + m = m = self.logger('matched', 'red') + matched = self.logger.red(matched, 'red') + + if num == 1: + result += f' - rule: {rule} - matched: {matched} ({m})\n' + else: + result += f'\t\t\t\t - rule: {rule} - matched: {matched} ({m})\n' + else: + result += f'\t\t- {parts[3]}\n' + + if len(parts) > 4: result += f'\t- Unknown: {parts[4]}\n' + + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def testXTMDKIM(self): + (num, header, value) = self.getHeader('X-IMSS-DKIM-White-List') + if num == -1: return [] + + self.securityAppliances.add('Trend Micro InterScan Messaging Security') + + if value.strip().lower() == 'yes': + result = '- Trend Micro InterScan Messaging Security DKIM White Listed this sender\n' + + if value.strip().lower() == 'no': + result = '- Trend Micro InterScan Messaging Security did not DKIM White List this sender\n' + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def testXTMResult(self): + (num, header, value) = self.getHeader('X-TM-AS-Result') + if num == -1: return [] + + result = '- Trend Micro Anti-Spam Result\n' + self.securityAppliances.add('Trend Micro Anti-Spam') + return self._parseTMASResult(result, '', num, header, value) + + def testXTMASEResult(self): + (num, header, value) = self.getHeader('X-TMASE-Result') + if num == -1: return [] + + result = '- Trend Micro Anti-Spam Engine (TMASE) Result\n' + self.securityAppliances.add('Trend Micro Anti-Spam') + return self._parseTMASResult(result, '', num, header, value) + + def testXTMScanDetails(self): + (num, header, value) = self.getHeader('X-IMSS-Scan-Details') + if num == -1: return [] + + result = '- Trend Micro InterScan Messaging Security Scan Details\n' + self.securityAppliances.add('Trend Micro InterScan Messaging Security') + return self._parseTMASResult(result, '', num, header, value) + + def _parseTMASResult(self, topicLine, description, num, header, value): + value = value.replace('--', '-=') + parts = value.split('-') + + result = topicLine + + thresh = 0 + if len(parts) > 2: + try: + thresh = float(parts[2]) + except: + pass + + score = 0 + if len(parts) > 1: + score = parts[1] + if parts[1].startswith('='): + score = '-' + score[1:] + + try: + score = float(score) + except: + pass + + col = 'yellow' + if score != 0 and thresh != 0: + if score < thresh: + col = 'green' + + elif score >= thresh: + col = 'red' + + if len(parts) > 0: + val2 = '' + val = parts[0].strip() + + if val.strip().lower() == 'yes': + val = self.logger.colored(val.upper(), col) + + if val.strip().lower() == 'no': + val = self.logger.colored(val.upper(), col) + val2 = ' (SPS filter did not trigger)' + + result += f'\t\t- Is it SPAM?: {val}{val2}\n' + + if len(parts) > 1: + if parts[1].startswith('='): parts[1] = '-' + parts[1][1:] + result += f'\t\t- Trend/Spam Score: {self.logger.colored(parts[1], col)}\n' + + if len(parts) > 2: + result += f'\t\t- Detection Threshold: {parts[2]}\n' + + if len(parts) > 3: + result += f'\t\t- Category : {parts[3]}\n' + + if len(parts) > 4: + result += f'\t\t- Trend Type : {parts[4]}' + + try: + t = int(parts[4]) + if t in SMTPHeadersAnalysis.Trend_Type_AntiSpam.keys(): + result += ' (' + SMTPHeadersAnalysis.Trend_Type_AntiSpam[k] + ')' + except: + pass + + result += '\n' + + return { + 'header': header, + 'value' : value.replace('-=', '--'), + 'analysis' : result, + 'description' : description, + } + + def testXScannedBy(self): + hdrs = ( + 'X-Scanned-By', + 'X-ScannedBy', + 'XScannedBy', + 'XScanned-By', + 'X-Scanned', + 'X-Scan', + 'X-Scan-By', + ) + + for hdr in hdrs: + (num, header, value) = self.getHeader(hdr) + if num == -1: continue + + val = self.logger.colored(value, "yellow") + result = f'- Scanned by: {val}\n' + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + return [] + + def testXTMSnapResult(self): + (num, header, value) = self.getHeader('X-TMASE-SNAP-Result') + if num == -1: return [] + + result = '- Trend Micro Anti-Spam Engine (TMASE) SNAP Result\n' + self.securityAppliances.add('Trend Micro Anti-Spam') + result += f'\t- {value}\n' + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def testXTMXFilter(self): + (num, header, value) = self.getHeader('X-TM-AS-Result-Xfilter') + if num == -1: return [] + + result = '- Trend Micro Anti-Spam XFilter\n' + self.securityAppliances.add('Trend Micro Anti-Spam') + result += f'\t- {value}\n' + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def testSPFCheck(self): + (num, header, value) = self.getHeader('SPFCheck') + if num == -1: return [] + + result = f'- SPF Check:\n' + for line in value.split(','): + result += f'\t- {line.strip()}\n' + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def testXTMASSMTP(self): + (num, header, value) = self.getHeader('X-TM-AS-SMTP') + if num == -1: return [] + + value = SMTPHeadersAnalysis.flattenLine(value) + result = '- Trend Micro Anti-Spam SMTP servers\n' + self.securityAppliances.add('Trend Micro Anti-Spam') + parts = value.split(' ') + + if len(parts) > 2: + try: + p2 = float(parts[0]) + result += f'\t- Priority: {p2}\n' + + except: + result += f'\t- Priority: {parts[0]}\n' + + result += f'\t- Server: {SMTPHeadersAnalysis.safeBase64Decode(parts[1])}\n' + result += f'\t- Recipient: {SMTPHeadersAnalysis.safeBase64Decode(parts[2])}\n' + + return { + 'header': header, + 'value' : value, + 'analysis' : result, + 'description' : '', + } + + def testXVirusScan(self): + (num, header, value) = self.getHeader('X-Virus-Scanned') + if num == -1: return [] + + result = f'- Message was scanned with an Anti-Virus.' + self.securityAppliances.add('Unknown Anti-Virus') + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testXFireEye(self): + (num, header, value) = self.getHeader('X-FireEye') + if num == -1: return [] + + result = f'- Message was scanned with FireEye Email Security Solution. Result is following:\n' + self.securityAppliances.add('FireEye Email Security Solution') + result += f'\t- {self.logger.colored(value, "green")}\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testXAntiAbuse(self): + result = '' + tmp = '\n' + + SMTPHeadersAnalysis.Handled_Spam_Headers.append('x-antiabuse') + + for num, header, value in self.headers: + if header.lower() != 'x-antiabuse': + continue + + tmp += ' ' + SMTPHeadersAnalysis.flattenLine(value) + '\n' + + if len(tmp) > 5: + result = f''' + - Anti-Abuse message was included in mail headers: + {tmp} +''' + else: + return [] + + return { + 'header' : '-', + 'value': '-', + 'analysis' : result, + 'description' : '', + } + + def testMessageHeaderContainedIP(self): + result = '' + shown = set() + num0 = 0 + tmp = '' + + for num, header, value in self.headers: + if header in shown or header in SMTPHeadersAnalysis.Handled_Spam_Headers: + continue + + match = re.match(r'.{,5}\b([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\b.{,5}', value) + if match: + ipaddr = match.group(1) + + SMTPHeadersAnalysis.Handled_Spam_Headers.append(header) + + num0 += 1 + tmp += f'\t({num0:02}) Header: {self.logger.colored(header, "yellow")} contained an IP address:\n' + + shown.add(header) + + resolved = SMTPHeadersAnalysis.resolveAddress(ipaddr) + + if len(resolved) > 0: + tmp += f'\t Value: {self.logger.colored(ipaddr, "green")} (resolved: {resolved})\n\n' + else: + tmp += f'\t Value: {self.logger.colored(ipaddr, "green")}\n\n' + + if len(tmp) > 0: + result += tmp + '\n' + + if len(result) == 0: + return [] + + return { + 'header' : '-', + 'value': '-', + 'analysis' : result, + 'description' : '', + } + + def testXIronPortRemoteIP(self): + (num, header, value) = self.getHeader('X-IronPort-RemoteIP') + if num == -1: return [] + + result = f'- Cisco IronPort observed following IP of the connecting Client: ' + self.securityAppliances.add('Cisco IronPort') + return self._originatingIPTest(result, '', num, header, value) + + def _originatingIPTest(self, topicLine, description, num, header, value): + result = '' + + if '[' == value[0] and value[-1] == ']': + value = value[1:-1] + + resolved = SMTPHeadersAnalysis.resolveAddress(value) + + result += topicLine + + if len(resolved) > 0: + result += f'\n\t- {self.logger.colored(value, "red")} (resolved: {resolved})\n' + else: + result += f'\n\t- {self.logger.colored(value, "red")} (not resolveable)\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : description, + } + + def testSubjecThreadTopic(self): + (num1, header1, value1) = self.getHeader('Subject') + (num2, header2, value2) = self.getHeader('Thread-Topic') + if num1 == -1 or num2 == -1: return [] + + if value1.lower().strip() == value2.lower().strip(): return [] + + result = f'- Subject and Thread-Topic headers differ! Possibly {self.logger.colored("target changed Subject","red")} to reflect External E-mail!\n' + + v1 = value1 + v2 = value2 + + m1 = re.search(r'\=\?[a-z0-9\-]+\?Q\?', v1, re.I) + if m1: + v1d = emailheader.decode_header(value)[0][0] + if type(v1d) == bytes: + v1d = v1d.decode() + v1 = v1d + + m2 = re.search(r'\=\?[a-z0-9\-]+\?Q\?', v2, re.I) + if m2: + v2d = emailheader.decode_header(value)[0][0] + if type(v2d) == bytes: + v2d = v2d.decode() + v2 = v2d + + result += f'\t- Subject: {self.logger.colored(v1, "green")}\n' + result += f'\t- Thread-Topic: {self.logger.colored(v2, "magenta")}\n' + + return { + 'header' : f'{header1}, {header2}', + 'value': f'\n{header1}:\n\t{value1}\n\n {header2}:\n\t{value2}', + 'analysis' : result, + 'description' : '', + } + + def testXSeaSpam(self): + (num, header, value) = self.getHeader('X-SEA-Spam') + if num == -1: return [] + + result = f'- Sophos Email Appliance Spam report:\n' + self.securityAppliances.add('Sophos Email Appliance (PureMessage)') + report = {} + value = SMTPHeadersAnalysis.flattenLine(value) + + for match in re.finditer(r"(\w+)=(?!')([^,]+)\b,?", value, re.I): + key = match.group(1) + val = match.group(2) + + if not key: key = '' + if not val: val = '' + + if len(key.strip()) == 0: continue + report[key] = val.strip() + + for match in re.finditer(r"(\w+)='([^']+)'", value, re.I): + key = match.group(1) + val = match.group(2) + + if not key: key = '' + if not val: val = '' + + if len(key.strip()) == 0: continue + report[key] = [x.strip() for x in val.strip().split(',') if len(x.strip()) > 0] + + + for key, val in report.items(): + k = self.logger.colored(key, 'cyan') + + if key.lower() in SMTPHeadersAnalysis.SEA_Spam_Fields.keys(): + result += f'\n\t- {k}: {SMTPHeadersAnalysis.SEA_Spam_Fields[key.lower()]}\n' + else: + result += f'\n\t- {k}: \n' + + if key.lower() == 'report': + result = result[:-1] + result += f'. Matched {self.logger.colored(len(val), "yellow")} rules.\n\n' + + for rule in val: + if len(rule.strip() ) == 0: continue + num = 1 + num2 = 0 + + if ' ' in rule: + rulen, num = rule.split(' ') + try: + num2 = float(num) + except: + pass + else: + rulen = rule + + col = 'white' + + if num2 > 0: + col = 'yellow' + + if num2 > 0.5: + col = 'red' + + num = self.logger.colored(num, col) + rulen = self.logger.colored(rulen, col) + + result += f'\t\t- Probability: {num}\tRule: {rulen}\n' + + elif key.lower() == 'gauge': + leng = len(val) + numX = val.lower().count('x') + numI = val.lower().count('i') + others = leng - numX - numI + + probX = (float(numX) / leng) * 100.0 + probI = (float(numI) / leng) * 100.0 + probOthers = (float(others) / leng) * 100.0 + + result += f'\n\t - Value: {self.logger.colored(val, "yellow")}\n' + result += f'\t - Total length: {leng}\n' + result += f'\t - Number of X: {numX} ({probX:.02}%)\n' + result += f'\t - Number of I: {numI} ({probI:.02}%)\n' + result += f'\t - Number of others: {others} ({probOthers:.02}%)\n' + + elif type(val) == list or type(val) == tuple: + result += f'\t Contains {self.logger.colored(len(val), "yellow")} elements.\n' + for rule in val: + if len(rule.strip()) == 0: continue + result += f'\t - {rule}\n' + + else: + result += f'\t {val}\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + + def testSpamDiagnosticMetadata(self): + (num, header, value) = self.getHeader('SpamDiagnosticMetadata') + if num == -1: return [] + + result = f'- SpamDiagnosticMetadata: Antispam stamps in Exchange Server 2016.\n' + self.securityAppliances.add('Exchange Server 2016 Anti-Spam') + + if value.strip() in SMTPHeadersAnalysis.Spam_Diagnostics_Metadata.keys(): + result += f' {value}: ' + SMTPHeadersAnalysis.Spam_Diagnostics_Metadata[value.strip()] + '\n' + else: + result += f' {value}\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testXIronPortSenderGroup(self): + (num, header, value) = self.getHeader('X-IronPort-SenderGroup') + if num == -1: return [] + + self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') + return self._parseCiscoPolicy('\n- Cisco\'s Email Security Appliance (ESA) applied following Mail Flow policy to this e-mails SenderGroup:\n', '', num, header, value) + + def testXIronPortMailFlowPolicy(self): + (num, header, value) = self.getHeader('X-IronPort-MailFlowPolicy') + if num == -1: return [] + + self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') + return self._parseCiscoPolicy( + '\n- Cisco\'s Email Security Appliance (ESA) applied following Mail Flow policy to this e-mail:\n', + ''' +A mail flow policy allows you to control or limit the flow of email messages from a sender to the listener during the SMTP conversation. +You control SMTP conversations by defining the following types of parameters in the mail flow policy. + +Src: https://www.cisco.com/c/en/us/support/docs/security/email-security-appliance/118179-configure-esa-00.html +''', + num, header, value) + + def testXPolicy(self): + (num, header, value) = self.getHeader('X-Policy') + if num == -1: return [] + + if value.strip().upper() in SMTPHeadersAnalysis.Cisco_Predefined_MailFlow_Policies.keys(): + self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') + return self._parseCiscoPolicy('\n- Cisco\'s Email Security Appliance (ESA) applied following Mail Flow policy to this e-mail:\n', '', num, header, value) + + else: + result = '\n- Mail systems applied following policy to this message:\n' + result += f'\n\t- {value}\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def _parseCiscoPolicy(self, topicLine, description, num, header, value): + result = '' + + result += '\n' + topicLine + + k = value.strip().upper() + k2 = self.logger.colored(k, "yellow") + + if k in SMTPHeadersAnalysis.Cisco_Predefined_MailFlow_Policies.keys(): + result += f'\t {k2}: ' + SMTPHeadersAnalysis.Cisco_Predefined_MailFlow_Policies[k] + '\n' + else: + result += f'\t {k2}\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : description + } + + def testXIronPortReputation(self): + (num, header, value) = self.getHeader('X-IronPort-Reputation') + if num == -1: return [] + + self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') + topicLine = f'\n\n- Cisco SenderBase Reputation Service result:\n' + return self._parseCiscoSBRS(topicLine, '', num, header, value) + + def testXSBRS(self): + (num, header, value) = self.getHeader('X-SBRS') + if num == -1: return [] + + topicLine = f'\n\n- Cisco SenderBase Reputation Service result (custom header set):\n' + self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') + return self._parseCiscoSBRS(topicLine, '', num, header, value) + + + def _parseCiscoSBRS(self, topicLine, description, num, header, value): + result = '' + + if not description or len(description) == 0: + description = ''' +The SenderBase Reputation Score (SBRS) is a numeric value assigned to an IP address based on information +from the SenderBase Reputation Service. The SenderBase Reputation Service aggregates data from over 25 +public blocked lists and open proxy lists, and combines this data with global data from SenderBase to assign +a score from -10.0 to +10.0 . + +Src: https://www.cisco.com/c/en/us/td/docs/security/esa/esa11-1/user_guide/b_ESA_Admin_Guide_11_1/b_ESA_Admin_Guide_chapter_0101.pdf +''' + + result += topicLine + + num = 0 + try: + num = float(value.strip()) + + if num < 0: + result += f'\t- Likely {self.logger.colored(f"source of SPAM ({num})", "red")}\n' + + elif num >= 0 and num < 5: + result += f'\t- Likely {self.logger.colored(f"neutral ({num})", "yellow")}\n' + + elif num > 5: + result += f'\t- Likely {self.logger.colored(f"trustworthy sender ({num})", "green")}\n' + + except: + result = f'\t- {value} (could not rate that score!)\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : description, + } + + def testXIronPortAV(self): + (num, header, value) = self.getHeader('X-IronPort-AV') + if num == -1: return [] + + self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') + result = f'- Cisco IronPort Anti-Virus interface.\n' + value = SMTPHeadersAnalysis.flattenLine(value) + + parsed = {} + for a in value.split(';'): + k, v = a.split('=') + k = k.strip() + v = v.strip() + + if v[0] == '"' and v[-1] == '"': + v = v[1:-1].replace(' ', '') + + parsed[k] = v + + for k, v in parsed.items(): + result += f'\n\t- ' + SMTPHeadersAnalysis.IronPort_AV[k][0] + ':\n' + elem = SMTPHeadersAnalysis.IronPort_AV[k][1] + + if k == 'i': + vs = v.split(',') + for i in range(len(elem)): + result += f'\t\t- {elem[i]}:\t{vs[i]}\n' + + elif k == 'E': + v0 = self.logger.colored(v, 'red') + result += f'\t\t- {v0}\n' + self.securityAppliances.add(f'{v} AV') + + elif k == 'e': + vs = v.split("'") + err = 'error' + if vs[1] in elem.keys(): + err = elem[vs[1]] + + result += f'\t\t- {err}: {vs[0]}\n' + + elif k == 'v': + result += f'\t\t- {v}\n' + + elif k == 'd': + result += f'\t\t- {v}\n' + + elif k == 'a': + if ':' not in v: + result += f'\t\t- {v}\n' + continue + + pos = 0 + vs = v.split(':') + + result += f'\t\t- {vs[0]}\n\n' + + _map = SMTPHeadersAnalysis.IronPort_AV[k][1]['_map'] + action = _map[':'] + + result += f'\t\t- {action} section:\n' + + while pos < len(vs[1]): + c = vs[1][pos] + + if c in _map.keys(): + action = _map[c] + result += f'\n\t\t- {action} section:\n' + pos += 1 + + if action == 'time': + ts = vs[1][pos:] + + ts2 = '' + try: + ts2 = datetime.utcfromtimestamp(int(ts)).strftime('%Y-%m-%d %H:%M:%S') + except: + pass + + result += f'\t\t\t\t{ts}, {ts2}\n' + break + + continue + + if c in SMTPHeadersAnalysis.IronPort_AV[k][1][action].keys(): + h = SMTPHeadersAnalysis.IronPort_AV[k][1][action][c] + result += f'\t\t\t- {c}: {h}\n' + else: + result += f'\t\t\t- {c}\n' + + pos += 1 + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testXIronPortSpamFiltered(self): + (num, header, value) = self.getHeader('X-IronPort-Anti-Spam-Filtered') + if num == -1: return [] + + self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') + if value.strip().strip() == 'true': + result = f'- Cisco IronPort Anti-Spam rules {self.logger.colored("marked this message SPAM", "red")}.' + else: + result = f'- Cisco IronPort Anti-Spam rules considered this message CLEAN.' + + result += f' Value: {value}' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testXIronPortSpamResult(self): + (num, header, value) = self.getHeader('X-IronPort-Anti-Spam-Result') + if num == -1: return [] + + self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') + if self.decode_all: + dumped = SMTPHeadersAnalysis.hexdump(SMTPHeadersAnalysis.safeBase64Decode(value)) + + result = f'- Cisco IronPort Anti-Spam result encrypted blob:\n\n' + result += dumped + '\n' + + else: + result = f'- Cisco IronPort Anti-Spam result encrypted blob. Use --decode-all to print its hexdump.' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testXSpamCheckerVersion(self): + (num, header, value) = self.getHeader('X-Spam-Checker-Version') + if num == -1: return [] + + self.securityAppliances.add('SpamAssassin') + result = f'- SpamAssassin version.' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testOvhSpamScore(self): + (num, header, value) = self.getHeader('X-VR-SPAMSCORE') + if num == -1: return [] + + result = f'- OVH considered this message as SPAM and attached following Spam ' + self.securityAppliances.add('OVH Anti-Spam') + value = SMTPHeadersAnalysis.flattenLine(value).replace(' ', '').replace('\t', '') + result += f'Score: {self.logger.colored(value.strip(), "red")}\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testOvhSpamReason(self): + (num, header, value) = self.getHeader('X-Ovh-Spam-Reason') + if num == -1: return [] + + self.securityAppliances.add('OVH Anti-Spam') + result = self.logger.colored(f'- OVH considered this message as SPAM', 'red') + ' and attached following information:\n' + value = SMTPHeadersAnalysis.flattenLine(value).replace(' ', '').replace('\t', '') + tmp = '' + + for part in value.split(';'): + part = part.strip() + tmp += f'\t- {part}\n' + + result += tmp + '\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testSpamCause(self): + (num, header, value) = self.getHeader('X-VR-SPAMCAUSE') + if num == -1: return [] + + result = '' + self.securityAppliances.add('OVH Anti-Spam') + value = SMTPHeadersAnalysis.flattenLine(value).replace(' ', '').replace('\t', '') + + decoded = SMTPHeadersAnalysis.decodeSpamcause(value) + + if SMTPHeadersAnalysis.printable(decoded): + result += f'- SPAMCAUSE contains encoded information about spam reasons:\n' + tmp = '' + + for part in decoded.split(';'): + part = part.strip() + tmp += f'\t- {part}\n' + + result += tmp + '\n' + + if len(result) == 0: + return [] + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testMSFBL(self): + (num, header, value) = self.getHeader('X-MSFBL') + if num == -1: return [] + + parts = value.split('|') + result = '' + + for p in parts: + if p.startswith('eyJ'): + decoded = base64.b64decode(p) + if SMTPHeadersAnalysis.printable(decoded): + result += f'\t- Headers contained Feedback Loop object used by marketing systems to offer ISPs way to notify the sender that recipient marked that e-mail as Junk/Spam.\n' + result += '\n' + json.dumps(json.loads(decoded), indent=4) + '\n' + + if len(result) == 0: + return [] + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testInterestingHeaders(self): + return self._testListRelatedHeaders( + 'Other Interesting SMTP headers that were not processed', + SMTPHeadersAnalysis.Interesting_Headers + ) + + def testSpamRelatedHeaders(self): + return self._testListRelatedHeaders( + 'Other Spam related SMTP headers that were not processed', + SMTPHeadersAnalysis.Header_Keywords_That_May_Contain_Spam_Info + ) + + def testSpamAssassinSpamAlikeLevels(self): + result = '' + tmp = '' + num0 = 0 + headers = [] + values = [] + + shown = set() + handled = [x.lower() for x in SMTPHeadersAnalysis.Handled_Spam_Headers] + + for num, header, value in self.headers: + value = SMTPHeadersAnalysis.flattenLine(value) + + if header in shown or header in handled: + continue + + if re.match(r'\s*\*{1,6}\s*', value): + num0 += 1 + + out = self._parseAsteriskRiskScore('', '', num, header, value) + headers.append(header) + values.append(value) + SMTPHeadersAnalysis.Handled_Spam_Headers.append(header) + + tmp += f'\t({num0:02}) {self.logger.colored("Header", "magenta")}: {header}\n' + tmp += out['analysis'] + shown.add(header) + + if len(tmp) > 0: + self.securityAppliances.add('SpamAssassin alike') + result = '\n- Found SpamAssassin like headers that might indicate Spam Risk score:\n' + result += tmp + '\n' + + if len(result) == 0: + return [] + + if len(headers) > 1: headers[0] = '\t' + headers[0] + if len(values) > 1: values[0] = '\t' + values[0] + + return { + 'header' : '\n\t'.join(headers), + 'value': '\n\t'.join(values), + 'analysis' : result, + 'description' : '', + } + + def _testListRelatedHeaders(self, msg, listOfValues): + result = '' + tmp = '' + num0 = 0 + shown = set() + + handled = [x.lower() for x in SMTPHeadersAnalysis.Handled_Spam_Headers] + + for num, header, value in self.headers: + value = SMTPHeadersAnalysis.flattenLine(value) + + if header in shown or header.lower() in handled: + continue + + for dodgy in listOfValues: + if header in shown: + break + + if dodgy in header.lower() and header.lower(): + num0 += 1 + hhh = re.sub(r'(' + re.escape(dodgy) + r')', self.logger.colored(r'\1', 'red'), header, flags=re.I) + + tmp += f'\t({num0:02}) {self.logger.colored("Header", "magenta")}: {hhh}\n' + tmp += f'\t Keyword: {dodgy}\n' + tmp += f'\t Value: {value[:120]}\n\n' + shown.add(header) + break + + elif dodgy in value.lower() and header.lower(): + num0 += 1 + hhh = header + tmp += f'\t({num0:02}) Header: {hhh}\n' + + pos = value.lower().find(dodgy) + ctx = re.sub(r'(' + re.escape(dodgy) + r')', self.logger.colored(r'\1', 'red'), value, flags=re.I) + + if len(ctx) > 1024: + a = pos-40 + b = -10 + pos + len(dodgy) + 30 + + if a < 0: a = 0 + if b > len(ctx): b = len(ctx) + + ctx = value[a:b] + + ctx = ctx.strip() + + tmp += f'\t Keyword: {dodgy}\n' + tmp += f'\t {self.logger.colored("Value", "magenta")}:\n\n{ctx}\n\n' + shown.add(header) + break + + if len(tmp) > 0: + result = f'- {msg}:\n\n' + result += tmp + '\n' + + if len(result) == 0: + return [] + + return { + 'header' : '-', + 'value': '-', + 'analysis' : result, + 'description' : '', + } + + def testSpamAssassinSpamStatus(self): + (num, header, value) = self.getHeader('X-Spam-Status') + if num == -1: return [] + + self.securityAppliances.add('SpamAssassin') + result = '- SpamAssassin spam report\n\n' + return self._parseSpamAssassinStatus(result, '', num, header, value, SMTPHeadersAnalysis.Barracuda_Score_Thresholds) + + def _parseSpamAssassinStatus(self, topic, description, num, header, value, thresholds): + parsed = {} + result = topic + col = 'green' + _result = value.strip().split(',')[0] + parsed['_result'] = _result + + if parsed['_result'].lower() == 'yes': + col = 'red' + + parsed['_result'] = self.logger.colored(value.strip().split(',')[0].upper(), col) + + pos = len(_result)+2 + extranum = 0 + stop = False + + while pos < len(value): + pose = value.find('=', pos) + if pose == -1: break + + k = value[pos:pose] + + pos2 = len(k) - 1 + while pos2 >= 0: + if k[pos2] == ' ': + parsed[f'extra{extranum}'] = k[:pos2] + k = k[pos2+1:] + extranum += 1 + break + pos2 -= 1 + + l = len(k) - len(k.lstrip()) + if l > 0: + k = k.strip() + pos += l + + if k == 'tests': + v0 = value[pose+1:].replace('\t', ' ').replace('\n', ' ') + m = re.search(r'\s+([a-z_]+\=)', v0) + + if m: + pos0 = value.find(m.group(1), pose+1) + v = value[pose+1:pos0].replace(' ', '').replace('\n', '').split(',') + pos = pos0 + else: + v = v0.replace(' ', '').replace('\n', '').split(',') + stop = True + else: + sp = value.find(' ', pose) + if sp == -1: break + + v = value[pose+1:sp] + pos = sp + 1 + + parsed[k] = v + if stop: + break + + keys = [x.lower() for x in parsed.keys()] + + if 'tag_level' in keys: + level = float(parsed[list(parsed.keys())[keys.index('tag_level')]]) + thresholds[0][1] = level - 0.01 + thresholds[1][0] = level + + if 'quarantine_level' in keys: + level = float(parsed[list(parsed.keys())[keys.index('quarantine_level')]]) + thresholds[1][1] = level - 0.01 + thresholds[2][0] = level + + if 'kill_level' in keys: + level = float(parsed[list(parsed.keys())[keys.index('kill_level')]]) + thresholds[2][1] = level - 0.01 + thresholds[3][0] = level + + for k, v in parsed.items(): + if k in SMTPHeadersAnalysis.SpamAssassin_Spam_Status[1].keys(): + k0 = self.logger.colored(k, 'magenta') + result += f'\t- {k0}: ' + SMTPHeadersAnalysis.SpamAssassin_Spam_Status[1][k] + '\n' + + else: + k0 = self.logger.colored(k, 'magenta') + result += f'\t- {k0}: \n' + + if k.lower() == 'score': + score = self._parseThresholdsBasedScore(v, thresholds) + if score != '': + v += f' - {score}' + + if type(v) == str: + result += f'\t\t- {v}\n' + else: + result += f'\t\t- elements {len(v)}:\n' + for a in v: + result += f'\t\t\t- {a}\n' + + result += '\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : description, + } + + def testDomainImpersonation(self): + (num, header, value) = self.getHeader('From') + if num == -1: return [] + + result = '' + m = re.search(r'<([^<@\s]+)@([^\s]+)>', value) + domain = '' + + if m and len(self.received_path) < 3: + return [] + + username = m.group(1) + domain = m.group(2) + email = f'{username}@{domain}' + + firstHop = self.received_path[1] + + mailDomainAddr = '' + revMailDomain = '' + revFirstSenderDomain = firstHop['host2'] + firstSenderAddr = '' + + try: + mailDomainAddr = socket.gethostbyname(domain) + revMailDomain = socket.gethostbyaddr(mailDomainAddr)[0] + + if(len(firstHop['ip'])) > 0 and len(revFirstSenderDomain) == 0: + revFirstSenderDomain = socket.gethostbyaddr(firstHop['ip'])[0] + + if(len(firstHop['host'])) > 0: + firstSenderAddr = socket.gethostbyname(firstHop['host']) + if len(revFirstSenderDomain) == 0: + revFirstSenderDomain = socket.gethostbyaddr(firstSenderAddr)[0] + except: + pass + + senderDomain = SMTPHeadersAnalysis.extractDomain(revMailDomain) + firstHopDomain1 = SMTPHeadersAnalysis.extractDomain(revFirstSenderDomain) + + if len(senderDomain) == 0: senderDomain = domain + if len(firstHopDomain1) == 0: firstHopDomain1 = firstHop["host"] + + result += f'\t- Mail From: <{email}>\n\n' + result += f'\t- Mail Domain: {domain}\n' + result += f'\t --> resolves to: {mailDomainAddr}\n' + result += f'\t --> reverse-DNS resolves to: {revMailDomain}\n' + result += f'\t (sender\'s domain: {self.logger.colored(senderDomain, "cyan")})\n\n' + + result += f'\t- First Hop: {firstHop["host"]} ({firstHop["ip"]})\n' + result += f'\t --> resolves to: {firstSenderAddr}\n' + result += f'\t --> reverse-DNS resolves to: {revFirstSenderDomain}\n' + result += f'\t (first hop\'s domain: {self.logger.colored(firstHopDomain1, "cyan")})\n\n' + + if firstHopDomain1.lower() != senderDomain.lower(): + response = None + try: + if domain.endswith('.'): domain = domain[:-1] + response = dns.resolver.resolve(domain, 'TXT') + + except (dns.resolver.NXDOMAIN, dns.resolver.NoAnswer) as e: + response = [] + + spf = False + + for answer in response: + txt = str(answer) + if 'v=spf' in txt: + result += f'- Domain SPF: {txt[:64]}\n' + + for _domain in re.findall(r'([a-z0-9_\.-]+\.[a-z]{2,})', txt): + _domain1 = SMTPHeadersAnalysis.extractDomain(_domain) + + if _domain1.lower() == firstHopDomain1: + result += self.logger.colored(f'\n\t- [+] First Hop ({firstHopDomain1}) is authorized to send e-mails on behalf of ({domain}) due to SPF records.\n', 'yellow') + result += '\t- So I\'m not sure if there was Domain Impersonation or not, but my best guess is negative.\n' + spf = True + break + + if spf: + break + + if not spf: + result += self.logger.colored('\n- WARNING! Potential Domain Impersonation!\n', 'red') + result += f'\t- Mail\'s domain should resolve to: \t{self.logger.colored(senderDomain, "green")}\n' + result += f'\t- But instead first hop resolved to:\t{self.logger.colored(firstHopDomain1, "red")}\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testSpamAssassinSpamFlag(self): + (num, header, value) = self.getHeader('X-Spam-Flag') + if num == -1: return [] + + self.securityAppliances.add('SpamAssassin') + + if value.strip().lower() == 'yes': + result = self.logger.colored(f'- SpamAssassin marked this message as SPAM:\n', 'red') + result += f'\t- ' + self.logger.colored(value, 'red') + '\n' + else: + result = self.logger.colored(f'- SpamAssassin did not mark this message as spam:\n', 'green') + result += f'\t- ' + self.logger.colored(value, 'green') + '\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def _parseAsteriskRiskScore(self, topicLine, description, num, header, value): + desc = '' + + result = topicLine + value = value.strip() + val = self.logger.colored(value, 'yellow') + + if len(value) <= 6: + if value in SMTPHeadersAnalysis.Aterisk_Risk_Score.keys(): + desc = f' ({SMTPHeadersAnalysis.Aterisk_Risk_Score[value]})' + + a = len(value) + b = 6 + result += f'\t- ({a}/{b}) {val} {desc}\n\n' + + else: + result += f'\t- {val}\n\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : description, + } + + def testSpamAssassinSpamLevel(self): + (num, header, value) = self.getHeader('X-Spam-Level') + if num == -1: return [] + self.securityAppliances.add('SpamAssassin') + return self._parseAsteriskRiskScore('- SpamAssassin assigned following spam level to this message:\n', '', num, header, value) + + def testSpamAssassinSpamReport(self): + (num, header, value) = self.getHeader('X-Spam-Report') + if num == -1: return [] + + self.securityAppliances.add('SpamAssassin') + if len(value.strip()) > 0: + result = f'- SpamAssassin assigned following spam report to this message:\n' + tmp = '' + + for line in value.split('\n'): + if line.strip().startswith('* '): + line = line.strip()[2:] + result += f'- {line}\n' + + result += tmp + '\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + return [] + + def testATPMessageProperties(self): + (num, header, value) = self.getHeader('X-MS-Exchange-AtpMessageProperties') + if num == -1: return [] + + props = value.split('|') + self.securityAppliances.add('MS Defender Advanced Threat Protection') + result = '- MS Defender Advanced Threat Protection enabled following protections on this message:\n' + + for prop in props: + if prop in SMTPHeadersAnalysis.ATP_Message_Properties.keys(): + result += f'\t- ' + self.logger.colored(SMTPHeadersAnalysis.ATP_Message_Properties[prop], 'magenta') + '\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testXAmpResult(self): + (num, header, value) = self.getHeader('X-Amp-Result') + if num == -1: return [] + + self.securityAppliances.add('Cisco Advanced Malware Protection (AMP)') + result = '- Cisco Meraki Advanced Malware Protection (AMP) sandbox marked this message as:\n' + val = value.strip() + k = value.strip().upper() + + if k in SMTPHeadersAnalysis.AMP_Results.keys(): + val = f'\t- {k}: {SMTPHeadersAnalysis.AMP_Results[k]}\n' + else: + result += f'\t- {val}\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testXIPSpamVerdict(self): + (num, header, value) = self.getHeader('X-IP-Spam-Verdict') + if num == -1: return [] + + self.securityAppliances.add('SpamAssassin') + result = '- An old SpamAssassin SPAM verdict header:\n' + + col = 'cyan' + if 'spam' in value.lower(): + col = "red" + + result += '\t- ' + self.logger.colored(value.strip(), col) + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def parseReceived(self, received): + obj = { + 'host' : '', + 'host2' : '', + 'ip' : '', + 'timestamp' : '', + 'ver' : '', + 'with' : '', + 'extra' : [], + } + + keys = ( + 'from', + 'by', + 'via', + 'with', + 'id', + 'for', + ) + + found = set() + + parsed = {} + + pos = 0 + lastkey = '' + posOfKey = 0 + extrapos = 0 + + if not received.lower().strip().startswith('from'): + received = 'from ' + received + + paren = 0 + while pos < len(received): + keynow = '' + + if received[pos] == '(': + paren += 1 + pos += 1 + continue + + elif received[pos] == ')': + paren -= 1 + pos += 1 + continue + + if paren > 0 or received[pos] in string.whitespace: + pos += 1 + continue + + for key in keys: + if key in found: continue + tmp = False + if pos == 0: tmp = True + else: tmp = (received[pos-1] in string.whitespace) + + if received[pos:].lower().startswith(key + ' ') and tmp: + if lastkey != '': + parsed[lastkey] = received[posOfKey+len(lastkey)+1:pos].strip() + + lastkey = keynow = key + posOfKey = pos + found.add(key) + pos += len(key) + break + + pos += 1 + + if lastkey not in parsed.keys(): + parsed[lastkey] = received[posOfKey+len(lastkey)+1:].strip() + + if ';' in parsed[lastkey]: + pos = parsed[lastkey].find(';') + parsed[lastkey] = parsed[lastkey][:pos] + + obj['parsed'] = parsed + + if 'from' not in parsed.keys(): + return {} + + obj['host'] = '' + obj['ip'] = '' + obj['host2'] = '' + + match = re.search( + r'(?P[^\s]+)\s+(?:\((?P[^\s]+)(?:\s*\[(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\])?\))?', + parsed['from'], + re.I + ) + + if match: + obj['host'] = match.group('host') + obj['ip'] = match.group('ip') + obj['host2'] = match.group('host2') + + if not obj['ip']: obj['ip'] = '' + if not obj['host']: obj['host'] = '' + if not obj['host2']: obj['host2'] = '' + + if obj['host'][0] == '[' and obj['host'][-1] == ']': + obj['ip'] = obj['host'][1:-1] + obj['host'] = '' + + obj['host2'] = obj['host2'].lower().replace('ehlo=', 'helo=') + + if 'helo=' in obj['host2'].lower(): + obj['host'] = obj['host2'][obj['host2'].lower().find('helo=')+5:] + obj['host2'] = '' + + if obj['host'] == '' and obj['ip'] != '': + try: + res = socket.gethostbyaddr(obj['ip']) + if len(res) > 0: + obj['host'] = res[0] + except: + pass + + if len(obj['host2']) > 0: + match = re.match(r'\[?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\]?', obj['host2']) + if obj['ip'] == None or len(obj['ip']) == 0 and match: + obj['ip'] = match.group(1) + obj['host2'] = '' + + if len(obj['host2']) == 0: + if obj['ip'] != None and len(obj['ip']) > 0: + try: + res = socket.gethostbyaddr(obj['ip']) + if len(res) > 0: + obj['host2'] = res[0] + except: + obj['host2'] = self.logger.colored('NXDomain', 'red') + + if extrapos == 0: + a = received.find(obj['host']) + len(obj['host']) + b = received.find(obj['host2']) + len(obj['host2']) + c = received.find(obj['ip']) + len(obj['ip']) + + extrapos = max(a, b, c) + else: + return {} + + if 'id' in parsed.keys(): + ver = parsed['id'].strip() + obj['ver'] = ver + + pos = received.find(';') + if pos != -1: + ts = received[pos+1:].strip() + obj['timestamp'] = str(parser.parse(ts).astimezone(tzutc())) + + for m in re.finditer(r'(? 0: + vers = SMTPHeadersAnalysis.parseExchangeVersion(obj['ver']) + if vers != None: + obj['ver'] = self.logger.colored(str(vers), 'magenta') + + if obj and (obj['ip'] == None or len(obj['ip']) == 0): + if obj['host'] != None and len(obj['host']) > 0: + try: + obj['ip'] = socket.gethostbyname(obj['host']) + except: + pass + + if obj['ip'] != None and len(obj['ip']) > 0: + match = re.match(r'(?P[^\s]+)\.?\s+\[(?P[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\]', obj['ip'], re.I) + match2 = re.search(r'\[(?P[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\]', obj['ip'], re.I) + + if match: + obj['host'] = match.group('host') + obj['ip'] = match.group('ip') + + elif match2: + obj['ip'] = match2.group(1) + + if len(obj) > 0: + path.append(obj) + + if n2 != -1: + path.append({ + 'host' : self.logger.colored(v2, 'green'), + 'host2' : '', + 'ip' : '', + 'timestamp' : None, + 'ver' : '', + 'parsed' : {}, + 'extra' : [], + }) + + result = '- List of server hops used to deliver message:\n\n' + iindent = ' ' + indent = ' ' + num = 0 + + for i in range(len(path)): + elem = path[i] + + if len(elem) < 2: + continue + + num += 1 + s = '-->' + if i > 0: + s = '|_>' + + if num == 2 or n1 == -1: + result += iindent + indent * (num+1) + f'{s} ({num}) {self.logger.colored(elem["host"], "green")}' + else: + result += iindent + indent * (num+1) + f'{s} ({num}) {self.logger.colored(elem["host"], "yellow")}' + + if elem['ip'] != None and len(elem['ip']) > 0: + if elem['ip'][0] == '[' and elem['ip'][-1] == ']': + elem['ip'] = elem['ip'][1:-1] + + if num == 2: + result += f' ({self.logger.colored(elem["ip"], "green")})\n' + else: + result += f' ({self.logger.colored(elem["ip"], "yellow")})\n' + else: + result += '\n' + + if len(elem['host2']) > 0: + if elem['host2'].endswith('.'): + elem['host2'] = self.logger.colored(elem['host2'][:-1], 'yellow') + + if elem['host2'] != elem['host'] and elem['host2'] != elem['ip']: + #result += f' (rev: {self.logger.colored(elem["host2"], "yellow")})' + result += iindent + indent * (num+3) + 'rev-DNS: ' + self.logger.colored(elem["host2"], "yellow") + '\n' + + if elem['timestamp'] != None: + result += iindent + indent * (num+3) + 'time: ' + elem['timestamp'] + '\n' + + if len(elem['ver']) > 0: + result += iindent + indent * (num+3) + 'id: ' + elem['ver'] + '\n' + + for kk, vv in elem['parsed'].items(): + vv = str(vv) + if len(vv.strip()) == 0: continue + + if kk.lower() not in ['ip', 'host', 'host2', 'id', 'timestamp', 'parsed', 'extra', '_raw', 'from', 'time']: + n = 8 - len(kk) + if n < 0: n = 0 + vv2 = vv.replace('<', '').replace('>', '') + if kk == 'for' and (vv2 == v1 or vv2 == v2): + continue + + vv = self.colorizeKeywords(vv) + result += iindent + indent * (num+3) + kk + ': ' + ' ' * (n) + vv + '\n' + + if 'extra' in elem.keys() and len(elem['extra']) > 0: + result += iindent + indent * (num+3) + 'extra: \n' + for vv in elem['extra']: + vv0 = self.colorizeKeywords(vv) + result += iindent + indent * (num+4) + '- ' + vv0 + '\n' + + result += '\n' + + self.received_path = path + + if 1 not in self.testsToRun: + return [] + + return { + 'header' : 'Received', + 'value': '...', + 'analysis' : result, + 'description' : '', + } + + def testAntispamReportCFA(self): + (num, header, value) = self.getHeader('X-Exchange-Antispam-Report-CFA-Test') + if num == -1: return [] + + obj = { + 'header' : header, + 'value' : value, + 'analysis' : '', + 'description' : '', + } + + result = '' + + obj1 = self._parseBulk(num, header, value) + result += obj1['analysis'] + + obj2 = self._parseAntiSpamReport(num, header, value) + result += obj2['analysis'] + + self.securityAppliances.add('MS ForeFront Anti-Spam') + + obj['analysis'] = result + return obj + + def testMicrosoftAntiSpam(self): + (num, header, value) = self.getHeader('X-Microsoft-Antispam') + if num == -1: return [] + + self.securityAppliances.add('MS ForeFront Anti-Spam') + return self._parseBulk(num, header, value) + + def testForefrontAntiSCL(self): + (num, header, value) = self.getHeader('X-MS-Exchange-Organization-SCL') + if num == -1: return [] + + tmp = self._parseSCLBased(value.strip(), 'SCL', 'Spam Confidence Level', 'spam', SMTPHeadersAnalysis.ForeFront_Spam_Confidence_Levels) + + if len(tmp) == 0: + return [] + + result = tmp + '\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def _parseSCLBased(self, score, key, topic, listname, listelems): + addscl = False + tmpfoo = '' + result = '' + + v = (topic, listname, listelems) + + k = key + addscl = True + scl = int(score) + k0 = self.logger.colored(k, 'magenta') + tmpfoo += f'- {k0}: {v[0]}: ' + str(scl) + '\n' + + levels = list(v[2].keys()) + levels.sort() + + if scl in levels: + s = v[2][scl] + f = self.logger.colored(f'Not {v[1]}', 'green') + if s[0]: + f = self.logger.colored(v[1].upper(), 'red') + + tmpfoo += f'\t- {f}: {s[1]}\n' + + else: + for i in range(len(levels)): + if scl <= levels[i] and i > 0: + s = v[2][levels[i-1]] + f = self.logger.colored(f'Not {v[1]}', 'green') + if s[0]: + f = self.logger.colored(v[1].upper(), 'red') + + tmpfoo += f'\t- {f}: {s[1]}\n' + break + elif scl <= levels[0]: + s = v[2][levels[0]] + f = self.logger.colored(f'Not {v[1]}', 'green') + if s[0]: + f = self.logger.colored(v[1].upper(), 'red') + + tmpfoo += f'\t- {f}: {s[1]}\n' + break + + if addscl: + result += tmpfoo + + return result + + def _parseBulk(self, num, header, value): + parsed = {} + result = '' + + for entry in value.split(';'): + if(len(entry.strip()) == 0): continue + k, v = entry.strip().split(':') + parsed[k] = v + + if 'BCL' in parsed.keys(): + scl = int(parsed['BCL']) + tmp = '' + lvl = self.logger.colored(str(scl), 'green') + if scl > 0: + lvl = self.logger.colored(str(scl), 'red') + + tmp += f'- {self.logger.colored("BCL", "magenta")}: BULK Confidence Level: ' + lvl + '\n' + + levels = list(SMTPHeadersAnalysis.ForeFront_Bulk_Confidence_Levels.keys()) + levels.sort() + + if scl in levels: + tmp += '\t- ' + SMTPHeadersAnalysis.ForeFront_Bulk_Confidence_Levels[scl] + '\n' + + else: + for i in range(len(levels)): + if scl <= levels[i] and i > 0: + tmp += '\t' + SMTPHeadersAnalysis.ForeFront_Bulk_Confidence_Levels[levels[i-1]] + '\n' + break + elif scl <= levels[0]: + tmp += '\t' + SMTPHeadersAnalysis.ForeFront_Bulk_Confidence_Levels[levels[0]] + '\n' + break + + result += tmp + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testForefrontAntiSpamReport(self): + (num, header, value) = self.getHeader('X-Forefront-Antispam-Report') + if num == -1: return [] + + self.securityAppliances.add('MS ForeFront Anti-Spam') + return self._parseAntiSpamReport(num, header, value) + + def testForefrontAntiSpamReportUntrusted(self): + (num, header, value) = self.getHeader('X-Forefront-Antispam-Report-Untrusted') + if num == -1: return [] + + self.securityAppliances.add('MS ForeFront Anti-Spam') + return self._parseAntiSpamReport(num, header, value) + + def testForefrontAntiSpamUntrusted(self): + (num, header, value) = self.getHeader('X-Microsoft-Antispam-Untrusted') + if num == -1: return [] + + self.securityAppliances.add('MS ForeFront Anti-Spam') + return self._parseAntiSpamReport(num, header, value) + + def _parseAntiSpamReport(self, num, header, value): + parsed = {} + result = '- Microsoft Office365/Exchange ForeFront Anti-Spam report\n\n' + + for entry in value.split(';'): + if len(entry.strip()) == 0: continue + k, v = entry.split(':') + if k not in parsed.keys(): + parsed[k] = v + + if 'CIP' in parsed.keys(): + res = '' + if self.resolve: + resolved = SMTPHeadersAnalysis.resolveAddress(parsed['CIP']) + + result += f'- {self.logger.colored("CIP", "magenta")}: Connecting IP address: {parsed["CIP"]} (resolved: {resolved})\n\n' + else: + result += f'- {self.logger.colored("CIP", "magenta")}: Connecting IP address: {parsed["CIP"]}\n\n' + + for k, v in parsed.items(): + elem = None + + if k.upper() in SMTPHeadersAnalysis.Forefront_Antispam_Report.keys(): + elem = SMTPHeadersAnalysis.Forefront_Antispam_Report[k.upper()] + + elif k in SMTPHeadersAnalysis.Forefront_Antispam_Report.keys(): + elem = SMTPHeadersAnalysis.Forefront_Antispam_Report[k] + + if elem: + vals = v.split(',') + found = False + k0 = self.logger.colored(k, 'magenta') + tmp = f'- {k0}: ' + elem[0] + '\n' + + if type(elem[1]) == dict: + for va in vals: + if va in elem[1].keys(): + found = True + tmp += f'\t- {va}: {elem[1][va]}\n' + + if not found and len(v.strip()) > 0: + tmp += f'\t- {v}\n' + found = True + + elif len(v) > 0: + found = True + tmp += f'\t- {v}\n' + + if found: + result += tmp + '\n' + + usedRE = False + for k in ['SFS', 'RULEID', 'ENG']: + if k in parsed.keys(): + res = '' + rules = [x.replace('(', '') for x in parsed[k].split(')')] + + if len(rules) == 1 and len(rules[0].strip()) == 0: + rules = [] + + k0 = self.logger.colored(k, 'magenta') + tmp = f'- Message matched {self.logger.colored(str(len(rules)), "yellow")} Anti-Spam rules ({k0}):\n' + + rules.sort() + for r in rules: + if len(r) == 0: continue + + r2 = f'({r})' + if r in SMTPHeadersAnalysis.Anti_Spam_Rules_ReverseEngineered.keys(): + e = SMTPHeadersAnalysis.Anti_Spam_Rules_ReverseEngineered[r] + tmp += f'\t- {r2: <15} - {e}\n' + usedRE = True + else: + tmp += f'\t- {r2}\n' + + result += tmp + '\n' + + if usedRE: + result += '\tNOTICE:\n' + result += '\t(Anti-Spam rule explanation can only be considered as a clue, hint rather than a definitive explanation.)\n' + result += '\t(Rules meaning was established merely in a trial-and-error process by observing SMTP header differences.)\n\n' + + sclpcl = { + 'SCL' : ('Spam Confidence Level', 'spam', SMTPHeadersAnalysis.ForeFront_Spam_Confidence_Levels), + 'PCL' : ('Phishing Confidence Level', 'phishing', SMTPHeadersAnalysis.ForeFront_Phishing_Confidence_Levels), + } + + addscl = False + tmpfoo = '' + + for k, v in sclpcl.items(): + if k in parsed.keys(): + addscl = True + scl = int(parsed[k]) + k0 = self.logger.colored(k, 'magenta') + tmpfoo += f'- {k0}: {v[0]}: ' + str(scl) + '\n' + + levels = list(v[2].keys()) + levels.sort() + + if scl in levels: + s = v[2][scl] + f = self.logger.colored(f'Not {v[1]}', 'green') + if s[0]: + f = self.logger.colored(v[1].upper(), 'red') + + tmpfoo += f'\t- {f}: {s[1]}\n' + + else: + for i in range(len(levels)): + if scl <= levels[i] and i > 0: + s = v[2][levels[i-1]] + f = self.logger.colored(f'Not {v[1]}', 'green') + if s[0]: + f = self.logger.colored(v[1].upper(), 'red') + + tmpfoo += f'\t- {f}: {s[1]}\n' + break + elif scl <= levels[0]: + s = v[2][levels[0]] + f = self.logger.colored(f'Not {v[1]}', 'green') + if s[0]: + f = self.logger.colored(v[1].upper(), 'red') + + tmpfoo += f'\t- {f}: {s[1]}\n' + break + + if addscl: + result += tmpfoo + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testFrom(self): + (num, header, value) = self.getHeader('From') + if num == -1: return [] + + result = '' + m = re.search(r'<([^<@\s]+)@([^\s]+)>', value) + + if m: + username = m.group(1) + domain = m.group(2) + email = f'{username}@{domain}' + + if username.lower() in SMTPHeadersAnalysis.Dodgy_User_Names: + result += self.logger.colored(f'- Username "{username}" in your sender email ({email}) is known to be blacklisted!\n', 'red') + + if len(result) == 0: + return [] + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testDecodeEncodedHeaders(self): + result = '' + tmp = '' + found = False + num0 = 0 + shown = set() + + for (num, header, value) in self.headers: + v = SMTPHeadersAnalysis.flattenLine(value) + m = re.search(r'\=\?[a-z0-9\-]+\?Q\?', v, re.I) + if m: + num0 += 1 + + SMTPHeadersAnalysis.Handled_Spam_Headers.append(header) + + value_decoded = emailheader.decode_header(value)[0][0] + if type(value_decoded) == bytes: + value_decoded = value_decoded.decode() + + hhh = self.logger.colored(header, 'magenta') + tmp += f'\t({num0:02}) Header: {hhh}\n' + tmp += f'\t Value:\n\n' + tmp += value_decoded + '\n\n' + + try: + x = SMTPHeadersAnalysis.hexdump(base64.b64decode(value_decoded.encode())) + tmp += f'\t Base64 decoded Hexdump:\n\n' + tmp += x + tmp += '\n\n\n' + except: + pass + + shown.add(header) + + if len(tmp) > 0: + result = '- Decoded headers:\n\n' + result += tmp + '\n' + + if len(result) == 0: + return [] + + return { + 'header' : header, + 'value': '...', + 'analysis' : result, + 'description' : '', + } + + def testMicrosoftAntiSpamMessageInfo(self): + (num, header, value) = self.getHeader('X-Microsoft-Antispam-Message-Info') + if num == -1: return [] + + value = emailheader.decode_header(value)[0][0] + if type(value) == bytes: + value = value.decode() + + self.securityAppliances.add('MS ForeFront Anti-Spam') + result = '- Base64 encoded & encrypted Antispam Message Info:\n\n' + result += value + + tmp = '' + + if self.decode_all: + tmp += f'\n\n\t- Base64 decoded Hexdump:\n\n' + tmp += SMTPHeadersAnalysis.hexdump(base64.b64decode(value)) + tmp += '\n\n\n' + else: + tmp += '\n\n\t- Use --decode-all to print its hexdump.' + + result += tmp + + return { + 'header' : header, + 'value': '...', + 'analysis' : result, + 'description' : '', + } + + def testAntispamMailboxDelivery(self): + (num, header, value) = self.getHeader('X-Microsoft-Antispam-Mailbox-Delivery') + if num == -1: return [] + + parsed = {} + self.securityAppliances.add('MS ForeFront Anti-Spam') + result = '- This header denotes what to do with received message, where to put it.\n\n' + + for entry in value.split(';'): + if len(entry.strip()) == 0: continue + k, v = entry.split(':') + if k not in parsed.keys(): + parsed[k] = v + + for k, v in parsed.items(): + elem = None + + if k.upper() in SMTPHeadersAnalysis.Forefront_Antispam_Delivery.keys(): + elem = SMTPHeadersAnalysis.Forefront_Antispam_Delivery[k.upper()] + + elif k in SMTPHeadersAnalysis.Forefront_Antispam_Delivery.keys(): + elem = SMTPHeadersAnalysis.Forefront_Antispam_Delivery[k] + + if elem: + vals = v.split(',') + found = False + k0 = self.logger.colored(k, 'magenta') + tmp = f'- {k0}: ' + elem[0] + '\n' + + if type(elem[1]) == dict: + for va in vals: + if va in elem[1].keys(): + found = True + tmp += f'\t- {va}: {elem[1][va]}\n' + + if not found and len(v.strip()) > 0: + tmp += f'\t- Unknown value: "{v}" in parameter {k0}\n' + found = True + + elif len(v) > 0: + found = True + tmp += f'\t- {v}\n' + + if found: + result += tmp + '\n' + + for k in ['SFS', 'RULEID', 'ENG']: + if k in parsed.keys(): + res = '' + rules = [x.replace('(', '') for x in parsed[k].split(')')] + + if len(rules) == 1 and len(rules[0].strip()) == 0: + rules = [] + + k0 = self.logger.colored(k, 'magenta') + tmp = f'- Message matched {self.logger.colored(len(rules), "yellow")} Anti-Spam Delivery rules ({k0}):\n' + + rules.sort() + usedRE = False + + for r in rules: + if len(r) == 0: continue + + r2 = f'({r})' + if r in SMTPHeadersAnalysis.Anti_Spam_Rules_ReverseEngineered.keys(): + e = SMTPHeadersAnalysis.Anti_Spam_Rules_ReverseEngineered[r] + tmp += f'\t- {r2: <15} - {e}\n' + usedRE = True + else: + tmp += f'\t- {r2}\n' + + result += tmp + '\n' + + if usedRE: + result += '\tNOTICE:\n' + result += '\t(Anti-Spam rule explanation can only be considered as a clue, hint rather than a definitive explanation.)\n' + result += '\t(Rules meaning was established merely in a trial-and-error process by observing SMTP header differences.)\n\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testXMailer(self): + (num, header, value) = self.getHeader('X-Mailer') + if num == -1: return [] + + vvv = self.logger.colored(value, 'magenta') + self.securityAppliances.add(value) + result = f'- X-Mailer header was present and contained value: {vvv}\n' + result + ' This header typically indicates sending client\'s name (similar to User-Agent).' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testUserAgent(self): + (num, header, value) = self.getHeader('User-Agent') + if num == -1: return [] + + vvv = self.logger.colored(value, 'magenta') + result = f'- User-Agent header was present and contained value: {vvv}\n' + result + ' This header typically indicates sending client\'s name (similar to X-Mailer).' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testXMimecastBulkSignature(self): + (num, header, value) = self.getHeader('X-Mimecast-Bulk-Signature') + if num == -1: return [] + + if value.strip().lower() == 'yes': + result = f'- Mimecast considers the message as Bulk: {self.logger.colored(value.upper(), "red")}\n' + else: + result = f'- Mimecast does not consider the message as Bulk: {self.logger.colored(value.upper(), "green")}\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testXMimecastSpamSignature(self): + (num, header, value) = self.getHeader('X-Mimecast-Spam-Signature') + if num == -1: return [] + + result = f'- Mimecast considers the message as spam due to:\n\t- {self.logger.colored(value, "yellow")}\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testXMimecastSpamScore(self): + (num, header, value) = self.getHeader('X-Mimecast-Spam-Score') + if num == -1: return [] + + vvv = self.logger.colored(value, 'magenta') + self.securityAppliances.add('Mimecast') + result = f'- Mimecast attached following Spam score: {vvv}\n' + + try: + score = int(value.strip()) + + if score < 3: + result += '\t- ' + self.logger.colored('Not a spam', 'green') + + if score >= 3 and score < 5: + result += '\t- ' + self.logger.colored('Low confidence it is a spam', 'green') + + if score > 5 and score <= 7: + result += '\t- ' + self.logger.colored('Medium confidence that might be a spam', 'yellow') + + if score > 7: + result += '\t- ' + self.logger.colored('High confidence - this is a SPAM', 'red') + + except: + pass + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testTLCOObClasifiers(self): + (num, header, value) = self.getHeader('X-MS-Oob-TLC-OOBClassifiers') + if num == -1: return [] + + result = f'- {self.logger.colored("OOB", "magenta")} Classifiers and their results:\n' + value = value.replace(' ', '') + + for a in value.split(';'): + if(len(a)) == 0: continue + k, v = a.split(':') + k0 = self.logger.colored(k, 'magenta') + + if k in SMTPHeadersAnalysis.TLCOOBClassifiers.keys(): + elem = SMTPHeadersAnalysis.TLCOOBClassifiers[k] + + if len(elem[0]) > 0: + result += f'\t- {k0}:{v} - ' + elem[0] + '\n' + else: + result += f'\t- {k0}:{v}\n' + + if v in elem[1].keys(): + result += f'\t\t- ' + elem[1][v] + '\n' + else: + result += f'\t- {k0}:{v}\n' + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testTransportEndToEndLatency(self): + (num, header, value) = self.getHeader('X-MS-Exchange-Transport-EndToEndLatency') + if num == -1: return [] + + result = f'- How much time did it take to deliver message from End-to-End: ' + self.logger.colored(value, 'cyan') + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testReceivedSPF(self): + (num, header, value) = self.getHeader('Received-SPF') + if num == -1: return [] + + value = SMTPHeadersAnalysis.flattenLine(value) + result = '' + words = [x.strip() for x in value.lower().split(' ') if len(x.strip()) > 0] + + if words[0] != 'pass': + result += self.logger.colored(f'- Received-SPF test failed', 'red') + ': Should be "pass", but was: "' + str(words[0]) + '"\n' + + if len(result) == 0: + return [] + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testAuthenticationResults(self): + return self._testAuthenticationResults('Authentication-Results') + + def testARCAuthenticationResults(self): + return self._testAuthenticationResults('ARC-Authentication-Results') + + def testXTMAuthenticationResults(self): + return self._testAuthenticationResults('X-TM-Authentication-Results') + + def _testAuthenticationResults(self, targetHeader): + headersCounted = 0 + headersCountedAll = 0 + + for (num, header, value) in self.headers: + if header.lower() == targetHeader.lower(): + headersCountedAll += 1 + + for (num, header, value) in self.headers: + if header.lower() == targetHeader.lower(): + headersCounted += 1 + SMTPHeadersAnalysis.Handled_Spam_Headers.append(header.lower()) + out = self._testAuthenticationResultsWorker(num, header, value) + if out != []: + analysis = out['analysis'] + result = f'- There were {self.logger.colored(headersCountedAll, "magenta")} headers named {self.logger.colored(targetHeader, "magenta")}. The {headersCounted}. one is considered problematic:\n' + out['analysis'] = result + '\n' + analysis + return out + + return [] + + def _testAuthenticationResultsWorker(self, num, header, value): + value = SMTPHeadersAnalysis.flattenLine(value) + tests = {} + result = '' + + for l in re.findall(r'([a-z]+=[a-zA-Z0-9]+)', value, re.I): + a, b = l.lower().split('=') + tests[a] = b + + for k in ['spf', 'dkim', 'dmarc']: + expected = ['pass', ] + + if k == 'dmarc': + expected.append('bestguesspass') + + if k in tests.keys() and tests[k] not in expected: + p = self.logger.colored('pass', 'green') + p2 = self.logger.colored(tests[k], 'red') + + result += self.logger.colored(f'- {k.upper()} test failed:', 'red') + f' Should be "{p}", but was: "' + p2 + '"\n' + + if k.lower() == 'dkim' and tests[k] in SMTPHeadersAnalysis.auth_result.keys(): + result += '\t- Meaning: ' + SMTPHeadersAnalysis.auth_result[tests[k]] + '\n\n' + + if len(result) == 0: + return [] + + return { + 'header' : header, + 'value': value, + 'analysis' : result, + 'description' : '', + } + + def testExtractIP(self): + addresses = re.findall(r'([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})', self.text) + result = '' + tmp = '' + resolved = set() + + if len(addresses) == 0: return [] + + self.logger.dbg('Running testExtractIP...') + + for addr in addresses: + if addr in resolved: + continue + + try: + resolved.add(addr) + if self.resolve: + self.logger.dbg(f'testExtractIP: Resolving {addr}...') + out = SMTPHeadersAnalysis.resolveAddress(ipaddr) + + addr = self.logger.colored(addr, 'magenta') + tmp += f'\t- Found IP address: ({addr}) that resolves to: {out[0]}\n' + else: + addr = self.logger.colored(addr, 'magenta') + tmp += f'\t- Found IP address: ({addr})\n' + + except Exception as e: + tmp += f'\t- Found IP address: ({addr}) that wasn\'t resolved\n' + + if len(tmp) > 0: + if self.resolve: + result = '\n\t- Extracted IP addresses from headers and attempted resolve them:\n\n' + else: + result = '\n\t- Extracted IP addresses from headers:\n\n' + + result += tmp + + if len(resolved) == 0: + return [] + + return { + 'header' : '-', + 'value': '-', + 'analysis' : '\t' + result, + 'description' : '', + } + + def testResolveIntoIP(self): + domains = set(re.findall(r'([a-zA-Z0-9_\-\.]+\.[a-zA-Z]{2,})', self.text, re.I)) + resolved = set() + result = '' + tmp = '' + + skip = ( + 'smtp.mailfrom', + 'header.from', + ) + + if len(domains) == 0: return [] + + self.logger.dbg('Running testResolveIntoIP...') + + for d in domains: + if d in resolved: continue + if d in skip: continue + + try: + resolved.add(d) + d2 = self.colorizeKeywords(d) + + if self.resolve: + self.logger.dbg(f'testResolveIntoIP: Resolving {d}...') + out = socket.gethostbyname(d) + + if type(out) == list: + out = out[0] + + tmp += f'\t- Found Domain: {d2}\n\t\t- that resolves to: {out}\n' + else: + tmp += f'\t- Found Domain: {d2}\n' + + + except Exception as e: + tmp += f'\t- Found Domain: ({self.logger.colored(d, "magenta")}) that wasn\'t resolved\n' + + if len(tmp) > 0: + if self.resolve: + result = '\n\t- Extracted domains from headers and attempted resolve them:\n\n' + else: + result = '\n\t- Extracted domains from headers:\n\n' + + result += tmp + + if len(resolved) == 0: + return [] + + return { + 'header' : '-', + 'value': '-', + 'analysis' : '\t' + result, + 'description' : '', + } + + def testBadKeywords(self): + result = '' + for num, header, value in self.headers: + for w in SMTPHeadersAnalysis.bad_keywords: + if w.lower() in value.lower(): + SMTPHeadersAnalysis.Handled_Spam_Headers.append(header) + result += self.logger.colored(f'- Header\'s ({header}) value contained bad keyword: "{w}"\n', 'red') + result += f' Value: {value}\n\n' + + elif w.lower() in header.lower(): + SMTPHeadersAnalysis.Handled_Spam_Headers.append(header) + result += self.logger.colored(f'- Header\'s ({header}) name contained bad keyword: "{w}"\n\n', 'red') + + if len(result) == 0: + return [] + + return { + 'header' : '-', + 'value': '-', + 'analysis' : result, + 'description' : '', + } + +def opts(argv): + global options + global logger + + o = argparse.ArgumentParser( + usage = 'decode-spam-headers.py [options] ' + ) + + req = o.add_argument_group('Required arguments') + req.add_argument('infile', help = 'Input file to be analysed or --list tests to show available tests.') + + opt = o.add_argument_group('Options') + opt.add_argument('-o', '--outfile', default='', type=str, help = 'Output file with report') + opt.add_argument('-f', '--format', choices=['json', 'text', 'html'], default='text', help='Analysis report format. JSON, text. Default: text') + opt.add_argument('-N', '--nocolor', default=False, action='store_true', help='Dont use colors in text output.') + opt.add_argument('-v', '--verbose', default=False, action='store_true', help='Verbose mode.') + opt.add_argument('-d', '--debug', default=False, action='store_true', help='Debug mode.') + + tst = o.add_argument_group('Tests') + opt.add_argument('-l', '--list', default=False, action='store_true', help='List available tests and quit. Use it like so: --list tests') + tst.add_argument('-i', '--include-tests', default='', metavar='tests', help='Comma-separated list of test IDs to run. Ex. --include-tests 1,3,7') + tst.add_argument('-e', '--exclude-tests', default='', metavar='tests', help='Comma-separated list of test IDs to skip. Ex. --exclude-tests 1,3,7') + tst.add_argument('-r', '--resolve', default=False, action='store_true', help='Resolve IPv4 addresses / Domain names.') + tst.add_argument('-a', '--decode-all', default=False, action='store_true', help='Decode all =?us-ascii?Q? mail encoded messages and print their contents.') + + args = o.parse_args() + + if len(args.outfile) > 0 and (args.format == 'json' or args.format == 'text'): + args.nocolor = True + + options.update(vars(args)) + logger = Logger(options) + + return args + +def printOutput(out): + output = '' + + if options['format'] == 'text' or options['format'] == 'html': + width = 100 + num = 0 + + for k, v in out.items(): + num += 1 + analysis = v['analysis'] + value = v['value'] + + analysis = analysis.strip() + + value = str(textwrap.fill( + v['value'], + width=width - 1, + subsequent_indent=' ' * 4, + initial_indent='', + replace_whitespace=False, + )).strip() + + description = '' + + if len(v['description']) > 1: + desc = v['description'] + desc = '\n'.join(textwrap.wrap( + desc, + width=width - 1, + subsequent_indent=' ' * 4, + initial_indent='', + replace_whitespace=True, + )).strip() + + description = f''' +{logger.colored("DESCRIPTION", "blue")}: + {desc} +''' + + if len(v['header']) > 1 or len(value) > 1: + output += f''' +------------------------------------------ +({num}) Test: {logger.colored(k, "cyan")} + +{logger.colored("HEADER", "blue")}: + {v['header']} +{description} +{logger.colored("VALUE", "blue")}: + {value} + +{logger.colored("ANALYSIS", "yellow")}: + {analysis} +''' + else: + output += f''' +------------------------------------------ +({num}) Test: {logger.colored(k, "cyan")} + +{logger.colored("ANALYSIS", "yellow")}: + {analysis} +''' + + if options['format'] == 'html': + output2 = f''' + + decode-spam-headers + + + {output} + +''' + + output = output2.replace('\n', '
').replace('\t', ' ' * 4).replace(' ', ' ') + output2 = output + + for m in re.finditer(r'(<[^>]+>)', output, re.I): + a = m.group(1) + b = a.replace(' ', ' ') + output2 = output2.replace(a, b) + + return Logger.replaceColorToHtml(output2) + #return output + + elif options['format'] == 'json': + output = json.dumps(out) + + return output + +def main(argv): + args = opts(argv) + if not args: + return False + + if args.list: + print('[.] Available tests:\n') + + print('\tTEST_ID - TEST_NAME') + print('\t--------------------------------------') + + an = SMTPHeadersAnalysis(logger) + + (a, b, c) = an.getAllTests() + tests = a+b+c + + for test in tests: + (testId, testName, testFunc) = test + + print(f'\t{testId: >7} - {testName}') + + print('\n') + return True + + logger.info('Analysing: ' + args.infile) + + an0 = SMTPHeadersAnalysis(logger) + (a, b, c) = an0.getAllTests() + maxTest = 0 + for i in a+b+c: + test = int(i[0]) + + if test > maxTest: + maxTest = test + + text = '' + with open(args.infile) as f: + text = f.read() + + try: + include_tests = set() + exclude_tests = set() + + if len(args.include_tests) > 0: include_tests = set([int(x) for x in args.include_tests.replace(' ', '').split(',')]) + if len(args.exclude_tests) > 0: exclude_tests = set([int(x) for x in args.exclude_tests.replace(' ', '').split(',')]) + + if len(include_tests) > 0 and len(exclude_tests) > 0: + logger.fatal('--include-tests and --exclude-tests options are mutually exclusive!') + except: + raise + logger.fatal('Tests to be included/excluded need to be numbers! Ex. --include-tests 1,5,7') + + _testsToRun = set() + + for i in range(maxTest + 5): + if len(include_tests) > 0: + if i not in include_tests: + continue + + elif len(exclude_tests) > 0: + if i in exclude_tests: + continue + + _testsToRun.add(i) + + testsToRun = sorted(_testsToRun) + + an = SMTPHeadersAnalysis(logger, args.resolve, args.decode_all, testsToRun) + out = an.parse(text) + + output = printOutput(out) + + if len(args.outfile) > 0: + ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') + + output2 = output + + if args.format != 'html': + output2 = ansi_escape.sub('', output) + + with open(args.outfile, 'w') as f: + f.write(output2) + else: + print(output) + + if not options['nocolor']: + print(''' +------------------------------------------ + +Experiencing a bad-looking output with unprintable characters? +Use -N flag to disable console colors, or switch your console for better UI experience. +''') + + +if __name__ == '__main__': + main(sys.argv) diff --git a/img/1.png b/img/1.png new file mode 100644 index 0000000000000000000000000000000000000000..891df6c2de5ab375630375945e31dbf40dd223be GIT binary patch literal 141538 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�YWrF>^n48Vb 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%0A5c&+9TKBwmu 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

TtGjkrglqZP0b-7+k>2? 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 z zjUq_Uw0SiY5Hm{|y1ElwE&>B;sR8ybxig%w28`MbA=hu=rOyxDE=*m50A1C73;tpd zw2ex}Y#~(x{dU2h(-OGpTua63>eMT-Nb2ErMn=ZIV3euDVU(^nKv;^s+UP?RKLvRe z`1UAkD#Am@YyTR|uk!Gj49I7f?;9@}$(o&SXuMlcfb*`K{_$l=){}l-+z~c1y|ey- ziIy$NWrx5c#C1+8rY1XD-lp92_+n&u`}X61^OA2_3BXYR&Ta$$tMbZAy8drLVPVPE-Eb|l$(>)FYH^fk2xv!BT+DeC6_&A!IYGgSs&JE$Tq z7^@#~2Nt!`!V53_!Vgd5q;$^)*YB!*QLIohr`*kfjwb>XRUNPN;{J{2b@1fF_nHFfAGtA{} zv+K#+iFe8L2VNAgo#IR#`J5YNvy+jU&HEg2gGcR#cT|R9i{Lg@Bv3?ni}lXY(NWW4 zT=YlXU>f|bVFpIVEf^(7{hWW|Ip6*J@oZAwMQ_5GAZMzXl3R4DNX{GabC9bxg-%k^ zx%OgSgwB$|jmEn!RDR89U{Y4Q0DrtEsquU7-Cn5P4{|U+U2(#E!0y&Z7*+4-DUY6k z1&_(+&pYY%43C{09oIfS5=gxyNbuSm+o+b3vH&8k-RrQBn)5Ht#lQX%EiwXvRM{}> zRK11f><+57plp7aafBzDO(f*~^pmQE1A-;Po#Wq_vSsk$b3MIcyPl!cec;&oqFi9W zdvQ^rR)X}2GnHR?Y3Z+47CfRmgQA>&C)~y0Z*r5*O-I-4-XFt4-$0}GK<;|aEpseY zl0Z5I9Ua^ZBqFw!n&TRzWmbO6@PKz?Xw2u2uooocO>REuF3 z(Q~P;snNoE0RV5|W}I>OJ3n!J#r3Rd`YgjtK=5WXQL(Fga7*R;A;>Cf7KQr?Nu>0e z1_`0hSL6bX$mEV~kr_&m+YsOdAI-9|g|Pw10UilE4{gMGnkm`XX$UBhAS#g7`Wm-{$IY^VOk)c zB5XY8K$&comc3)G5Gp_RiR=?^Xr=v2cj+LXdpUxtwoUi#e2_-JUZ+~g_VPPJR*yD-f${;<@77TK!PbQ4NfMdJd+_SoMu`{= z(WDt3`Oz`r#VWR=lOmXU7yen;t_kh5`e3R~u)hh0HAuSzB|mDgF?38X(csgth&Dr+ zm*9eL=8(0QP^YxjyQx}Jgb2FnE1c#&2da0v!ggOf3WjniyKASJb!n#wDLkBe0%w=m zTYd3xm2T^)4DH5R3AL3khL0gPMbJzj$anR*NyBbu-NvGZiZRQXf`oYZkPhsXa?PK% z>0(5ql(vAMNYpQVIhJeP5P(wr=?Kwqb)Na`^(;aP`aYnHq!-R5P8pli*KTd2z2vwl!Yt$DDR6$VhXM>j(~GmQbSvODx~2n<(OUlPYa}Xi5R;}YS0}k zbd4$%ZAAi!ZU&9K-ac!UadV_o3=!KWR<9 z#Y}x;ZOsX3>qKclG2f9fb;JgC-}EHCPb%Z}nN1pA;R^slp#i?TvZNw7l5&1jY`oQ0 zn9&2DL&+C{IJfS72E;S%hoao~t{tM0-fjWIz_=A7vGr``K5?Pt1a_(?hKs0d$F5FX z8+hgej?W$)fyq1-7(ZaZ+CHH8_Kh9$b|AmR)KL|#zxC-zvq&!ON@@X z(;moSa89~$D#mJHbYw>MsPo@p4j~F;V-X#bAv*Z$)!+ym2yc#e+d`*T7;zVbwhP{% z3)+i2a;IZ$#YXyHPI?bph;wD%zzcNQ24F*D=4?=NU<#i}K9>uhblc&C;NZncJ8`wV z_58^}g@U*>-TZUKIX~k!ajX)0t>?9ZgTywXj<5g5Y|ta%$$zfHE;w?F{Ymv}3+|u; zBdb*W89}bj!ViNp*^>C1ed_}>nHb2)mz*mSAA;Lx`;&*dVrc+RGMF0ggAg{b60rbj zm0ei>ccY%6X?~XVJEogR?ek4Fxs(r7OvR})fGKwZDJ1+r!?Wsa*D8=R=tK-Xt}EI> z1X~D@Q<`QcHM1i*!&#OMZI;{xO}lb`gl-0Z*?N*?U}RMQ)6~$|&)#NDQV}bB1NJ&P zoW=JOgLVa7mO_$P=nk`xc*pAMpyS@Q)LA#AfeP~i-p{Sp*ZMM&C{um8nuC&DaHEfg z(f#u~EtG4N0bgxhv}zQr9Qm(Yp*7V|R?r_-2&d&h8zlLXg(-R6QqBSv@wGb2KKm8I z>_EmTAEL~8k6skVqfRC!-MQ1eGFjIooWyA!?}?sc$-;2)A=D_Jb0wfE>l$bM9-CuM(+ zB*aCH{xebSIcg6D@Jo>q=|>mDpf>T9O6Qr!)Mio~U>fE9t@u$e3$Te>U)#E|FdQ99 zG}qF}id94|ne2@!(GErlwtR~UQk>ddRp1-dt$BbX|gWGbG}%9ddSV({@xZRbsF@XzegG?k(%cE)~{_83;3|2&Fbv9 z-jRqi)i7pnTtpxbZ)*?Bz4__})uMHdKL5(`?Cxz#^dW?jmAi z((loyJyTE285;xxZ2%5?Iy6IlIJq>OIT5uaBMKp`&;el;m zbuDH5jpI6w$sJ&4KEfcF==8$%ka^HBSD5g^|9CadvohRL>^zM^QP#^tH+t_mz^L9P zr2A2+0hK17Br};`nCfxET!q!22{cPINm3e?12W5<&BK+TlcJy57x`g{bm?lA1@e@3 z9mr5t)6mGw>m4J;UG;T!n_*W4+fJ)KN-gXSJSul!=jIIdHFy4ER@%mM>81-f%S*LP znMZmdRYoFZDJbvO$k@27dXpT7vN7+49ceCZj@b^W9gKFirDmW0M#EB{D?S8yL!|BB z0d`He(5I4z{k3E+9>NMZPF99Epcnpl%h-A@UYvs~xwV7*S`Ho_bE^MtGnl$txwoNd zT*JX(L#9v`q%4I?fxXpmj|9TRr#GGVfn$;Ga~Uv-N#}>$8D?Z3f3YV5X!DYibqzd< zu5vS%30+d<(UxP{VimRR) zmPxi!adGup8oOx2Y5~=c8SnV^3^aR6I{00@yji?eWzfaBFU@^7TloeLXih-?Q8<6} z?I#04hsyVr0<%UksLP+bS+4QgoJl0*%A|t82ki8r5c;iJbmG@Fsma>*Qu2^ET5}$!j^ftE2k^8iD+Z zb$v{s@*NUhHU!2bC>1yP0heH!w;L*Cp3Nk@!rGO?L!F(U@v!FauE-UgLWs*%+-tRl zS8ag-mnybT{fWFz%YKLzlU0j-#tU3wgndF%T4Bf41Djr1gpxTI(9gRh@qV{s*!#{A z@7n~weW{F_qpD0Kq$FOczfn{Q!4}eVKGTiyo-8}O0iCv)Z9vYeCXVQPBBZtxmDc^5 zVxa}&c})5I>R#wMC239<@6*?S%}wMl-dp%w!HRGykkk`;)9Cp)W?8LXidSl!TlnJ- zU@=QtQd$lArs}1uUg1+~z=i@G zwu>e`o-im=xm4?9Bi#w{>s)prtmV`w(zi)C z?gopr@$AQ`-dMI=&-`*(?1ANW%5z&Ga2t>LT3V+C}n|N7b!D=m1CAl{wZ5{lk2&8rD49%~G#PU3fL z{DAamUX&+eS->1O^Cw$i-}2b!*Bur~=L)mM$%byP?*eIij@(HDgP^W&X=DOaZJ?Vy z{o_S145aOrvNJMDj&dZg;h|%`Ysp6T5_GqXH>*8am)W9>mB|y{Rj0k0QumOqe8HxH z3?>t#^6W|kPWeSlgRA|CtL;8k9#I>QUJZ;t@Wo%UKFFW#=})kK`M|6Na)9wQ0~}1F z8pp!__uNT-W0Uq5A${8mt31R&JheZ-t-P z-{V#VhDip>IRPe=)jYfhHeAx`A97mtOihcw-N|49x;1(&q~?-+swTO{`9p7S1#~E@ zdB@xc4PC`uiLB80=Gpb}5d2Nld&k1#>|n~lZ_F^_W`y}2{oWM7(XO8ayw#=ugq?|Y z9Z)E;ERO>VJK!&Ge!n@BBKSB6qiHqjZ?IahvQP~jdMheox$S&%m|69*UvCJq7Mywa zPq)^=@=xWfuC%;9LR$?R1Du8!X6{#2)=j1CR;(y0y3-Etlk-s4vtXk$Q;TECT_K00KOxW?wFx6e zyf>Lutxrxj@QH%{OR_B-0m7d5df#ejY3WJ%U!2j76Z$vky!3sEm^|b=y@CgcyhwLp zlMjQ*C6k53&rH`hbLwR5zh>})g$tVYM4rDMPS06MV!Ji_CO~UGO)4#9SGU{mu~0o@ zU5|Nk!k2G#AB3a{37Y0oI=?(#wDFtO6^UaUG~po!Tc3GS8${E@9o|R7&Q#IdlHRYU z`sBflMQX7~IjQHiaWx0`#aclkWa|nzQ5hNSPHh&ZRAgf?(G}IKlI625!7zXV1}5Gm z?;?pPZ25>>p7A6DW&o*5^KvC>lbHpOM)1(nze<4ctjq`Zg{m=bJf7be5)kv6Y58Qq zqdDi~H1`DudSTw_vv3o>u;M{vkr)nG$PZKN+h3;F?&653cY0|Pkh!BTF(VV?W!e<& zZuiN@6*IQpF#=0`@nS7uoc(e4+1$!{{1D^Ki z$53qRacT+M8v!t)^AIuzAXOThWp&lqPGC1xQoyisEv`ZzN)hTRdbEv1)D6o8iaA=9 zdWdecW0BtYgZdCREg`v5|#bJ^4=B9~>Nu=L;QDG!F49b-=YWcaZvzN6J$l(*u zwG+N1l-6OkT~RED8|zQ=u(Rvy_grocv`=@f#8qy!`!D7H<=}Ad=7caC6JW(oxwLMF zR?<@$j6GkeXY> z-5HJnb+FP-j1NqHTtTY7R#wH(Bz{5DzggfJ4>0Tr3+sO-MuG73vfM^9{90)MPjX`C zu}Kse;>$hV*TrJdeS?XLP_^wMFE8{ag3PO|^zAD_kF|C7SApf)|L`6wKS_r&#PHJz z482SMR1NeyDNN5^E>3hxr!0e%EPXKy7mvcmWTq?E8m>$yGd~6t@bx;Wvwnw3W*)vz zUA1FQ14q~;bp8BOU;O(WJ8VH}|D3}AJ&XT8%xTet8%GU&ck7@dmh(q{3*F#}r{BjJ z81w_;DF^#htAAUc8Y+xq|M8m*KT7$pDyYrkwEy;K{Ig@{|KD(&DU3Gz5MudFD%&p# z{<}r$@{`k7w(K_l6QWVA|M7oqx%xj}Gxopo2!lcY{~rd4^0{2A084#ckxu><;6p>@ LnKDAr`u%?ZNm=QQ literal 0 HcmV?d00001 diff --git a/img/4.png b/img/4.png new file mode 100644 index 0000000000000000000000000000000000000000..6bae90d998f7bbb85ca4300841c5bddbaefe9cd4 GIT binary patch literal 8547 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 literal 0 HcmV?d00001