
Script Bash que audita SPF, DKIM, DMARC, DNSSEC, MTA-STS e higiene de DNS para classificar a exposição de um domínio a spoofing de e-mail e phishing.

Inspirado em spoofcheck.
O Verificador de Autenticação de E-mail verifica SPF, DKIM, DMARC, DNSSEC, MTA-STS e o root domain hack para avaliar quão bem um domínio está protegido contra spoofing e phishing.
Recursos:
pct, endereços de relatório (incl. autorização de relatório externo)-S: open relay, smuggling, NTLM, superfície de AUTHbash mailAuthCheck.sh google.com
bash mailAuthCheck.sh google.com example.com github.com
Vários domínios podem ser passados de uma só vez; cada um é reportado em seu próprio cabeçalho em caixa e as verificações são executadas um domínio após o outro. O banner é impresso uma vez, o cartão de destino uma vez por domínio:
│ MAIL AUTHENTICATION CHECKER v1.1
│ The existence of a security record does not mean
│ it is actually implemented
│
╔══════════════════════════════════════════════════════════════════════╗
║ target example.com ║
║ resolver 8.8.8.8 2026-11-13T00:56:14Z ║
╚══════════════════════════════════════════════════════════════════════╝
O banner e o cartão compartilham a mesma largura, então a versão fica sobre a borda direita do cartão; ambos se alargam quando um domínio é mais longo que as 72 colunas padrão, e a mesma largura é usada para todos os domínios da execução para que as caixas fiquem alinhadas.
As opções podem aparecer antes, entre ou depois dos domínios:
-s SELECTOR seletor DKIM extra a tentar (repetível)-r LABEL nome do tenant Microsoft 365 a testar (padrão: primeiro rótulo de cada domínio)-d SERVER resolvedor DNS a consultar (padrão: 8.8.8.8, ou $DNS_SERVER)-v mostrar registos DNS em bruto e detalhes-q mostrar apenas avisos e falhas-S executar também as sondas SMTP intrusivas (open relay, smuggling, NTLM, AUTH); requer saída nas portas 25/587 e demora um minuto ou mais por host MXEstado de saída: 0 nenhuma verificação falhada, 1 pelo menos uma verificação falhada (em qualquer
domínio), 2 erro de utilização.
Por padrão, o relatório é agrupado nas secções AUTHENTICATION, DNS HYGIENE,
MAIL DELIVERY, TRANSPORT SECURITY e ADDITIONAL, com os
registos apresentados a cinzento sob cada verificação.
Cada linha é uma tabela fixa de três colunas: estado, um nome curto da verificação (no máximo
doze caracteres, por exemplo DKIM, Wildcard, Root domain), e a
descrição. Qualificadores específicos da verificação, como o seletor DKIM, o host MX
ou o include SPF, são acrescentados à descrição entre parênteses, para que as
colunas fiquem alinhadas em todas as secções:
OK DKIM secure (2048-bit RSA) (selector1._domainkey.example.com)
OK Wildcard no wildcard at the dns apex
A severidade segue o efeito sobre o spoofing, não apenas o registro: uma política SPF que termina em ~all é OK quando o DMARC é p=reject ou p=quarantine (o DMARC compensa o softfail) e FAIL quando o DMARC é p=none ou está ausente, porque então nada rejeita o remetente não autorizado. Um -all estrito permanece OK mesmo com p=none; essa exposição é reportada na linha DMARC.
include:sendgrid.net (ou um include:uXXXXXXX.wl.sendgrid.net por conta) autoriza os intervalos de IP compartilhados do SendGrid a enviar pelo domínio. O SPF é avaliado em relação ao remetente do envelope, portanto um atacante que envia pela própria conta do SendGrid ainda passa no SPF enquanto o From visível é o seu; apenas o DMARC mantém esse e-mail fora. A verificação segue os includes aninhados de SPF e reporta:
FAIL quando SendGrid ou Mandrill está incluído e não há registro DMARC ou a política é p=none: um From falsificado é entregueWARN quando a política é apenas p=quarantine: o e-mail falsificado cai no spamOK quando a política é p=rejectA lista de plataformas compartilhadas fica em SPF_SHARED_PROVIDERS; adicione apenas provedores que não verificam o domínio From para todos os clientes.
Ambas as gravações abaixo foram desaceleradas para melhorar a legibilidade; na realidade, levou menos de 1 segundo para executar.


git clone https://gitlab.com/brn1337/mailAuthCheck.git
cd mailAuthCheck
Execute o script de dentro do WSL, não do PowerShell, e instale o dig primeiro:
sudo apt update && sudo apt install -y bind9-dnsutils
bash mailAuthCheck.sh google.com
O repositório inclui um arquivo .gitattributes que força terminações de linha LF para *.sh.
Se você o clonou antes de esse arquivo existir, faça o checkout do script novamente uma vez para que ele não
tenha mais terminações de linha CRLF do Windows (que fazem o bash falhar com $'\r': command not found):
git checkout -- mailAuthCheck.sh
O Mail Authentication Checker está licenciado sob CC BY-NC-SA 4.0
CC-BY-NC-SA This license requires that reusers give credit to the creator.
It allows reusers to distribute, remix, adapt, and build upon the material in any medium or format, for noncommercial purposes only.
If others modify or adapt the material, they must license the modified material under identical terms.
- Credit must be given to you, the creator.
- Only noncommercial use of your work is permitted.
- Adaptations must be shared under the same terms.