Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
decode-spam-headers — Um script que ajuda você a entender por que seu E-Mail foi parar no Spam | Kitploit
Ferramentas/GitHubGitHub/mgeeky/decode-spam-headers
Ferramentas de PhishingColeta de InformaçõesRed TeamingSegurança de EmailAnálise de Logs
GitHubmgeeky/decode-spam-headers

decode-spam-headers

Um script que ajuda você a entender por que seu E-Mail foi parar no Spam

Ver Repositório
6989826há 7 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

decode-spam-headers.py

Quer você esteja tentando entender por que um e-mail específico foi parar em SPAM/Lixo eletrônico nas suas tarefas administrativas diárias ou para fins de simulação de Phishing na sua equipe de Red Team, este script está aqui para ajudar!

A ideia surgiu durante a entrega de exercícios comerciais de simulação de Phishing contra um ambiente MS Office365 E5, equipado com MS Defender for Office365. Como se pode imaginar, uma stack de segurança bastante difícil de lidar do ponto de vista de simulação de phishing. Depois de vasculhar manualmente todos esses cabeçalhos SMTP do Office365 e tentar localizar os valores de SCL, chegou a hora de escrever um parser adequado para cabeçalhos SMTP.

Com o tempo, fui adicionando suporte para cada vez mais cabeçalhos SMTP - e aqui está. Uma ferramenta que agora compreende dezenas de cabeçalhos diferentes.

Informações

Esta ferramenta aceita como entrada um arquivo *.EML ou *.txt com todos os cabeçalhos SMTP. Em seguida, ela extrai um subconjunto de cabeçalhos interessantes e, usando 105+ testes, tenta decodificá-los o máximo possível.

Este script também extrai todos os endereços IPv4 e nomes de domínio e realiza a resolução completa de DNS para eles.

A saída resultante conterá informações úteis sobre por que esse e-mail pode ter sido bloqueado.

Para embelezar seu código HTML de Phishing antes de enviá-lo ao seu cliente, você também pode querer passá-lo pelo meu phishing-HTML-linter.py. Ele faz um trabalho bastante decente encontrando maus cheiros no seu HTML que farão seu e-mail ganhar uma pontuação de Spam maior.

Exemplos de capturas de tela

  • Cadeia de servidores MTA (cabeçalhos Received bem analisados):

1.png

  • Vários cabeçalhos decodificados o máximo possível, de acordo com a documentação publicamente disponível (aqui, Office365 ForeFront Spam Report):

2.png

  • Diferentes heurísticas personalizadas implementadas para validar ativamente e procurar pistas de categorização de spam, aqui a lógica que detecta Domain Impersonation:

3.png

  • O script tenta fazer engenharia reversa e documentar algumas das regras Anti-Spam do Office365, bem como coletar conhecimento público sobre outros cabeçalhos Anti-Spam opacos:

4.png

  • O relatório pode ser gerado em um HTML bonito (uso: py decode-spam-headers.py headers.txt -f html -o report.html):

5.png

Cabeçalhos processados

Cabeçalhos processados (mais de 85+ cabeçalhos são analisados):

  • 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
  • X-MS-Exchange-CrossTenant-Id
  • X-OriginatorOrg
  • IronPort-Data
  • IronPort-HdrOrdr
  • X-DKIM
  • DKIM-Filter
  • X-SpamExperts-Class
  • X-SpamExperts-Evidence
  • X-Recommended-Action
  • X-AppInfo
  • X-Spam
  • X-TM-AS-MatchedID
  • X-MS-Exchange-EnableFirstContactSafetyTip
  • X-MS-Exchange-Organization-BypassFocusedInbox
  • X-MS-Exchange-SkipListedInternetSender
  • X-MS-Exchange-ExternalOriginalInternetSender
  • X-CNFS-Analysis
  • X-Authenticated-Sender
  • X-Apparently-From
  • X-Env-Sender
  • Sender

A maioria desses cabeçalhos não é totalmente documentada, portanto, o script não consegue identificar todos os detalhes, mas pelo menos reúne tudo o que pude encontrar sobre eles.

Esforços de engenharia reversa

Estou fazendo esforços significativos para identificar e entender diferentes regras Anti-Spam do Office365 ForeFront (SFS, ENG), apesar de não serem publicamente documentadas.```

(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.
O processo é puramente manual e recorre ao envio de e-mails especificamente concebidos para os servidores de correio do Office365, seguido de revisão manual e correlação das regras recolhidas.

Tendo já enviado mais de 60 e-mails, eis o que posso dizer até agora sobre as regras da 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'),

        # 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'),
Baixar ferramenta