03 - RCPT (Informa o Destinatário)
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 TOpara 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 recipientsou552. Nestes casos, o cliente deve enviar oDATAcom 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 TOpara endereços aleatórios (joao@empresa.com,maria@empresa.com). Observando se o servidor responde250 OKou550 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:
- Destinatário Local: O IP do cliente é qualquer um, mas o destinatário é da própria empresa. O servidor aceita.
- 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.