Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

03 - RCPT (Informa o Destinatário)

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

RCPT TO (Informa o Destinatário)

O comando RCPT TO (Recipient To) é o responsável por identificar o endereço de destino de uma mensagem dentro de uma transação SMTP. Ele deve ser enviado após a aceitação bem-sucedida do comando MAIL FROM e pode ser repetido inúmeras vezes para permitir o envio de uma única mensagem para múltiplos destinatários (Multicast SMTP). Do ponto de vista técnico e de Cyber Segurança, o RCPT TO é o estágio de controle mais crítico para a prevenção de Spam e proteção de infraestrutura.


1. Fundamentos Técnicos e o "Forward-Path" (RFC 5321)

Quando o servidor processa o comando RCPT TO:<usuario@alvo.com>, ele está construindo o que chamamos de Forward-Path. Este é o caminho que a mensagem deve seguir para a entrega final.

Envelope vs Cabeçalhos de Visualização

É vital para um analista de redes diferenciar o destinatário do envelope (RCPT TO) dos destinatários que aparecem nos campos To: e Cc: da mensagem.

  • O servidor SMTP utiliza apenas as informações do RCPT TO para o roteamento real.
  • Isso permite que um e-mail seja enviado para um destinatário oculto (Bcc: Blind Carbon Copy), onde o nome do destinatário aparece no comando RCPT TO, mas é deliberadamente omitido dos cabeçalhos que o MUA do receptor exibirá.

Estrutura do Comando

RCPT TO:<forward-path> [SP <mail-parameters>] <CRLF>

Onde <mail-parameters> representa extensões ESMTP opcionais (DSN, ORCPT, NOTIFY etc.).

Tabela de Estados da Transação

Estado anterior Comando Próximo estado
MAIL FROM aceito RCPT TO válido Pronto para DATA ou novo RCPT
MAIL FROM aceito RCPT TO inválido Transação rejeitada, requer RSET
DATA em andamento RCPT TO Erro 503 Bad sequence

2. Limites de Buffer e Capacidade de Destinatários

A especificação estabelece limites mínimos que um servidor de correio profissional deve ser capaz de gerenciar.

  • Lista de Destinatários: Um servidor SMTP deve suportar, no mínimo, 100 destinatários por mensagem única (RFC 5321).
  • Tratamento de Excesso (Quota de Recipientes): Se o cliente tentar enviar 500 destinatários e o servidor tiver um limite inferior, o servidor deve responder com o erro 452 Too many recipients ou 552. Nestes casos, o cliente deve enviar o DATA com os destinatários aceitos e iniciar uma nova transação para os restantes.

Limites Típicos em Produção

Software Default Configurável
Postfix 1000 smtpd_recipient_limit
Exchange 5000 MaxRecipientsPerMessage
Gmail 100 por mensagem, 500 por dia Não configurável
Office 365 1000 (varia por plano) Não configurável

3. Extensões ESMTP no Comando RCPT

O comando RCPT também foi enriquecido com parâmetros técnicos para controle de entrega (DSN - Delivery Status Notifications).

  • NOTIFY=SUCCESS,FAILURE,DELAY: O cliente instrui o servidor de destino sobre quando deve gerar um relatório de status. Ex: "Me avise apenas se a entrega falhar".
  • ORCPT=[address-type;address]: (Original Recipient) Mantém o endereço original do destinatário caso a mensagem sofra reescritas ou redirecionamentos durante o transporte, permitindo auditorias de conformidade.

Exemplo Completo de Sessão ESMTP com DSN

C: RCPT TO:<joao@alvo.com> NOTIFY=FAILURE,DELAY ORCPT=rfc822;joao@alvo.com
S: 250 2.1.5 <joao@alvo.com>... Recipient ok

4. Perspectiva de Cyber Security e Admissão de E-mail

Para um profissional de Cyber Security, o estágio do RCPT TO é a principal barreira contra invasão de spam e ataques de reconhecimento.

Ataque de Enumeração de Usuários (Harvesting)

  • O Ataque: Um atacante conecta ao servidor e envia milhares de comandos RCPT TO para endereços aleatórios (joao@empresa.com, maria@empresa.com). Observando se o servidor responde 250 OK ou 550 User unknown, o atacante valida quais e-mails existem.
  • A Defesa: Servidores de alta segurança são configurados para não serem "comunicativos". Em vez de 550, eles podem retornar um código de sucesso genérico (250) e descartar a mensagem silenciosamente após o processamento, ou utilizar o Harassment Protection, onde o servidor introduz atrasos propositais (Tarpitting) a cada erro consecutivo no comando RCPT.

Problema do Relay Aberto (Open Relay)

O servidor faz o processamento de admissão no RCPT TO:

  1. Destinatário Local: O IP do cliente é qualquer um, mas o destinatário é da própria empresa. O servidor aceita.
  2. Destinatário Remoto (Outbound): O cliente quer enviar para gmail.com. O servidor só deve aceitar se o IP do cliente for de uma rede confiável ou se ele estiver autenticado. Se aceitar cegamente, trata-se de um Relay Aberto, o que levará o IP do servidor para listas negras mundiais em minutos.

Matriz de Decisão de Relay

IP do cliente Destinatário Ação
Confiável (interno) Local Aceitar
Confiável (interno) Externo Aceitar (relay autorizado)
Desconhecido Local Aceitar (entrada legítima)
Desconhecido Externo Rejeitar (550 Relay denied)
Autenticado via SASL Qualquer Aceitar

5. Códigos de Erro e Diagnóstico Técnico

Identificar o motivo de uma falha de entrega é feito através da análise dos códigos de resposta ao comando RCPT:

  • 550 Relaying Denied: O servidor não é o destino e não permite relay para o IP do emissor.
  • 551 User not local; please try <forward-path>: O servidor redireciona o cliente para outro host (raramente usado hoje por segurança).
  • 451 Requested action aborted: internal database error: Falha momentânea na conexão com o sistema de diretório (LDAP/AD).
  • 554 Transaction failed: Erro genérico de política de segurança (ex: o domínio do receptor está bloqueado).
  • 450 Mailbox temporarily unavailable: Caixa postal cheia ou em manutenção; retentar depois.
  • 550 Mailbox does not exist: Endereço inexistente definitivo (deve gerar bounce).

Estrutura do Código SMTP Estendido (RFC 3463)

Formato: class.subject.detail

Classe Significado
2.x.x Sucesso
4.x.x Falha temporária (persistente)
5.x.x Falha permanente

6. Laboratório Prático: Auditoria de Destinatários

Para auditar se o seu servidor está vazando informações de usuários através do RCPT TO:

telnet webmail.empresa.com 25
HELO externo.com
MAIL FROM:<externo@externo.com>
RCPT TO:<existente@empresa.com>
# Resposta: 250 OK (Vaza informacao: usuario existe)
RCPT TO:<nao-existe@empresa.com>
# Resposta: 550 User unknown (Vaza informacao: usuario nao existe)

Verificação de Limite de Recipientes:

Utilize o swaks para testar quantos recipientes seu servidor aceita antes de negar:

# Gera lista com 150 destinatarios e testa o servidor
for i in $(seq 1 150); do echo "user${i}@alvo.com"; done > recipients.txt
swaks --to $(cat recipients.txt | tr '\n' ',') --server mx.destino.com

Teste de Relay Aberto com Nmap

nmap -p25 --script smtp-open-relay mx.empresa.com

O script Nmap testa várias combinações de remetente/destinatário para identificar se o servidor aceita relay sem autenticação.


7. Boas Práticas de Hardening no RCPT

Prática Benefício
Desabilitar respostas 550 User unknown Evita enumeração
Implementar Tarpitting após 3 erros Reduz velocidade de bots
Aplicar rate limiting por IP Limita brute-force de destinatários
Exigir autenticação para relay externo Bloqueia spam relay
Validar recipientes em LDAP/AD em tempo real Reduz backscatter
Aplicar Recipient Delimiter (+) Suporta endereçamento dinâmico

8. Conclusão da Indicação do Destinatário

O comando RCPT TO é o momento da verdade no protocolo SMTP. É aqui que o servidor assume o compromisso geográfico da entrega. A rigidez na validação deste comando, somada a políticas inteligentes de silêncio para evitar enumeração, é o que garante que uma infraestrutura de correio eletrônico permaneça segura, eficiente e livre de abusos automatizados. Um servidor bem configurado no estágio RCPT TO protege não apenas seus próprios usuários, mas toda a economia de reputação do tráfego de e-mail global, evitando ser vetor de spam, phishing e exfiltração de dados via enumeração de contas corporativas.