
Verificador em massa de capacidade de falsificação de domínios usando análise autoritativa de registros SPF e DMARC com lógica de falsificação personalizada testada no mundo real e enumeração opcional de DKIM.
Spoofy é um programa que verifica se uma lista de domínios pode ser falsificada com base em registros SPF e DMARC. Você pode estar se perguntando: "Por que precisamos de outra ferramenta que verifica se um domínio pode ser falsificado?"
Bem, o Spoofy é diferente e aqui está o porquê:
- Lógica de falsificação personalizada e testada manualmente (sem suposições ou especulações, resultados de testes do mundo real)
- Descoberta de registros baseada em padrões: avaliação SPF conforme RFC 7208 e percurso da árvore DMARC conforme RFC 9989, incluindo
sp/nppara subdomínios- Consultas em massa precisas por meio de um resolvedor compartilhado com cache e failover (1.1.1.1, 8.8.8.8, 9.9.9.9)
- Contador de consultas DNS SPF e de consultas vazias, além da detecção de domínios include SPF não registrados
- Enumeração opcional de seletores DKIM via API
Spoofy requer Python 3.9+. Instale-o do PyPI:
pip3 install spoofy
spoofy -d example.com
Ou execute-o a partir de um clone com pip3 install -r requirements.txt e ./spoofy.py no lugar de spoofy. O uso é mostrado abaixo:
Usage:
spoofy -d [DOMAIN] -o [stdout, xls or json] -t [NUMBER_OF_THREADS] [--dkim] [--dns-server IP]
OR
spoofy -iL [DOMAIN_LIST] -o [stdout, xls or json] -t [NUMBER_OF_THREADS] [--dkim] [--dns-server IP]
Options:
-d : Process a single domain.
-iL : Provide a file containing a list of domains to process (blank lines and # comments are skipped).
-o : Specify the output format: stdout (default), xls, or json.
-t : Set the number of threads to use (default: 4).
--dkim : Enable DKIM selector enumeration via API (optional).
--dns-server : Query this resolver instead of 1.1.1.1, 8.8.8.8 and 9.9.9.9.
Examples:
spoofy -d example.com -t 10
spoofy -d example.com --dkim
spoofy -iL domains.txt -o xls
spoofy -iL domains.txt -o json --dkim
(A tabela de falsificabilidade lista todas as combinações de configurações de SPF e DMARC que impactam a entregabilidade na caixa de entrada, exceto modificadores DKIM.) Baixe Aqui
| Código | Resultado | SPOOFING_POSSIBLE |
|---|---|---|
| 0 | Falsificação possível | true |
| 1 | Falsificação de subdomínio possível | true |
| 2 | Falsificação do domínio organizacional possível | true |
| 3 | Falsificação pode ser possível (p=quarantine com pct < 100) | null |
| 4 | Falsificação pode ser possível (depende da caixa de correio) | null |
| 5 | Falsificação do domínio organizacional pode ser possível (depende da caixa de correio) | null |
| 6 | Falsificação de subdomínio pode ser possível (depende da caixa de correio) | null |
| 7 | Falsificação de subdomínio possível, falsificação do domínio organizacional pode ser possível | true |
| 8 | Falsificação não é possível | false |
| 9 | Não foi possível determinar (uma consulta DNS falhou) | null |
O veredito é o código testado para o mecanismo all do SPF do domínio e as tags p, sp e aspf do DMARC conforme o registro as escreve. spoofy/master_table.py contém a planilha como dados (python3 -m spoofy.master_table a reescreve após alterações na planilha), e test.py verifica se cada linha é reproduzida. Entradas que a tabela não cobre são tratadas da seguinte forma:
p em enforcement com aspf mas sem sp (24 combinações não testadas): sp assume o valor de p, então a linha testada com sp escrito explicitamente é usada._dmarc): o resultado do subdomínio testado para os registros SPF e DMARC do pai, com np no lugar de sp quando o subdomínio não existe.pct abaixo de 100 com p=quarantine: código 3, já que o e-mail não amostrado recebe p=none. Com p=reject o e-mail não amostrado ainda é colocado em quarentena, então pct não altera o veredito.t=y (modo de teste RFC 9989): a política cai um nível (reject para quarantine, quarantine para none) antes da consulta.A criação da tabela de falsificabilidade envolveu listar todas as configurações relevantes de SPF e DMARC, combiná-las e, em seguida, realizar a coleta de informações de SPF e DMARC usando uma versão inicial do Spoofy em um grande número de domínios do governo dos EUA. O teste para saber se uma combinação de SPF e DMARC era falsificável ou não foi feito usando a suíte de pentest de segurança de e-mail em emailspooftest com o Microsoft 365. No entanto, os testes iniciais foram conduzidos usando Protonmail e Gmail, mas descobriu-se que esses serviços utilizam verificações de DNS reverso que afetavam os resultados, particularmente para testes de falsificação de subdomínio. Como resultado, o Microsoft 365 foi usado para os testes, pois oferecia maior controle sobre o tratamento do correio.
Após os testes iniciais com o Microsoft 365, algumas combinações foram retestadas usando Protonmail e Gmail devido às diferenças no tratamento de banners nos e-mails. Protonmail e Gmail podem colocar e-mails falsificados na caixa de entrada com um banner ou no spam sem banner, levando algumas combinações de SPF e DMARC a serem relatadas como "Depende da Caixa de Correio" ao usar o Spoofy. Em contraste, o Microsoft 365 coloca ambas as condições no spam. O processo de teste e coleta de dados levou vários dias para ser concluído, após o que uma boa tabela mestre foi compilada e usada como base para a lógica de falsificabilidade do Spoofy.
Esta ferramenta é apenas para fins de teste e acadêmicos e só pode ser usada onde consentimento estrito foi dado. Não a use para fins ilegais! É de responsabilidade do usuário final obedecer a todas as leis locais, estaduais e federais aplicáveis. Os desenvolvedores não assumem nenhuma responsabilidade e não são responsáveis por qualquer uso indevido ou dano causado por esta ferramenta e software.
Este projeto está licenciado sob a Creative Commons Attribution-NonCommercial 4.0 International License - consulte o arquivo LICENSE para detalhes