
Un script qui vous aide à comprendre pourquoi votre e-mail a atterri dans le spam.
Que vous cherchiez à comprendre pourquoi un e-mail spécifique s'est retrouvé dans les SPAM/Indésirables dans le cadre de vos tâches administratives quotidiennes ou pour vos simulations de Phishing en Red-Team, ce script est là pour vous aider !
L'idée est née lors de la réalisation d'exercices commerciaux de simulation de Phishing contre un parc MS Office365 E5, équipé de MS Defender pour Office365. Comme on peut l'imaginer, une pile de sécurité assez coriace à appréhender du point de vue de la simulation de phishing. Après avoir analysé manuellement tous ces en-têtes SMTP Office365 et tenté d'y dénicher les valeurs SCL, le moment est venu d'écrire un véritable analyseur pour les en-têtes SMTP.
Le temps a passé, j'ai ajouté la prise en charge d'un nombre croissant d'en-têtes SMTP — et voilà le résultat. Un outil qui comprend désormais des dizaines d'en-têtes différents.
Cet outil accepte en entrée un fichier *.EML ou *.txt contenant tous les en-têtes SMTP. Il extrait ensuite un sous-ensemble d'en-têtes intéressants et, à l'aide de 105+ tests, tente de les décoder autant que possible.
Ce script extrait également toutes les adresses IPv4 et les noms de domaine, et effectue une résolution DNS complète de ceux-ci.
La sortie résultante contiendra des informations utiles sur la raison pour laquelle cet e-mail a pu être bloqué.
Afin d'embellir votre code HTML de Phishing avant de l'envoyer à votre client, vous pouvez également le passer dans mon phishing-HTML-linter.py. Il fait un plutôt bon travail pour détecter les mauvaises odeurs dans votre HTML qui feront augmenter le score de Spam de votre e-mail.
Received proprement analysés) :



py decode-spam-headers.py headers.txt -f html -o report.html) :
En-têtes traités (plus de 85+ en-têtes sont analysés) :
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-SenderSenderLa plupart de ces en-têtes ne sont pas entièrement documentés ; le script ne peut donc pas identifier tous les détails, mais il collecte au moins tout ce que j'ai pu trouver à leur sujet.
(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.
Le processus est purement manuel et consiste à envoyer des e-mails spécialement conçus aux serveurs de messagerie Office365, puis à examiner et corréler manuellement les règles collectées.
Ayant déjà envoyé plus de 60 e-mails, voici ce que je peux dire à présent sur les règles de Microsoft :```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'),