
Ein Skript, das dir hilft zu verstehen, warum deine E-Mail im Spam gelandet ist.
Ob Sie versuchen zu verstehen, warum eine bestimmte E-Mail für Ihre täglichen administrativen Aufgaben im SPAM-/Junk-Ordner gelandet ist, oder für Ihre Red-Team-Phishing-Simulationszwecke – dieses Skript hilft Ihnen dabei!
Die Idee entstand während der Durchführung einer kommerziellen Phishing-Simulationsübung gegen eine MS Office365 E5-Umgebung, die mit MS Defender für Office365 ausgestattet war. Wie man sich vorstellen kann, ein ziemlich hartnäckiger Sicherheits-Stack aus der Perspektive der Phishing-Simulation. Nachdem ich manuell alle diese Office365-SMTP-Header durchgesehen hatte und versuchte, die SCL-Werte herauszupicken, war es an der Zeit, einen ordentlichen Parser für SMTP-Header zu schreiben.
Die Zeit verging, ich fügte Unterstützung für immer mehr SMTP-Header hinzu – und hier haben wir es. Ein Tool, das jetzt dutzende verschiedener Header versteht.
Dieses Tool akzeptiert als Eingabe eine *.EML- oder *.txt-Datei mit allen SMTP-Headern. Es extrahiert dann einen Teil der interessanten Header und versucht, diese mit 105+ Tests so weit wie möglich zu dekodieren.
Dieses Skript extrahiert außerdem alle IPv4-Adressen und Domänennamen und führt eine vollständige DNS-Auflösung durch.
Die resultierende Ausgabe enthält nützliche Informationen darüber, warum diese E-Mail möglicherweise blockiert wurde.
Um Ihren Phishing-HTML-Code zu verschönern, bevor Sie ihn an Ihren Kunden senden, können Sie ihn auch in mein phishing-HTML-linter.py einspeisen. Es macht einen ziemlich guten Job beim Finden von bad smells in Ihrem HTML, die dazu führen, dass Ihre E-Mail einen erhöhten Spam-Score erhält.
Received-Header):



py decode-spam-headers.py headers.txt -f html -o report.html ):
Verarbeitete Header (mehr als 85+ Header werden geparst):
X-forefront-antispam-reportX-exchange-antispamX-exchange-antispam-mailbox-deliveryX-exchange-antispam-message-infoX-microsoft-antispam-report-cfa-testReceivedFromToSubjectThread-topicReceived-spfX-mailerX-originating-ipUser-agentX-forefront-antispam-reportX-microsoft-antispam-mailbox-deliveryX-microsoft-antispamX-exchange-antispam-report-cfa-testX-spam-statusX-spam-levelX-spam-flagX-spam-reportX-vr-spamcauseX-ovh-spam-reasonX-vr-spamscoreX-virus-scannedX-spam-checker-versionX-ironport-avX-ironport-anti-spam-filteredX-ironport-anti-spam-resultX-mimecast-spam-scoreSpamdiagnosticmetadataX-ms-exchange-atpmessagepropertiesX-msfblX-ms-exchange-transport-endtoendlatencyX-ms-oob-tlc-oobclassifiersX-ip-spam-verdictX-amp-resultX-ironport-remoteipX-ironport-reputationX-sbrsX-ironport-sendergroupX-policyX-ironport-mailflowpolicyX-remote-ipX-sea-spamX-fireeyeX-antiabuseX-tmase-versionX-tm-as-product-verX-tm-as-resultX-imss-scan-detailsX-tm-as-user-approved-senderX-tm-as-user-blocked-senderX-tmase-resultX-tmase-snap-resultX-imss-dkim-white-listX-tm-as-result-xfilterX-tm-as-smtpX-scanned-byX-mimecast-spam-signatureX-mimecast-bulk-signatureX-sender-ipX-forefront-antispam-report-untrustedX-microsoft-antispam-untrustedX-sophos-senderhistoryX-sophos-rescanX-MS-Exchange-CrossTenant-IdX-OriginatorOrgIronPort-DataIronPort-HdrOrdrX-DKIMDKIM-FilterX-SpamExperts-ClassX-SpamExperts-EvidenceX-Recommended-ActionX-AppInfoX-SpamX-TM-AS-MatchedIDX-MS-Exchange-EnableFirstContactSafetyTipX-MS-Exchange-Organization-BypassFocusedInboxX-MS-Exchange-SkipListedInternetSenderX-MS-Exchange-ExternalOriginalInternetSenderX-CNFS-AnalysisX-Authenticated-SenderX-Apparently-FromX-Env-SenderSenderDie meisten dieser Header sind nicht vollständig dokumentiert, daher ist das Skript nicht in der Lage, alle Details zu ermitteln, aber es sammelt zumindest alles, was ich darüber finden konnte.
(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;
[...]
- Message matched 24 Anti-Spam rules (SFS): <============ opaque anti-spam rules
- (1096003)
- (166002)
- (19625305002)
- (22186003)
- (224303003)
- (26005)
- (336012)
- (356005)
- (35100500006) - (SPAM) Message contained embedded image.
Der Prozess ist rein manuell und besteht darin, speziell entworfene E-Mails an die Office365-Mailserver zu senden und anschließend die gesammelten Regeln manuell zu überprüfen und abzugleichen.
Da ich bereits mehr als 60 E-Mails gesendet habe, kann ich inzwischen Folgendes über Microsofts Regeln sagen:```py
#
# 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'),